Find online courses made by experts from around the world.
Take your courses with you and learn anywhere, anytime.
Learn and practice real-world skills and achieve your goals.
NEW: 75% off (normally $199) to celebrate fresh new practice problems being added!
Ace your next code interview to land that dream programming job...
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:
"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
Not for you? No problem.
30 day money back guarantee.
Learn on the go.
Desktop, iOS and Android.
Certificate of completion.
What You’ll Learn
Solving problems with code at your interview
Soft skills of code interviews
Strategies for long-term continuous improvement
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
|Section 1: Bonus: Approaching your Job Search and Applying to Jobs|
Create a portfolio website with: a list of projects, your resume, and a photo of your beautiful mug.
Start blogging—write about your interview prep, practice problems you do, notes from courses. Host on your site or CoderWall.
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.
Resume Tips and Tricks
|Section 2: Getting Ready: Before the Interview|
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!
How to Choose Practice Problems
Sources of Practice Problems
Just Before your Interview
|Section 3: During the Interview: Tips and Tricks|
Questions to Ask your Interviewer
What can go wrong?
Guest Lecture: Effective Communication
Ethics: Seen Question Before?
|Section 4: After the Interview: So you got the job...|
|Section 5: Learn to Apply the Practice Problem Formula|
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.
Applying the Problem Solving Formula: Queue with Two Stacks
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.
Code Solution Review: Reverse a Linked List
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".
That is, where traversing would result in
Have a great solution and know how to use GitHub? Submit it as a Pull Request to our GitHub repository!
Code Solution Review: Linked List Has Cycle
Applying the Problem Solving Formula: Uncoupled Integer
Code Solution Review: Uncoupled Integer
For this question, you will parse a string to determine if it contains only "balanced delimiters."
A balanced delimiter starts with an opening character (
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.
Code Solution Review: Balanced Delimiters
Given an array of integers and a target integer
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!
Code Solution Review: Target Sum
Implement a stack which keeps track of its minimum value.
Challenge: can you keep the operation time complexity to
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.
Code Solution Review: Minimum Stack
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
Given a linear BST with only right side nodes
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!
Code Solution Review: BST Height
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!
Code Solution Review: BST Count
Try the problem called "offensive", "an insult to my dignity", and "a must-ask"—here on HackerRank:
Hands-on Problem: FizzBuzz Solution
Write a function that, given n, returns n!
Hands-on Problem: Factorial Solutions
|Section 6: Bonus Essential Review: Data Structures|
Array Practice Problems
Binary Search Tree
Tries (prefix trees)
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.
Hash Tables: More Questions than Answers!Preview
Hash Tables: Deep DivePreview
|Section 7: Bonus Essential Review: Algorithms|
Tree Traversals (the big 3 depth-first)
Breadth-first Search and Traversal
Breadth-first Search Practice Problems
|Quiz 2||3 questions|
Make sure you know your traversals!
|Section 8: Bonus Essential Review: Algorithmic Problem Solving|
Dynamic Programming Practice Problems
Bit Manipulation Quiz
|Section 9: Bonus Essential Review: Design Patterns and Architecture|
Software Architecture + Design
|Section 10: Bonus Essential Review: Software Concepts|
Programming Language Paradigms
Programming Language Paradigm Quiz
|Section 11: Congratulations!|
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.