Dev Interview Study Guide
Schedule
- 2 hours each weekday
- 1 hour in the AM
- 2 hours in the PM
- 3 hours each Saturday
- 2 hours each Sunday
- 7 days a week
- Monday through Sunday
Approximately 20 hours a week
Weekly Detailed Schedule
Topic Overview Review
- Data Structures for Interviews
- Algorithms and data structures for Interview preparation
- Optional (if access to Lynda): Four Semesters of Computer Science in 5 Hours with Brian Holt
Topic Guided Walkthru
- Grokking Algorithms
- Or any other book or guide of your choosing
Primary language practice
- Exercism.io
- Going with Python
Topic Big O
- Basic video review of core concept online (30 minutes)
- More in depth with online course study (Stanford course?)
- Work through coding exercises
- Cracking the Coding Interview
- Make flash cards of any generalized info (if applicable)
Topic Data Structures: Hash Tables
- Basic video review of core concept online (30 minutes)
- More in depth with online course study (Stanford course?)
- Work through coding exercises
- Cracking the Coding Interview
- Make flash cards of any generalized info (if applicable)
Topic Data Structures: Linked Lists
- Basic video review of core concept online (30 minutes)
- More in depth with online course study (Stanford course?)
- Work through coding exercises
- Cracking the Coding Interview
- Make flash cards of any generalized info (if applicable)
Topic System Design
- Basic video review of core concept online (30 minutes)
- Reading...
- Make flash cards of any generalized info (if applicable)
Topic Object Oriented Programming
- Basic video review of core concept online (30 minutes)
- Reading...
- Make flash cards of any generalized info (if applicable)
Topic API
- Basic video review of core concept online (30 minutes)
- Reading...
- Make flash cards of any generalized info (if applicable)
Topic Testing
- Basic video review of core concept online (30 minutes)
- Reading...
- Make flash cards of any generalized info (if applicable)
Topic Big O
Review #1
- Review flash cards
- Watch another summary video on topic (30 minutes)
Topic Data Structures: Hash Tables
Review #1
- Review flash cards
- Watch another summary video on topic (30 minutes)
Topic Data Structures: Linked Lists
Review #1
- Review flash cards
- Watch another summary video on topic (30 minutes)
Topic System Design
Review #1
- Review flash cards
- Watch another summary video on topic (30 minutes)
Topic Object Oriented Programming
Review #1
- Review flash cards
- Watch another summary video on topic (30 minutes)
Topic API
Review #1
- Review flash cards
- Watch another summary video on topic (30 minutes)
Topic Testing
Review #1
- Review flash cards
- Watch another summary video on topic (30 minutes)
Topic Big O
Review #2
- Write code on computer from sample question and verify solution
Topic Data Structures: Hash Tables
Review #2
- Write code on computer from sample question and verify solution
Topic Data Structures: Linked Lists
Review #2
- Write code on computer from sample question and verify solution
Topic Big O
Review #3
- Write code on whiteboard from sample question and verify solution
Topic Data Structures: Hash Tables
Review #3
- Write code on whiteboard from sample question and verify solution
Topic Data Structures: Linked Lists
Review #3
- Write code on whiteboard from sample question and verify solution
Resources
- https://simpleprogrammer.com/2016/10/03/software-developer-interviews/
- https://github.com/jwasham/coding-interview-university
- Stanford University CS 106A: Programming Methodology
- Retaining Computer Science Knowledge
- CS Flash Cards
- Learn Anything: CS: Algorithms
- Khan Academy Algorithms
- Cracking the Coding Interview - YouTube playlist
- How to: Work at Google - Example Coding/Engineering Interview - YouTube
- How to: Prepare for a Google Engineering Interview
Blog posts on advice and experiences
- Get that job at Google - Steve Yegge (oldie but a goodie)
- Failing at Google Interviews - Alex Bowe
- Nailing your first Google interview
- Why I studied full-time for 8 months for a Google interview -- "Don’t Study As Much As I Did" -- "Ask don't assume" -- "I read way more books than I needed to" -- "Spaced repetition is the key to memorization" -- "Start coding problems sooner instead of reading and watching videos longer"
Interesting Q&A and other links
- How should I prepare for my Google interview if I have 1 month left and I’m applying for a software engineer role?
- How much time did you spend preparing for Google's interviews? Is everyone who got into Facebook, Google, etc. really that good to solve or understand every classic algorithm or problem?
Coding challenge sites
- LeetCode
- HackerRank
- TopCoder
- Project Euler -- probably just do a few
- many others...
Books
Recommended
- Data Structures and Algorithms in Python
- Cracking the Coding Interview: 189 Programming Questions and Solutions 6th Edition
- Grokking Algorithms: An illustrated guide for programmers and other curious people
- Head First Design Patterns: A Brain-Friendly Guide
- Design Patterns: Elements of Reusable Object-Oriented Software
- Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
- Programming Pearls
- The Algorithm Design Manual (based on 3 strong recommendations from blog posts)
Optional (if time)
- Computer Science Distilled: Learn the Art of Solving Computational Problems
- Introduction to Algorithms, 3rd Edition (MIT Press) 3rd Edition [aka CLRS]
- How Google Works
Materials
Rough notes to put into topics
-
npcomplete, nap sack, traveling salesman, trees (construction, traversal, manipulation), hash tables, stacks, arrays, linked lists, basic descrete math problems, probability theory, N Choose K problems, recursion, OS (processes, threads, concurrency,concurrency issues, semifors, mutexes, locks, resource allocation, context switching, scheduling, system design - feature sets, distrubed systems, interent basics - routers, balancers, domain name servers, firewalls, basics of search
-
coding tests prep places: code chef, top coder, careercup, hackerrank
Tips
- Think out load while solving
- Ask clarifying questions -- time or space complexity
Adapted and inspiration from Coding Interview University