This repo contains the code for my C++ tutorials on YouTube. Since C++ is a huge language, I plan to use LearnCPP.com and Bjarne Stoustrup's 4th edition exercises PDF as a rough guide for my study plan (and videos). But, I don't plan to follow them to the letter. I will likely deviate from them and go over any topic that I find interesting.
As such, these C++ tutorials are not meant to be consumed in any specific order (even though each folder will be numbered). This ordering represents "the moment in time when I found that specific topic interesting". It does NOT represent "the order in which you should learn that topic".
First and foremost, these C++ tutorials are meant for me. I found that I tend
to forget topics that I've previously learned if I don't use them on a day-to-day
basis. For example, there is a high probability that I'll forget many of the lldb
commands (I explained in my video) in 2-3 months. These tutorials act as a reference
for my future self in case I need a quick guide to help me get back up to speed.
Aside from me, the type of person who will find these tutorials most useful is someone who who has completed 2+ years of undergraduate study in computer science. You won't see me make a tutorial like "How to write a for-loop in C++" because I don't find that interesting. (Unless of course, there are some very obscure or interesting ways to do that in C++, which sounds fun to learn and explain.)
I started my career in TypeScript as a full-stack web developer. Got bored a few years ago and transitioned to working in computer graphics. C++ is the "lingua franca" of graphics programming.
Additionally, as an engineer, it's always good to be familiar with a statically typed, compiled langauge -- especially, if you've spent your entire career in the JavaScript (or Python) ecosystem. I'd definitely recommend learning a language like C++, Java, or Go.
One of the most common questions I got when explaining my reasons for switching from TypeScript to C++ for graphics programming was -- "Why not Rust"?
The short answer, is that I don't like programming in Rust.
The long answer, is that I strongly believe C/C++ is the best language for graphics programming (and many other subfields of computer science that I find interesting). I do not believe this is going to change anytime in the next 5-7 years. I'm always happy to update my priors, but for the time being, this is my definitive stance on the matter.
Please give these a read if you disagree:
- ThePrimeagen's reaction to a rant from Jonathon Blow regarding web dev is funny and insightful
- Getting Starting in Computer Graphics by Jeremey Ong
- LearnCpp.com by Alex Pomeranz
- 4th Edition Exercises by Bjarne Stoustrup
- The C++ Programming Language, 4th Edition by Bjarne Stoustrup
- ChatGPT and Gemini (if these count)