Buying for a Team? Gift This Course
Wishlisted Wishlist

Please confirm that you want to add Ace Your Coding Interview & Land Your Dream Programming Job to your Wishlist.

Add to Wishlist

Ace Your Coding Interview & Land Your Dream Programming Job

Prepare for your next code interviews to get the job of your dreams. Review essential data structures, algorithms, etc!
4.3 (107 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
4,896 students enrolled
Created by Brian Jordan
Last updated 11/2015
English
$20
30-Day Money-Back Guarantee
Includes:
  • 6 hours on-demand video
  • 12 Articles
  • 15 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Have a coupon?
Description

NEW: 75% off (normally $199) to celebrate fresh new practice problems being added!

Ace your next code interview to land that dream programming job...

  1. Even if you've never written code at a whiteboard
  2. Even if you've never aced an algorithms or data structures course
  3. Even if you don't plan to job search for a year, or even two
  4. Even if you've never built a portfolio site or contributed to an open source project

Want to work at your dream company, like Google, Amazon, Microsoft, or Facebook, but worried that you might choke on the code interview?

No matter how well you know your stuff, when the time comes the last thing you want to do is experience the Whiteboard Freeze!

Whether you are a master programmer wanting to really shine while exuding confidence during an interview, or there are some holes in your coding skills that you want to fix to make sure you nail the interview, this course has got you covered.

"Brian provided me with useful guidelines on my resume. As a software engineer, he definitely knows how to emphasize one's strengths." - Miao-chen Chou, got a job at Google

I will teach you the exact approach that:

    - I taught at a "Hacking a Google Interview" 2 day workshop at MIT

    - Significantly increases your success rate of a coding interview

    - Has landed several people I have advised jobs at companies like Google

    - Has secured me offers at Amazon, TripAdvisor, PopCap, and more

“He gave me great tips for preparing for my upcoming interview, sent me very useful links and was even willing to help me with connections to future job opportunities.” -Agatha Man, subsequently hired by Google

This course is one of the best things you can do to prepare for your coding interview, because it teaches you how to prep for a real-world programming interview, covering everything from preparing your application to acing your final round of interviews at the whiteboard.

Specifically, you will learn:

  1. What a typical programming interview consists of, and exactly how to prepare for it
  2. Learn a special step-by-step pattern for approaching tough questions
  3. How to use a series of tools to get un-stuck when you inevitably hit a wall on a tough question
  4. How to negotiate a 10%+ salary increase (and much more when you have multiple good offers)

"Brian helped me realize my weaknesses and suggested how to address them. It was wonderful" - Parameswaran

I guarantee you will feel prepared for your code interview after taking this class, or I will personally refund you.

I just ask that you share your successes with the other students when you succeed!

Enroll today and I will see you inside

Brian

Who is the target audience?
  • Anyone applying to Google, Facebook, Amazon, Microsoft or other tech companies with a high bar of admission
  • Intermediate programmers looking for a programming job
  • Coding product managers whose interviews will include programming problems
Students Who Viewed This Course Also Viewed
What Will I Learn?
By the end of the course, you will be able to find and secure a great programming job
In this course, you will learn the data structures, algorithms and design patterns interviewers test candidates on in interviews
You will prepare for your interviews by doing real code problems asked at Google, Microsoft and Amazon
View Curriculum
Requirements
  • Experience writing code
  • Some exposure to data structures and algorithms
  • (optional) Whiteboard for realistic practice
  • (optional) Resume to review and modify during the course
Curriculum For This Course
Expand All 63 Lectures Collapse All 63 Lectures 07:27:20
+
What You'll Learn
3 Lectures 14:48
What You’ll Learn
Solving problems with code at your interview
  1. Choosing and sticking to a language for your interviews
  2. Approaching problems smartly
  3. Communicating with your interviewer
  4. Strategies for getting un-stuck when you don’t see a clear solution
  5. Fixing mistakes in your solution before your interviewer does
  6. Handling design problems
  7. Reviewing and understanding key concepts, algorithms, data structures
    1. From hash tables to dynamic programming to even bit manipulation
Soft skills of code interviews
  1. Writing cover letters and preparing your resume
  2. Avoiding common interview mistakes
  3. How to dress
  4. How to connect with your interviewers
  5. Questions for YOU to ask your interviewers
Strategies for long-term continuous improvement
  1. Getting deeper in to the programming community
  2. Seeking out new job opportunities
  3. Getting the most out of your internships and jobs
  4. Establishing an online presence
What You'll Learn
03:49

Preparation Mindset

Preparing for code interviews can be painful, stressful, time consuming and energy draining.

But it’s so important.

Dan Blumenthal, Dir. Engineering at TripAdvisor puts it well:

Whether through arrogance (“I’m awesome, and don’t need to prepare”), fatalism (“there’s nothing I can do to prepare”), or ignorance (“preparing is an option?”), virtually no one does a thing to stack the odds in their favor during one of the most important inflection points in their career. Your job will likely determine where you live. If you get an offer with a low starting salary, it could take years to catch up to a higher one (if at all).

“So before you even start practicing, you've gotta just view these interviews as yet another standardized test, another game that you need to play well and beat.” - Philip Guo, CS Professor at University of Rochester (post)

“Don't whine and think to yourself, ‘but I'll never have to manually reverse a linked list in my job, so these questions are lame!’”

“You should plan on working 60 hours per week. The first 40 are for your employer. The remaining 20 are for you. During this remaining 20 hours you should be reading, practicing, learning, and otherwise enhancing your career." - “Uncle” Bob Martin, author of Clean Code

Takeaways:

  1. Take your preparation seriously and invest in it
  2. Have a positive attitude and focus on preparing, not on complaining
  3. Practice in small chunks so you don’t burn out
The Preparation Mindset
02:59

Summary

  1. Practice a ton of problems: code code code
  2. Code at a whiteboard
  3. Practice writing REAL code—and compile it
  4. Do more real interviews, ending with your favorite company

More Resources

  1. Preparing for a software engineering interview by veteran ex-Googler Niniane Wang
  2. Coding Interview Tips from Parker Phinney of InterviewCake
  3. How to prepare for technical interviews by Dan Blumenthal, Director of Engineering at TripAdvisor
  4. How to be a star, great essay on long-term personal software engineering development by Dan Blumenthal
  5. What recruiters look for in a resume, also a good essay on long-term development from the perspective of when a recruiter looks at your resume years down the line
How to Approach your Preparation
08:00
+
Bonus: Approaching your Job Search and Applying to Jobs
5 Lectures 16:33

Create a portfolio website with: a list of projects, your resume, and a photo of your beautiful mug.

Use Github Pages (Octopress/Jekyll) or Wordpress for your site, consider a custom domain.

Start blogging—write about your interview prep, practice problems you do, notes from courses. Host on your site or CoderWall.

Write guest blog posts for fellow code interviewers!

Your Personal Website
06:12

Hands-on To Dos:

Get a GitHub account and push something there. Some ideas: Code interview solution code, even snowboarding videos.

Get and update your LinkedIn: list jobs, connect with coworkers, update to a nice photo, ask for recommendations.

(Optional) Get an account on StackOverflow: ask and answer some questions.

Beware of tweets: Be sure you keep your tweets professional or keep separate personal (#yolo) / professional (#knuthswag) accounts—and link to the professional one from your portfolio/LinkedIn.

Your Online Presence
05:05

Finding Jobs
2 pages

  1. Cover letters are important
  2. Research the company you're applying to
  3. Use the standard structure for your letter
    1. Paragraph 1: Introduction
    2. Paragraph 2-3: Why you're a good fit
    3. Paragraph 4: Closing, call-to-action
  4. Have someone review your letter
How to Write Cover Letters
05:16

Resume Tips and Tricks
2 pages
+
Getting Ready: Before the Interview
4 Lectures 25:32

Topics covered:

1. Choosing the language—choose what you're comfortable with, lean towards language used at company

2. Once you've chosen—practice with that language—and only that language!

Solid choices: Java, C / C++ / C#, Python, Javascript, even Ruby

Company leanings:

Facebook: PHP

Google: C/C++, Java, Python Javascript

Amazon: mostly Java, Javascript, tiny bit of Ruby

Preview 07:51

How to Choose Practice Problems
04:37

Sources of Practice Problems
13:04

Just Before your Interview
2 pages
+
During the Interview: Tips and Tricks
4 Lectures 09:06
Questions to Ask your Interviewer
02:37

What can go wrong?
00:53

Guest Lecture: Effective Communication
3 pages

Ethics: Seen Question Before?
05:36
+
After the Interview: So you got the job...
1 Lecture 00:00
Negotiation
2 pages
+
Learn to Apply the Practice Problem Formula
22 Lectures 04:19:24

In this lecture, I cover the 7 essential steps to approaching a problem, finding a solution—and coding it up without making any embarrassing, avoidable mistakes.

The 7 Essential Steps to Acing a Problem
18:24

Applying the Problem Solving Formula: Queue with Two Stacks
17:55

Practice problem: given a linked list, return that linked list with the order of all nodes reversed.

Submit your solutions as a Pull Request in the CFI repository here.

Applying the Problem Solving Formula: Reverse a Linked List
14:18

Code Solution Review: Reverse a Linked List
14:17

Write a function which, given a linked list, returns whether that linked list contains a cycle.

E.g., given the following linked list, your function will say "yes, this contains a cycle".

                E             /  ^           v    | A -> B -> C -> D  

That is, where traversing would result in C -> D -> E -> C -> D -> E

Have a great solution and know how to use GitHub? Submit it as a Pull Request to our GitHub repository!

Applying the Problem Solving Formula: Linked List Has Cycle
21:25

Code Solution Review: Linked List Has Cycle
11:17

Applying the Problem Solving Formula: Uncoupled Integer
22:47

Code Solution Review: Uncoupled Integer
11:33

For this question, you will parse a string to determine if it contains only "balanced delimiters."

A balanced delimiter starts with an opening character ((, [, {), ends with a matching closing character (), ], }respectively), and has only other matching delimiters in between. A balanced delimiter may contain any number of balanced delimiters.

Want to share your wonderful, fantastic solution, and maybe end up in the interview response hall of fame?! Submit a pull request to the course's GitHub repository here.

Applying the Problem Solving Formula: Balanced Delimiters
18:15

Code Solution Review: Balanced Delimiters
13:08

Given an array of integers and a target integer sum, return whether there exist a pair of integers in the array which add up to sum.

See if you can come up with an O(n^2) solution first. Then—can you come up with an O(n log n) one?

Playing along? Submit your solution to the course's practice problem repository!

Applying the Problem Solving Formula: Target Sum
20:12

Code Solution Review: Target Sum
05:35

Implement a stack which keeps track of its minimum value.

Challenge: can you keep the operation time complexity to O(1)?

Hint: Try using some extra space. What data structure might work for keeping track of minimums?

If you're feeling saucy, submit your wonderful solutions as a pull request to the course practice problem repository.

Applying the Problem Solving Formula: Minimum Stack
19:35

Code Solution Review: Minimum Stack
03:49

Given a binary search tree, return its height—that is, the maximum depth reached by the tree.

Example: given a BST with a single node, your function would return 0.

Given a linear BST with only right side nodes 0 -> 1 -> 2 -> (null), where 2 is the tail, your function would return a max height of 2.

Hint: BSTs are a recursively defined data structure.

Hint #2: which tree traversal method covered in the traversal lecture might come in handy here?

Awesome solution? You know it! Submit to the class problem solution repository here. Join the Hall of Solution Fame!

Applying the Problem Solving Formula: BST Height
11:38

Code Solution Review: BST Height
03:22

Given a binary search tree root, count the total number of nodes in the tree.

Of course, you're completely free to submit your awesome code solutions to share with the class!

Applying the Problem Solving Formula: BST Count
07:40

Code Solution Review: BST Count
01:27

Try the problem called "offensive", "an insult to my dignity", and "a must-ask"—here on HackerRank:

http://codingforinterviews.com/fizzbuzz

Hands-on Problem: FizzBuzz Question
04:51

Hands-on Problem: FizzBuzz Solution
15:57


Hands-on Problem: Factorial Solutions
00:04
+
Bonus Essential Review: Data Structures
9 Lectures 33:13
Linked Lists
02:28

Arrays
3 pages

Array Practice Problems
1 page

Binary Search Tree
01:12

Tries (prefix trees)
02:36

In this lecture we talk about why reviewing hash tables is important, reading quotes from Dan Blumenthal of TripAdvisor, Steve Yegge from Amazon/Google, and Cracking the Coding Interview.

Preview 02:32



Hash Tables
9 questions

Stacks
01:47
+
Bonus Essential Review: Algorithms
5 Lectures 05:13
Tree Traversals (the big 3 depth-first)
01:44

Breadth-first Search and Traversal
2 pages

Breadth-first Search Practice Problems
1 page

Make sure you know your traversals!

BFS / DFS quiz
3 questions

Merge Sort
01:32

Quicksort
01:57
+
Bonus Essential Review: Algorithmic Problem Solving
4 Lectures 15:17
Recursion Quiz
4 questions

Dynamic Programming
4 pages

Dynamic Programming Practice Problems
2 pages



Bit Manipulation Quiz
12 questions
+
Bonus Essential Review: Design Patterns and Architecture
3 Lectures 03:22
Software Architecture + Design
3 pages

The Singleton
03:22

Factory
2 pages
2 More Sections
About the Instructor
4.3 Average rating
107 Reviews
4,896 Students
1 Course
Professional Software Engineer, Game and Web Developer

Brian Jordan is a professional software engineer and game developer in San Francisco and founder of Coding for Interviews—the weekly programming practice problem and CS topic overview newsletter.

At PopCap Games in San Francisco, Brian built addictive mobile and web games. At TripAdvisor in Boston, Brian used the power of Java to do important things like censor swear words out of reviews!

Brian has a BSc. in Computer Science from Tufts University. He loves writing and reading clean code, learning obscure vim idioms, and building redstone contraptions in Minecraft.

Brian is so passionate about new developers getting the most out of their career that he volunteers by doing free one-on-one prep sessions. You should sign up for your free one-on-one chat about your prep here.

Report Abuse