Most companies prefer strong critical thinking and basic knowledge over extensive knowledge and medium critical thinking, because software development needs constant learning. So its important to be really cracked at modern C++ language features and the standard library.
I suggest the following critical path, a chronological sequence of resources that have helped me quickly come upto speed in a short span of time :
C++
Fundamentals.
- Introducing C++: The Easy Way to Start Learning Modern C++ by Frances Buontempo, programmer since the 90s, BA, Msc in pure math and learnt to program by reading the manual for her Dad’s BBC model B machine.
- Cherno’s C++ playlist by Yan Chernikov, Software engineer and youtube creator
- C++ Move Semantics by Nicolai M. Josuttis.
Specialized books.
Generic programming.
- Template Metaprogramming with C++ by Mariuz Bancilla.
Memory Management.
- C++ Memory Management by Patrice Roy.
Concurrency and asynchronous programming.
- Concurrency in Action by Anthony Williams.
- Eric Rigtorp’s blog
- Lock-free programming resources
Functional programming.
- Functional programming in C++ by Ivan Cukic.
Computer Architecture
- Inside the Machine by Jon Stokes.
Operating Systems
- Earth and Grass OS - The goal is to build an undergraduate-level OS in C under 2k lines of code, that runs on QEMU. The basic scaffolding is already provided and you need to fill in the bits. Most OS concepts stick when you implement something yourself.
Cheatsheets
- STL Algorithms by Andre Muller.
Technical Interviews
- getcracked.io - One of the best collections of clever C++ interview puzzles maintained and updated by CodingJesus that truly test C++, OS and computer architecture concepts at deeper-level.
CppCon talks
- CppCon videos - My suggestion is to cultivate a daily habit to watch two CppCon videos each day.
- h/cpp - Educational C++ videos categorized and tagged.
Blog-rolls worth reading
- GlobalCpp landing page - A collaboration between numerous regional C++ user groups.
- https://wrocpp.github.io/, the Wroclaw C++ community page.
- Barry Revzin’s blog
- Louis Dionne’s blog, the author of
boost::hana - Andrzej Krzemieński’s blog
- Matt Godbolt’s blog
- cppstories - Excellent blog worth following for explorative learning with really cool toy examples by Bartlomiej Filipek (or Bartek) from Krakow, Poland
- andreasfertig.com
- sandordargo.com