Skip to content

About

C++ and robotics interview preparation: tutorial, tested C++ solutions, A* planner, system design levels

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

57 Commits

Folders and files

Repository files navigation

C++ and Robotics Interview Prep

A complete, self-contained study path for C++ coding rounds and robotics system design conversations at robotics and AI companies. Written for someone who knows Python and is learning C++ from scratch.

Every idea starts with a picture or a story, then a small example worked by hand, then the Python you would have written, then the C++ with every new symbol explained. Every problem is a compilable, self-testing C++ file.

What is here

Folder Contents
tutorial/ Seven chapters: C++ basics, memory and the STL, grids and BFS/DFS, graphs and Dijkstra, heaps/trees/design, robotics-specific builds, interview day. Plus a list of UK robotics employers.
code/ One standalone .cpp per problem with assert-based tests, a Makefile that builds and runs everything, and an A* grid planner as a CMake project with GoogleTest.
system-design/ Five levels of robotics system design, from "what is a system" to full design questions worked end to end.
line-by-line/ A website that teaches graphs, grids and trees visually: type a line of C++ and the page draws what it did. 26 lessons from arrays to BFS, DFS, Dijkstra, grid search, trees and linked lists. Open line-by-line/index.html in a browser.
pdf/ Every chapter and level rendered as a PDF, plus two combined books.
cpp-interview-tracker.html A progress tracker for every topic and problem. Open it in a browser.

Quick start

Requirements: g++ with C++17, cmake, Eigen 3 and GoogleTest. On Ubuntu:

sudo apt install build-essential cmake libeigen3-dev libgtest-dev

Build and run every example, including the A* test suite:

cd code
make

Compile one file by hand:

g++ -std=c++17 -Wall -Wextra -O2 code/01-cpp-basics/01_two_sum.cpp -o two_sum && ./two_sum

Rebuild the PDFs after editing any markdown file (needs python3-markdown and WeasyPrint):

python3 pdf/build_pdfs.py

How to study

  1. Start with tutorial/README.md; it has the six-week plan.
  2. Read a chapter's concept part and do every hand trace on paper.
  3. For each problem, read only the statement, close the file, and solve it in C++ in 25 minutes with -Wall -Wextra. Then compare with the solution.
  4. Mark progress in the tracker. Only mark a concept done when you can explain it to someone else.
  5. Start the system design levels after chapter 03, one level per sitting.

Layout

tutorial/          chapters 01–08 and the index
code/
  Makefile         make | make 03 | make astar
  01-cpp-basics/   ... 06-robotics/
  03-grids-bfs-dfs/astar/   CMake + GoogleTest project
system-design/     levels 1–5 and the index
pdf/               rendered PDFs and build_pdfs.py
line-by-line/      the visual learning site (open index.html)

About

C++ and robotics interview preparation: tutorial, tested C++ solutions, A* planner, system design levels

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages