ta-cos / study-plan

6 month study plan to prep for up to mid-level SWE role, including CS topics and system design

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Study Plan - 24 weeks (go at your own pace)

This Study Plan was built following Coding Interview University

All weeks require at least 3 DS&A problems to be solved DAILY and pushed up to DSA repo

  • Weeks 1-6, 3 easy problems
  • Weeks 7-14, 2 easy 1 medium problem
  • Weeks 15-20, 1 easy 2 medium problems
  • Weeks 21-24, 2 medium, 1 hard problem
  • Extra time 1 easy, 1 medium, 1 hard problem
  • Problems are to be solved on paper or whiteboard FIRST, sample tests and then coded and pushed to the repo

DS&A - options

SRE Course

Books:

Interview Prep

The Plan

Weeks 1-2 Basic Python, Big O, Deep Dive Lists, Recursion, MERN Stack

Weeks 3-4 Linked List, Stack, Queue

Weeks 5-6 Hash Table, Binary Search

Weeks 7-8 Trees, Binary Search Trees

  • Intro to Trees

  • Tree Traversal

  • BFS and DFS Trees

  • AAO Trees

  • AAO BST

  • BST Introduction

  • Binary Tree MIT

  • BST Python

  • BST - MIT

  • Implement in Python:

    • insert // insert value into tree
    • get_node_count // get count of values stored
    • print_values // prints the values in the tree, from min to max
    • delete_tree
    • is_in_tree // returns true if given value exists in the tree
    • get_height // returns the height in nodes (single node's height is 1)
    • get_min // returns the minimum value stored in the tree
    • get_max // returns the maximum value stored in the tree
    • is_binary_search_tree
    • delete_value
    • get_successor // returns next-highest value in tree after given value, -1 if none
  • Review: BFS Trees

  • Review: DFS Trees

  • Review: Tree Traversal

  • Chapter 4 Cracking Coding interview (Trees)

  • Project

    • PokeDex
    • Set up the express backend with mongoDB
    • Create Postman Test Collection
    • Create tests (mocha/alternative)
    • Use Pagination
    • MongoDb will store all Poke information
    • two routes /pokemon and /pokemon/:id
    • seed database
    • pass postman tests

Weeks 9-10 Heap, Sorting

Weeks 11-12 Graphs

Weeks 13-14 Recursion Refresh, Dynamic Programming

Weeks 15-16 Design Patterns

  • Quick UML Review

  • Learn these Patterns:

    • strategy
    • singleton
    • adapter
    • prototype
    • decorator
    • visitor
    • factory, abstract factory
    • facade
    • observer
    • proxy
    • delegate
    • command
    • state
    • memento
    • iterator
    • composite
    • flyweight
  • General Videos List

  • Book: Head First Design Patterns

  • Reference 101 Design Patterns

  • Chapter 9 Cracking Coding interview (System Design, Scalability)

  • Real Project or Contribute to Open Source

    • think of small local business / church / friends / anyone and build them a site
    • the point is to have real clients and work with them to build experience
    • make sure that you have written permission to share the code on GitHub signed by owner
    • make sure open source project is in you chosen tech stack (need at least 5 - 10 contributions)

Weeks 17-18 Caches, Processing, Concurrency, and Threads

Weeks 19-20 Testing, Unicode, Tries, Networking

Weeks 21-22 Networking / Final Review

Weeks 23-24 Interview Process and Interview Prep

Think of about 20 interview questions you'll get, along with the lines of the items below. Have at least one answer for each. Have a story, not just data, about something you accomplished.

  • Why do you want this job?
  • What's a tough problem you've solved?
  • Biggest challenges faced?
  • Best/worst designs seen?
  • Ideas for improving an existing product
  • How do you work best, as an individual and as part of a team?
  • Which of your skills or experiences would be assets in the role and why?
  • What did you most enjoy at [job x / project y]?
  • What was the biggest challenge you faced at [job x / project y]?
  • What was the hardest bug you faced at [job x / project y]?
  • What did you learn at [job x / project y]?
  • What would you have done better at [job x / project y]?

Interveiw Q&A's

Have Questions for your interviewer

  • How large is your team?
  • What does your dev cycle look like? Do you do waterfall/sprints/agile?
  • Are rushes to deadlines common? Or is there flexibility?
  • How are decisions made in your team?
  • How many meetings do you have per week?
  • Do you feel your work environment helps you concentrate?
  • What are you working on?
  • What do you like about it?
  • What is the work life like?
  • How is the work/life balance?

Begin to build out and map a plan for future development:

About

6 month study plan to prep for up to mid-level SWE role, including CS topics and system design