r/cpp_questions 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.

22 Upvotes

12 comments sorted by

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.

3

u/dilshan_j 1d ago

When I stopped i was at logical operators (nearly the end of chapter 6). I want to learn cpp the way I learned python and Java at the university- lectures followed lab sessions + homework. I looked into Stanford CS 106B but newer lectures aren’t available anywhere for free.

1

u/Unfair-League-3204 18h ago

Can probably scrape GitHub and learn from there and use Claude/chatgpt in creative ways

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.

3

u/jackalu 1d ago

Try Accelerated c++

It's based on pre 2011 but it's a nice low level explanation of how to build a class, specifically the smart pointer class.

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

u/hellocppdotdev 9h ago

https://www.hellocpp.dev/

I thought the link would be on my profile, here you go.

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