0% found this document useful (0 votes)
10 views2 pages

18-Month Google Software Engineer Plan

The document outlines a comprehensive 18-month routine to prepare for a Google Software Engineer position, divided into five phases. Each phase focuses on different aspects of programming and data structures, starting with foundational programming skills and advancing to system design and interview preparation. The routine includes daily tasks, practice problems, and project building to ensure thorough preparation for technical interviews.

Uploaded by

Maruf Ruman
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views2 pages

18-Month Google Software Engineer Plan

The document outlines a comprehensive 18-month routine to prepare for a Google Software Engineer position, divided into five phases. Each phase focuses on different aspects of programming and data structures, starting with foundational programming skills and advancing to system design and interview preparation. The routine includes daily tasks, practice problems, and project building to ensure thorough preparation for technical interviews.

Uploaded by

Maruf Ruman
Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Day-Wise Routine for 1.

5 Years (18 Months) to Become a Google


Software Engineer

Phase 1: Programming Foundations (Week 1–12)


Week 1: C++ Basics (or Python Basics) - Day 1: Introduction to
Programming, Installation (IDE, Compiler) - Day 2: Variables, Data Types,
Input/Output - Day 3: Conditional Statements (if, else, switch) - Day 4:
Loops (for, while, do-while) - Day 5: Practice Problems on Loops &
Conditionals - Day 6: Functions – Declaration, Definition, Parameters - Day
7: 5 Beginner-Level Problems (e.g., factorial, prime check)
Week 2: Arrays & Strings - Day 8: 1D Arrays – Declaration, Traversal -
Day 9: Common Array Operations (Sum, Reverse, Max, Min) - Day 10: 2D
Arrays – Matrix Input, Output - Day 11: String Basics – Declaration,
Traversal, Manipulation - Day 12: Common String Problems (Palindrome,
Count vowels) - Day 13: Time & Space Complexity Introduction - Day 14:
Weekly Revision Quiz + 5 LeetCode Easy Problems
Week 3: Pointers & Functions in Depth - Day 15: Pointers – Basics &
Arrays with Pointers - Day 16: Function Overloading, Call by
Value/Reference - Day 17: Dynamic Memory Allocation (malloc/new,
free/delete) - Day 18: Practice Problems with Arrays and Functions - Day
19: Recursive Functions – Basic Examples - Day 20: Solve 5 Problems Using
Recursion - Day 21: Weekly Revision
Week 4: Object-Oriented Programming (OOP) - Day 22: Classes &
Objects - Day 23: Constructors, Destructors - Day 24: Inheritance - Day 25:
Polymorphism (Function Overriding, Virtual Functions) - Day 26:
Encapsulation, Abstraction - Day 27: Mini Project: Student Management
System - Day 28: Weekly Quiz + Code Review

Phase 2: Core Data Structures & Algorithms (Week 13–24)


Week 5–16: [Omitted for brevity; already completed]
Week 17: Graphs – Introduction & Representation - Day 113:
Introduction to Graphs – Terminology, Applications - Day 114: Graph
Representation: Adjacency List & Matrix - Day 115: Graph Traversal: BFS –
Theory - Day 116: BFS Implementation + Practice (2 Easy Problems) - Day
117: DFS – Recursive & Iterative (with Stack) - Day 118: DFS Practice (2
Medium LeetCode Problems) - Day 119: Graph Traversal Summary + Notes
Week 18: Cycle Detection in Graphs - Day 120: Cycle Detection in
Undirected Graph (DFS/BFS) - Day 121: Cycle Detection in Directed Graph
(DFS with Recursion Stack) - Day 122: Practice: Detect Cycle (2 Medium
Problems) - Day 123: Bipartite Graph – BFS + DFS - Day 124: Problems on
Bipartite & Cycle (LeetCode Set) - Day 125: Mixed Practice (4 Problems) -
Day 126: Weekly Quiz + Review
Week 19: Topological Sort + Shortest Path - Day 127: Topological
Sorting (Kahn’s Algorithm + DFS) - Day 128: Topo Sort Practice (2 Problems)
- Day 129: Dijkstra’s Algorithm – Theory + Code - Day 130: Shortest Path in
Directed Weighted Graph - Day 131: Bellman Ford, Detect Negative Cycles -
Day 132: LeetCode Practice: Shortest Path (3 Medium) - Day 133: Weekly
Recap + Visualization
Week 20: Disjoint Set, MST (Minimum Spanning Tree) - Day 134:
Disjoint Set (Union by Rank, Path Compression) - Day 135: Kruskal’s
Algorithm + Practice - Day 136: Prim’s Algorithm + Priority Queue - Day
137: MST Problems (2 LeetCode Medium) - Day 138: Graph-Based Problem
Solving Marathon (5 Problems) - Day 139: Graph Revision (Summary Sheet)
- Day 140: Graph Mock Test (DSA Sheet/LeetCode)

Phase 3: Advanced DSA + System Design (Week 25–40) - Topics:


Dynamic Programming, Tries, Segment Trees, Sliding Window, 2D DSA -
Daily pattern: - 2 hrs theory & examples - 2 hrs problem solving - 1 hr
review/notes/mock
System Design Basics (Week 37–40) - Low-level & High-level design,
Object-Oriented Principles

Phase 4: Project Building + Interview Prep (Week 41–56) - Resume


Building - GitHub Projects (CRUD App, API-based app) - Weekly Mock
Interview - Daily LeetCode (3 problems)

Phase 5: Google-Level Interview Practice + Apply (Week 57–72) -


Advanced DSA + System Design Revision - Mock Interviews with Peers -
Leetcode Top Interview 150 - Apply on Google Careers, Connect for Referrals

Next: Would you like full day-wise tasks for Week 21–24 (Dynamic
Programming)?

You might also like