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 :
Books and videos
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
Computer Architecture
- Inside the Machine by Jon Stokes.
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.
Blog-rolls worth reading
- 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