Fundamentals 10 min read

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.

ITPUB
ITPUB
ITPUB
Master Google Interview Prep in 8 Months: The 100k‑Star Self‑Study Guide

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-university

The flashcard project:

https://github.com/jwasham/computer-science-flash-cards

Additional reference links include a freeCodeCamp article describing Washam’s eight‑month journey.

Images illustrating the study roadmap, flashcards, and interview tips are included below.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

software-engineeringInterview PreparationAlgorithmsGitHubself-study
ITPUB
Written by

ITPUB

Official ITPUB account sharing technical insights, community news, and exciting events.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.