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

Topic Guided Walkthru

Primary language practice

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

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

Blog posts on advice and experiences

Interesting Q&A and other links

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