Master Google Interview Prep in 8 Months: The 100k‑Star Self‑Study Guide
John Washam, a self‑taught programmer, spent eight months mastering CS fundamentals, building a comprehensive interview roadmap that earned over 100,000 GitHub stars, and ultimately landed a high‑paying AWS role, sharing his language choices, flashcard system, study resources, and interview tips for aspiring engineers.
Background
John Washam wanted to become a Google software engineer but had no CS degree. He decided to teach himself over eight months, spending thousands of hours reading books, coding, and watching lectures. Although he eventually joined Amazon as an AWS specialist, his self‑study guide gained nearly 100 000 stars on GitHub.
Study Plan Overview
The plan consists of daily 8‑12 hour study sessions, covering language selection, core computer‑science topics, flashcards, and paper reading.
Choosing a Programming Language and Core Knowledge
Washam recommends picking a language commonly used in Google interviews—C++, Java, or Python—while also being familiar with JavaScript, Ruby, SQL, and HTML. He then studies hardware fundamentals, algorithmic complexity (Big‑O), data structures (trees, graphs, sorting), recursion, dynamic programming, combinatorics, probability, NP‑complete problems, caching, threading, system design, scalability, and data processing.
To retain the large amount of material, he creates flashcards (including code snippets) and reviews them regularly. The repository contains the flashcard source code and additional cheat sheets such as ASCII tables, OSI stack references, and Big‑O notation.
He also reads seminal Google research papers and recommends several algorithm and C++ programming books.
Google Interview Tips
A strong résumé is the first step; Steve Yagge’s ten‑point résumé checklist is referenced. Washam lists twenty typical interview questions and suggests preparing 2‑3 answers for each, focusing on storytelling rather than raw metrics. He also advises asking insightful questions to interviewers.
Additional optional material includes Emacs/Vim tips, Unix command‑line tools, and cryptography basics to improve overall productivity.
Three Key Self‑Study Practices
Plan Early and Gather Information – Avoid spending time on irrelevant topics; align study focus with the target role (e.g., Python for the interview).
Prefer Video Over Books – High‑quality tutorial videos accelerate learning and free time for hands‑on coding practice.
Repeated Review – Use flashcards extensively; Washam created 1 792 electronic cards and marks a card “mastered” only after multiple correct recalls.
Resources
The main repository for the interview guide:
https://github.com/jwasham/coding-interview-universityThe flashcard project:
https://github.com/jwasham/computer-science-flash-cardsAdditional reference links include a freeCodeCamp article describing Washam’s eight‑month journey.
Images illustrating the study roadmap, flashcards, and interview tips are included below.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
ITPUB
Official ITPUB account sharing technical insights, community news, and exciting events.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
