Purpose

To prepare McMaster students for programming interviews and contests.

Background

Companies such as Google, Intel and Microsoft regularly give job candidates programming questions as part of the interview process. These questions range in difficulty from the infamous FizzBuzz problem to more difficult problems involving Graphs, Binary Trees and sometimes even Dynamic Programming techniques! (Don't be stressed out if you those words don't mean anything to you yet)

What you can do

The best way to prepare for these interviews is to practice solving programming problems.

<aside> 💡 These programming problems are often referred to as "technical interview questions". You can find examples of them on sites like LeetCode and HackerRank

</aside>

This allows you to build technical interview skills and solve problems under time stress. If you compete in contests it can even give you some nice resume material!

Am I good enough?

Technical Interview Questions are notorious for being a source of Impostor Syndrome. Questions can feel overwhelming and it may seem impossible to understand the question, much less solve it. Know that this is EXTREMELY common and it is not a sign you should give up. There are numerous techniques and jargon you will not know at first; you will learn them as you progress.

How we can help

To make the learning process as painless as possible we have created this guide which starts from nothing and progressively builds up to more challenging content. Don't be afraid of not having enough background knowledge!

We will be releasing new content for this guide on a weekly basis, teaching new concepts, and providing sample questions for you to work through. At the end of every week we will host a contest with prizes. This is your chance to show off your newfound algorithmic prowess!

Happy Training 😃

Structure

The guide is organized by difficulty and broken up into the categories shown in the image below:

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/5cd5522f-c7b6-4c69-b12c-1a61159cd68a/Untitled.png