This workshop is geared towards helping bootcamp grads and self-taught learners to prepare for the technical programming interview. It's based on what I know from interviewing at numerous startups and being an interviewer at three web startups. The goals of the workshop are to:
- Give a roadmap on how to prepare for the technical interview.
- Give an introduction to important algorithmic concepts. There isn't nearly enough time to cover computer science fundamentals in depth, so this provides a quick overview and resources for further study.
- Give students a chance to practice solving algorithms questions with each other.
This is an overview of the content that will be covered:
- The interview process [10 min] - the different stages of an interview process, including the technical phone screen, take-home challenges, and the onsite.
- How to effectively interview prep [10 min] - recommended prep resources, strategies for solving difficult problems, thinking out loud, doing your research, behavioral questions, and side projects.
- Data structures and algorithms [30+ min]: A rundown of CS concepts, using practical problems on Leetcode to demonstrate each one. Big O notation (runtime and space). Essential data structures like strings, arrays, stacks, queues, hash tables, trees, graphs, and depth-first search and breadth-first search. Greedy algorithms, recursion, dynamic programming, etc.
- Technical phone screen and whiteboarding practice [60+ min]: Folks will group into pairs and each solve a different problem, taking turns being interviewer and interviewee. I'll review the answers, showing how I would approach the problem.
- (Optional) Relational databases [30 min]: How to represent entities and relationships in a database (joins, one-to-many, many-to-many, indexes, etc.), and how to use a SQL database in a Node app.
Ready to get started? Start reading about the interview process.