Coding Interview Bootcamp
Published by O'Reilly Media, Inc.
Learn to solve algorithms using a proven 7-step framework
Course outcomes:
Learn how to approach, solve, and optimize real-world coding problems Understand how to use a problem-solving framework to solve algorithmic problems Prepare to approach coding interviews with greater confidence
Course description:
Join expert Rohit Bhardwaj to discover how to solve algorithmic problems using a proven problem-solving framework. You’ll explore analytical and coding skills in relation to the top algorithms and real-world challenges, examine problem-solving flow charts to make the appropriate decisions for a given problem, and gain an understanding of popular challenges such as single source shortest path (SSSP), palindrome permutations, trees and graphs, and more. This two-day course will help prepare you to interview with greater confidence—or just help you solve problems in your current job.
Day 1: Approaching Coding Problems and Solving Basic Algorithms
Day 2: Solving Advanced Algorithms
NOTE: With today’s registration, you’ll be signed up for both sessions. Although you can attend either of the sessions individually, we recommend participating in both.
What you’ll learn and how you can apply it
- Apply coding interview design methodology to your current projects
- Apply algorithms to real-time scenarios
- Create algorithms with better time and space complexity
This live event is for you because...
- You want to prepare for coding interviews.
- You’re a software developer or engineer who wants to understand algorithms and coding problem-solving.
Prerequisites
- A general understanding of data structures
Recommended preparation:
- Read Think Data Structures (book)
- Take Algorithms for Everybody (live online course with Nigar Movsumova)
Recommended follow-up:
- Read Advanced Algorithms and Data Structures (book)
- Take Graph Data Structures and Algorithms from Scratch (live online course with Matthew Singer)
Schedule
The time frames are only estimates and may vary according to how the class is progressing.
Day 1: Approaching Coding Problems and Basic Algorithms
Coding design framework (60 minutes)
- Presentation: Seven-step framework to solve any problem
- Group discussion: Skills (analytic, coding, technical, communication)
- Demonstration: Generating test data using mocaroo and generatedata; solving problems using replit.com live solutions (two arrays contain common item; check for pair in an array with a given sum)
- Break
Sorting, hashing, and arrays (60 minutes)
- Presentation: Sorting in real world; hashing using separate chaining and open addressing; arrays algorithms
- Demonstration: Sorting problems and algorithms; hash table problems and hashing algorithms; shifting two pointers and arrays algorithms (container with most water problem; backspace string compare); sliding window approach and arrays algorithms (longest substring without repeating character)
- Break
Search, sorting, stack, and priority queue (60 minutes)
- Presentation: Binary search; comparing neighbors; stack real-world examples; binary search tree (BST) algorithm; priority queue algorithm
- Demonstration: Search problems and binary search algorithm (frequency of given target value; finding peak; sorted rotated array); sorting problems and comparing neighbors algorithm (sort an array in wave form); stack problems (balanced brackets); AVL trees, red-black trees; priority queue problems and binary heap algorithm
- Q&A
Day 2: Solving Advanced Algorithms
Graphs, cycle detection, and shortest path (65 minutes)
- Presentation: Graphs in real world; breadth-first search (BFS) versus depth-first search (DFS); cycle detection; shortest path
- Demonstration: Graphs problems (directed, undirected, unweighted, and disjoint) and graph algorithms; cycle detection problems and search algorithm; shortest path problems and search algorithm (word ladder problem)
- Hands-on exercise: Applying BFS and DFS quiz
- Break
DAG, scheduling, and minimum spanning tree (55 minutes)
- Presentation: Directed acyclic graph (DAG); scheduling jobs; order of compilation; stress testing (complete graph); weighted graph—minimum spanning tree
- Group discussion: DAG problems usingSpark examples; batch processing data pipeline
- Demonstration: Scheduling problems and topological sorting algorithm (prerequisite course schedule problem); minimum spanning tree problems and Kruskal’s and Prim's algorithms
- Break
Pattern search and majority vote (60 minutes)
- Presentation: Single-source shortest paths (SSSP)—Dijkstra algorithm; dynamic programming and memoization; pattern search algorithms; string search—trie algorithms; greedy algorithms
- Demonstration: Service routing and scheduling; dynamic programming using Fibonacci and factorial problems; pattern search problems using simulation of Naïve Bayes, KMP, Boyer-Moore, and Aho-Corasick algorithms; optimized radix algorithm; packing most valuable items without overloading luggage using knapsack algorithms; solving majority vote problem in linear time and constant space using Boyer-Moore majority vote algorithm
- Q&A
Your Instructor
Rohit Bhardwaj
Rohit Bhardwaj is director of architecture and technical consulting at Salesforce. He has extensive experience architecting multitenant cloud-native solutions in resilient microservices and service-oriented architectures using the AWS stack and a proven ability to design solutions and execute and deliver transformational programs that reduce costs and increase efficiencies. Rohit is a regular speaker at No Fluff Just Stuff, UberConf, RichWeb, GIDS, and other international conferences. He has an MBA in corporate entrepreneurship from Babson College and a master’s degree in computer science from Boston University and Harvard University. Connect with him at http://www.productivecloudinnovation.com.