8 ms·
I was in a similar position to you a few years ago. My recommendation is to first read Scott Meyer's book "Effective Modern C++". This will give you a tour of
by eklitzke 5y ago
I was in a similar position to you a few years ago.
My recommendation is to first read Scott Meyer's book "Effective Modern C++". This will give you a tour of the language features in modern C++ without wasting your time teaching you the basics, which are going to come back to you rather quickly anyway. It's a short book and it's not going to cover everything you need to know in modern C++, but you can read it quickly and after you've read it and done a little C++ programming you'll know which things you want to dive into further.
As for what kind of programs to write to get excited about C++, I personally feel like systems programming is the area where C++ really shines, and I would encourage you to find some kind of project in this area that excites you. For example, write a simple high-performance key-value database using mmap. Write a httpd using boost::asio or even just using epoll directly. Something like this. There are a million projects to choose from, just pick something that you find interesting.
With regard to CUDA, while it is true that it's an area where people use C++ today it's also fairly different from writing regular C++ programs since you need to use different tooling and the programming paradigm is a little different. If you're really passionate about CUDA I don't see any reason why you couldn't start there, but I think it would be easier to do regular userspace C++ programming first and then transition into CUDA later if you are interested in it.
- throwawaybbq1 5y agoThx to you and others for the suggestions (I upvoted everyone and appreciate it). Good point that CUDA is its own world and won't really give me that pure software feel. Part of it might be me getting old and missing the days of my youth where I could code non-stop for a week. Just want to get back into the flow. I found one of my old File Systems text books the other day .. maybe I'll brush up on that with C++. Defn excited by async io in general, and totally unclear on how that works with modern C++. I guess boost:asio is a good starting point. Appreciate the pointer! In the old days, I'd spawn a bunch of threads but that is definitely old school (gotta checkout coroutines in C++!). I also fell in love with Systems programming in my youth writing socket software. So that is also a nice suggestion.
- criddell 5y agoMaybe check out a newer library. Maybe this one: https://github.com/lewissbaker/cppcoro https://github.com/lewissbaker/cppcoro This, or something like it, will eventually be standardized I think.