4 ms·
Are you asking about the ROI in terms of professional career opportunities? Probably three orders of magnitude greater than it is for Rust, D, Haskell, Lisp...
by StevePerkins 9y ago
Are you asking about the ROI in terms of professional career opportunities? Probably three orders of magnitude greater than it is for Rust, D, Haskell, Lisp... or any of the other flavor-of-the-month darlings that HN uses in their hobby projects, but for which few jobs exist in the real world.
Are you asking about the ROI in terms of learning and personal growth? Then it's tremendous. The language that you probably are using (Java or C#) was written because most average programmers couldn't handle the power and flexibility of C++, so industry developed those languages as lookalikes with training wheels. If you've ridden a bike with training wheels your whole life, then aren't you at least curious at some point to see what it's like with them taken off?
If nothing else, then you'll learn why decisions were made the way they were in derivative languages, and become a better programmer overall. It gives you certain amount of confidence to have experience in a language that most people are afraid of.
- LMYahooTFY 9y agoDo you think the suggested books in OPs link are accessible to me if I've only a couple of intro to C++ and Java under my belt? Universities are a much longer and unfortunately financially inaccessible route for me. Going to try the "build-a-portfolio-and-start-freelancing" approach.
- zerkten 9y agoIt's hard to know without knowing what your intro to C++ looked like, and what your background is. If you can get through Accelerated C++, then some of those books may be useful once you've gotten some practice. From http://www.ensisoft.com/temp/cplusplus_stack.png http://www.ensisoft.com/temp/cplusplus_stack.png (why is this a PNG and not a JPEG?), Modern C++ Design and C++ Template Metaprogramming are likely to be the most challenging. Don't get me wrong, they are fantastic works, but are probably not what you need right now. C++ Primer, C++ Common Knowledge, and API Design for C++ are books that I think you should consider that are not listed in the post above. If you have never studied computer architecture it is an important subject to understand. There are good books like Computer Systems: A Programmer's Perspective, but others may have different opinions.
- LMYahooTFY 9y agoWell I think my intro was pretty rudimentary. My knowledge of computer architecture is as well, I can tell you what pieces do what, and what a buffer is, but I couldn't really tell you how memory addressing, logic gates, instruction sets work. Is the JPEG question a test? If so I don't know! The last ones you mentioned sound good, and I think I'll add those to my list and start with Accelerated C++ and see how that feels. I appreciate the info!
- doktrin 9y ago> Are you asking about the ROI in terms of professional career opportunities? Probably three orders of magnitude greater than it is for Rust, D, Haskell, Lisp If you're asking me to be specific, then I'd like to compare the ROI of developing greater C++ intuition vs. developing better machine learning intuition. > If you've ridden a bike with training wheels your whole life, then aren't you at least curious at some point to see what it's like with them taken off? Like just about everyone here, I've spent years of my life writing C in systems and OS classes. Are the OO abstractions that Cpp layers on top of C really that important for my personal growth? I don't see it unless I have something practical I can use it for. > If nothing else, then you'll learn why decisions were made the way they were in derivative languages, and become a better programmer overall. It gives you certain amount of confidence to have experience in a language that most people are afraid of. This is the definition of hand-wavy, and sounds a lot like the reasons the people on HN give for learning functional languages like Lisp and Haskell that you deride so much.
- kazinator 9y ago> Are you asking about the ROI in terms of learning and personal growth? Then it's tremendous. I'm a seasoned C++ developer; I can confidently apply for any job that requires years of C++ experience. I don't find much intellectual satisfaction in that work. If you're able to self-actualize with C++, good for you; it doesn't work for everyone.