5 ms·
C/C++ has always been somewhat elusive for me; during study and work so far, I did almost everything BUT C/C++. So, how to get started on modern C++? Can anyone
by kahawe 15y ago
C/C++ has always been somewhat elusive for me; during study and work so far, I did almost everything BUT C/C++. So, how to get started on modern C++? Can anyone recommend books, websites, best practices or other resources?
I know the Java guys are very fond of their eclipse/netbeans/IDEA and ant/maven; what do C++ projects nowadays look like and what are the typical tools used to code and build? Are there any library collections or tools one should definitely check out? Are there any "industry standards"?
And while we are at it: what about COBOL? Any chance of learning that without having a 40 ton mainframe and the necessary nuclear power plant to run it at home?
- rch 15y agoVisual Studio is common enough in the games industry to be considered a standard for C++ development, but you might also try Sun/Solaris Studio... assuming want an IDE, that is.
- wglb 15y agoThe Stanley Lippman book is a good tutorial. Further study of the topic is from the Scott Meyers books, which are very clear and well-written. Certainly on Windows, Visual Studio is popular. Back during my 10 year stint doing C++, I held the opinion that it took on the order of two years of programming C++ full time to master the language. If you are looking for the full language, it is not clear that two years is adequate. Ok, so my advice about COBOL. If you get stuck writing a lot of RPG, then COBOL is a good rescue. Otherwise, it thought to cause brain damage, and is best to be avoided.
- roel_v 15y agoVisual Studio is by far the best C++ IDE, even more when you use some plugins like Visual Assist and ViEmu (that last one depends on one's fondness for vi, of course ;) ) I don't think it's practically feasible for an average programmer to learn the whole language (or even the part that is necessary to know to do 'modern' C++ programming) in their spare time, with no or little prior understanding of lower level programming (memory layout, compilation steps, ...). It has many features and most are very intricate, and it's very easy to get stuck for several evenings on something that experienced C++ users wouldn't even recognize as a stumbling block. 'Modern' C++ is full of template use, very hard to read libraries so it's hard to learn from them, and the quality of information online varies widely. I agree with the above poster that it would take 2 years of full time using C++ to consider one self an 'experienced' C++ programmer. That said, I still think the Stroustrup is the first book anyone learning C++ should read, although that's not a popular opinion (actually I think one should start with the K&R but I consider C prerequisite knowledge). Then Koenig & Moo, Alexandrescu, then the Meyers & Lippman series. While reading these one should do the exercises and parallel with that implement a real project. The above plan is completely unrealistic though, so i guess learning C++ like everybody else (being thrown into a project and sink or swim) is the more realistic route :)
- lelele 15y agoI've been programming mostly in C++ for ten years. There has been a time when I was proud of being knowledgeable about its many intricacies. Nowadays, I don't do that anymore. I recommend you avoid trying to master C++: it's a gigantic waste of your time, of your brains and of your productivity. Lots of useless complexity. Just like learning Perl is (been there, done that, too). OTOH, C is a language worth learning well.
- sbalea 15y agoFirst of all, for practical reasons, do not learn C++. Sure, dive into C, it'll teach you a great deal about programming close to the metal. But I consider C++ unnecessary these days, outside niches such as game programming. You'll be an order of magnitude more productive if you go with a higher level language and drop down to pure C when you need performance. That being said, if you insist on C++, Visual Studio on Windows, XCode on Mac and KDevelop on Linux would be my IDEs of choice. On Linux and Mac most people use vim or emacs though. Libraries to look into would be the standard STL and Boost. Qt or wxWidgets for GUIs. COBOL? I'm sure you can run it on a modern computer, hell, my iphone is an order of magnitude more powerful than the mainframes from 30-40 years ago... but in the name of all that's good and holy, why would you ever want to do that?
- kahawe 15y ago> why would you ever want to do that There are still a lot of banking applications in COBOL and other ooold languages around - I have always been wondering how much of a financially interesting niche this could be... work few hours a week and bill them royally since there are not too many people around who can do it anymore and a lot of them are bound to retire sooner or later.
- ignifero 15y agoMy understanding is that C++ is a highest-level programming language. What would be a higher-than-C++ level language?
- ignifero 15y agoC++ suffers from too many options/features. There are too many programming paradigms and styles one can use so it may get messy if one is not adherent to a personal style. On the other hand, you might want to check out the STL which is the most beautiful example of generic programming i know (and also the hardest to debug). I don't know about IDEs, does vim count? Learning COBOL can only guarantee you a job as a specimen in the programming museum nowadays.
- telma1234 15y agovim definitely counts. Though how do you write unit tests in a text editor?