This video set was ported from Mission:Interview, a production I used to sell through Big Machine. I've brought it over here because it just makes more sense!

Introduction

Part 1: Review

Let's start out with the simple data structures. You'll be building these by hand so don't skip. Yes, even the array. We all know how they work... but are you sure about that?

Essential Concepts

What is Big-O Notation?
Understanding Big O has many real world benefits, aside from passing a technical interview. In this post I’ll provide a cheat sheet and some real world examples.

Data Structures

This is how we handle data in our programs. For JavaScript people there are two main data structures: Objects and Arrays. Yes there are others but these are the go-to for most programmers. In other languages you have all kinds of interesting structures, such as List<T>, for example, which is a generically-typed list with all kinds of properties and methods. All of these things are based on core CS data structures, which we'll review below.

Arrays and Linked Lists
The building block data structures from which so many others are built. Arrays are incredibly simple - but how much do you know about them? Can you build a linked list from scratch?
Stacks, Queues and Hash Tables
You can build all kinds of things using the flexibility of a linked list. In this video we’ll get to know a few of the more common data structures that you use every day.
Binary Trees and Graphs
The bread and butter of technical interview questions. If you’re going for a job at Google, Microsoft, Amazon or Facebook - you can be almost guaranteed to be asked a question that used a binary tree of some kind.

Algorithms

Now that you've brushed up on Data Structures, let's see how to use them. These things go hand in hand: data structures and algorithms, you can't really have one without the other. Once again, you might think "this is all faffery I know my algos" but mate - I implore you to review.

Merge, Quick, Bubble Sort - What are they?
You will likely *never* need to implement a sorting algorithm - but understanding how they work could come in handy at some point. Interviews and workarounds for framework problems come to mind.
BFS and DFS explained
You now know all about trees and graphs - but how do you use them? With search and traversal algorithms of course! This is the next part you’ll need to know when you’re asked a traversal question in an interview. And you will be.
Graph Traversal: Bellman Ford
How can you traverse a graph ensuring you take the route with the lowest cost? The Bellman-Ford algorithm will answer this question.
Graph Traversal: Djikstra
Bellman-Ford works well but it takes too long and your graph can’t have cycles. Djikstra solved this problem with an elegant solution.
Calculating Prime Numbers
The use of prime numbers is everywhere in computer science... in fact you’re using them right now to connect to this website, read your email and send text messages.

Part 2: Getting Past the Screening Interview

Most large companies will make sure you're a solid candidate before bringing you in for a more in-depth interview. This usually involves a video or phone call with some generalized tech questions. They're not meant to vet what you know, just to get a sense of whether your resume accurately represents your skills.

The Screening Interview
Before you get to the white board you’ll likely have to pass an introductory screening interview - a short call (or in person meeting) to suss out what you know.
Screening Question: Database Indexes
Before you get to the white board you’ll likely have to pass an introductory screening interview - a short call (or in person meeting) to suss out what you know. Think about how you would answer this one about databases.
Screening Question: What Time is it?
Sometimes a potential interviewer will ‘cosplay’ with you - pretending that you work at the company and seeing how you might solve one of their realworld problems.

Let's Take a Break

You've gone through your review and hopefully learned/relearned some basic concepts. You've also been through a screening call and you're ready to go onsite and knock it out of the park!

Or are you?

It's entirely likely you're getting a bit fried at this point... wondering whether you want to put the time in studying sorting algorithms...

Your Interview Mindset
You’re not going to make it through this section unless you have the right frame of mind. Simply wanting a job isn’t enough - you need to calm yourself and focus.
Understanding the Mechanics of The Interview Question
Don’t hate me... and PLEASE don’t skip this video. Let’s walk through Fibonacci together as a way of understanding how interviewers will flex and extend a single question to dig into your brain.

Part 3: Practice

Get your journals ready! We need to be writing code but this time we're going to practice writing it by hand. Yes I know! Craziness! The deal is that you could very well be asked to do exactly this on the whiteboard and believe it or not, writing code by hand is really hard. We're used to typing which is usually faster than writing by hand - so our thinking syncs up with that.

It's a major PITA, but something you need to invest in.

Practice Question: Stock Prices
This is a real interview question that comes straight from Amazon. You’ll be writing this one by hand so remember your strategies.
Practice Question: Product of All Numbers But This
A straightforward problem that, at first, seems daunting - until you break it down and apply the strategies you know.
Practice Question: Smallest Range of K Lists
This is a tough one and you might struggle with it some. If you do, practice speaking aloud to get help from the interviewer.

Part 4: Watching a Pro In Action - Jon Skeet

OK you've just been through a lot if you progressed through each section and tried each question. There really is no substitute for practice - but watching a pro can really be helpful.

So I brought along Jon Skeet, Mr. Stack Overflow himself, to help us out.

In case you didn't know, Jon has held the #1 spot on Stack Overflow (in terms of total reputation) for years and years. He is incredibly kind, ridiculously smart, and an overall gentleman.

He also works at Google and interviews people often.

Picking Jon's Brain

In this section pay close attention to how Jon goes through the interview questions. This is how he would expect you to go through the question if he was interviewing you for a job at Google. He speaks clearly, asks a load of questions, and then (in most cases) nails it.
I also manage to stump him entirely in one of the questions - watch how he handles that too.

Hopefully you're beginning to see that mastering the coding interview is half process and strategy and half your ability to solve the question.
Enjoy!

Jon Skeet: Creating a C# Linter
Another traditional question: create a linter for X language. This is more about parsing a string and remembering where you are within it.
Jon Skeet: Falling From Great Heights
Not all interview questions have to do with code - some are purely logical, designed to see how you would try and solve a really, really hard problem. Skeet couldn’t figure this one out...
Jon Skeet: Binary Tree Troubles
It’s a rule of interviews: ‘ask a binary tree question’ and that’s exactly what I do in this video with Jon. Traversing in different ways, trying to balance along the way.
Jon Skeet: Creating a Queue from Scratch
This is another very popular question from larger companies, and requires you to be familiar with linked lists, arrays and stacks.
Jon Skeet: Anagram Checker
This is a simpler interview question and another one you can consider standard fare. String manipulation questions are kind of lazy, but then again they can hide all kinds of little tricks!

Good Luck! You Got This.

I hope this set of videos has been helpful. You will get there if you just keep focused and keep trying. As I keep mentioning: it's likely you won't make it through on your first try... these interviews are tough!

What you're going through now will be the stuff of fun stories later on - just focus on keeping a positive mindset. It's sooooo easy to let the frustration take you over, making you want to throw in the towel and give up entirely.

Please don't. These interviews are hard for a reason: the jobs pay well and some of these companies are the best to work for in the entire world. These jobs are amazing - it's not easy to get in.

You might have to try three or four times to make it in... but it's worth it and you can do it. You really can.

Good luck to you, and stay frosty!