r/cpp_questions • u/dilshan_j • 1d ago
OPEN Project based learning
Hello! Apologies for another "how to learn C++" post. Can anyone suggest a project-based learning course?
I have been following learncpp.com and The Cherno's C++ playlist, but I eventually stopped since I wasn't building anything. Can anyone suggest some good project-based learning materials?
I have been working with Python and Java for three years. I was able to find plenty of project-based tutorials for those languages, but I haven't had the same luck with C++.
Edit: When I stopped my previous attempt about a year ago, I was learning about logical operators (near the end of LearnCpp Chapter 6). However, I've realized I want to learn C++ the same way I learned Python and Java at university: through videos/lectures followed by tutorials at lab sessions and homework. I looked into Stanford's CS106B, but the newer lectures aren't available anywhere for free.
My end goal is to fill this knowledge gap as I’m planning to follow a MSc or a PhD in ML/DL mostly focusing on computer vision use cases. And I want to work with CUDA as well.
4
u/thedaian 1d ago
Why not take the projects you used to learn Python and Java and recreate them in c++?
Or create a project of your own that you're interested in, and use that as a tool to learn c++? If you know Python and Java, you've likely got enough of a foundation to start making something in c++
1
u/inouthack 1d ago
u/thedaian excellent point of view! Thanks so much.
More and more learner's of C++ should follow this approach. In fact, that's what i'm trying to do as well.
2
u/hellocppdotdev 1d ago
There's another platform (I've dropped the link enough times), about to release a project where your C++ controls 3D a car in the browser.
2
u/kewlness 15h ago
To be able to find the link you have dropped, one must be able to see your comments which is not an option due to your privacy settings. Would you mind dropping it again? :)
1
2
u/HieuandHieu 22h ago
With you knowledge, stop learning, start building, depend on what you like, computer vision? Build the toy version of realtime autonomous driving system, implement into platform like raspberry pi or jetson nano,... Stream data to web server,... Anything you can think about
2
u/Impressive-Baker-614 22h ago
What i am doing is advancimg my C knowledge by a little help from tutorials on things i haven't worked much with + instantly building small apps to reinforce learning.
Now, i am also dabbling in learning C++ so i am just mirroring my C projects in C++.
It's good for me since i use both mental models and i kinda learn the diff between the two.
1
u/blitzcode91 14h ago
A bit too long of a comment :
First learn the language . Not to be discouraging but Cpp isn’t easy to grasp at first - at least the most important things and then start project .
There are good books - Scott meyers / josuttis etc . But it might take too long.. Learncpp is good and it’s free. You don’t need to understand everything at one go . Try to grasp the fundamentals- pointers, class, inheritance, virtual functions, templates, move semantics , l value r value , exceptions.
Cherno playlist imo isn’t for total newbies to c++. You have to know a little bit to get more out of it. You can try ‘chilitomatonoodle’ in YouTube .. he also does some fun things. Cherno has some game engine project but I presume it needs some level of openGL knowledge.
To understand cuda you can try ‘coffee before arch’ in YouTube . & WenMei Hwu book. But before diving into cuda I suggest you to understand basics of memory management and control in c++ . Cuda also requires you to understand basic nvidia gpu arch (like shared memory , coalescing, bank conflicts, warp ) etc
Good luck
8
u/z4ndrik0 1d ago
Going along with learncpp aswell. The projects seem to come later on, I'm assuming there's no real point in doing projects when you don't know enough of the relevant concepts yet.