C++

A selection of useful resource I've found whilst learning C++. Most of the resources are free and cater to range of abilities.
C++

I've been learning C++ for the past couple of years and really enough the precise nature of coding in it, especially access to memory and general feeling of control you have when coding with it.

Below I've listed a series of resources I use consider top quality and hopefully will improve your learning experience:

Contents

  • Learn X in Y Minutes
  • The Cherno
  • Jason Turner / C++ Weekly
  • CPP London
  • Exercism
  • CppCon Talks
  • Modern C++

Learn X in Y Minutes

https://learnxinyminutes.com/docs/c++/

Learn X in Y Minutes is a resource for getting started for people with existing programming experience and want to quickly try out / get up to speed with a new language.

For nearly any language you can think of you can find a single file example explaining the ins / outs of a language. The learncpp.cpp file is just over 1000 loc. See the example introducing vector below:

// Vector (Dynamic array)
// Allow us to Define the Array or list of objects at run time
#include <vector>
string val;
vector<string> my_vector; // initialize the vector
cin >> val;
my_vector.push_back(val); // will push the value of 'val' into vector ("array") my_vector
my_vector.push_back(val); // will push the value into the vector again (now having two elements)

// To iterate through a vector we have 2 choices:
// Either classic looping (iterating through the vector from index 0 to its last index):
for (int i = 0; i < my_vector.size(); i++) {
	cout << my_vector[i] << endl; // for accessing a vector's element we can use the operator []
}

// or using an iterator:
vector<string>::iterator it; // initialize the iterator for vector
for (it = my_vector.begin(); it != my_vector.end(); ++it) {
	cout << *it  << endl;
}

The Cherno Project

A YouTube channel from a guy called Yan who used to work at EA, focusing on Game Engines and applications of C++. He has a full playlist focused on learning C++, other playlists worth checking out are his older rendering series in C++ and OpenGL and new Game Engine series which provides a good example of C++ in real life!

The Cherno
I like to make videos.
Welcome to C++
Twitter ► https://twitter.com/thecherno Instagram ► https://instagram.com/thecherno Patreon ► https://patreon.com/thecherno Series Playlist ► https://www.you...

Jason Turner (and C++ Weekly)

Jason runs a YouTube series called C++ Weekly encouraging and teaching users to write high quality, modern C++. His series and CMake starter project are super useful for getting setup with the right tools. Through Jason I've learnt all about about CMake, Conan, cppcheck, ccache, clang-format, clang-tidy, catch2 and many more...

Jason Turner
C++ related videos both from myself and others.

C++ Weekly: https://www.youtube.com/playlist?list=PLs3KjaCtOwSZ2tbuV1hx8Xz-rFZTan2J1

lefticus/cpp_starter_project
A template CMake project to get you started with C++ and tooling - lefticus/cpp_starter_project

CPP London Uni

https://www.cpplondonuni.com/

CPP London Uni is a London based school / meetups teaching programming and C++. I've been along to a reasonable number of the Uni meeting and full CPP London meetups and have to thank them for the incredible work they do. The courses are and will always be free, as they mention on their website!

CPP London Uni
We are a non-profit C.I.C. with the goal of helping people to become successful C++ software developers. We are offering free weekly C++ Classes which you ca...

Exercism (C++ Track)

Need code practise with a real mentor reviewing your code and providing you feedback then Exercism is worth a go and it's 100% free!

One drawback of limited mentors means it can take a couple of days to get feedback on problems but the value returned through good feedback is priceless and worth the wait.

Exercism
Code Practice and Mentorship for Everyone. Level up your programming skills with 1,879 exercises across 38 languages, and insightful discussion with our dedicated team of welcoming mentors. Exercism is 100% free forever.
C++ | Exercism
C++ is a general-purpose programming language that supports procedural, object-oriented, generic and functional programming styles. C++ is deployed on billions of devices from the smallest embedded microprocessor to the largest supercomputer.

CppCon Talks

CppCon is one of the main C++ conferences throughout the year and luckily all the videos are uploaded and available online!

CppCon
Visit cppcon.org for details on next year’s conference. CppCon sponsors have made it possible to record and freely distribute over 300 sessions from 2014 to ...

Modern C++ Course for Image Processing

Course form the University of Bonn I found whilst researching / working with SLAM, this course was indispensable for getting up to speed with modern features and filling in gaps in my knowledge. The series is available on YouTube running 10 lectures and roughly 14 hours of content.

Modern C++ Course (2018) - YouTube
Modern C++ for Image Processing lectures given by Igor in summer term 2018