tags:

views:

248

answers:

8
+5  Q: 

c++ - relearning

I haven't done C++ for about three years and looking to get back and ready. What is the best way? any open source projects that I might want to look at to recall all the details and be ready for interviews? I started reading (again) C++ Primer 5th edition but was wondering whether there's more efficient way since I did program in C++ for few years before.

Just wanted to add: Does anyone know about open source projects related to finance? (e.g. servers, fix, etc)

+12  A: 

I was facing a similiar situation a while back, and my conclusion was - no matter how many smart books you read nothing will suit you better then practicing.

Find some tutorials or set yourself some simple goals and learn by doing.

Hope that helps

PS. A friend of mine asked me once "How do you eat an elefant? - in small pieces, one at a time"

Maciek
+2  A: 

I'd start in on a real project.

If nothing else, download an open source C++ project that's in the same realm as the jobs you want to target, and start modifying. Practice helps more than anything for being comfortable.

If you're going to focus on reading, or in addition to practice, I'd actually focus on reading books that work more on using C++ well, not necessarily learning C++. Effective C++, More Effective C++, and Effective STL are great for this - you'll learn new things while refreshing your old knowledge. You can always use the primer book as a reference to study things you've forgotten as you read about them elsewhere.

Reed Copsey
Effective C++ is a great resource. I might skip out on More Effective C++ though. Much less useful.
Steve Rowe
I agree that the first is better than the second, but there are still some nice gems in the More Effective C++ book.
Reed Copsey
A: 

Pick something that you know very little about and attempt to make a program that works with that subject area. For example if you've never done GUI work fire up C++ and try to create a simple paint program in the GUI framework of your choice (Qt, WTL, whatever). Or if you've never worked with a database grab SQLite and create a little app that manages your time. Or better yet, combine all these areas into a larger program.

The key is to force yourself to learn how to do real, practical things and solve problems using the languages paradigms. Books are great to reinforce certain practices but they'll never replace hours of frustration trying to figure out why your pointers aren't pointing where they're supposed to.

Ron Warholic
A: 

If you are good at maths (or statistics, probability, finance, geometry) and want to recall how to build re-useable functions, classes, and templates, you are welcome to help us at mathlibcpp. I recommend it, its good learning. Building a complete library on a large subject is very educatively hard ;) I found a chance to use all OO methods I know in C++, even forced to learn more.

Cem Kalyoncu
A: 

Regarding Fix, there is QuickFAST, a very efficient implementation of the 'Fix for streaming' protocol.

Regarding C++, I would look for something that uses Boost, as it seems to be a premiere library for C++ (QuickFAST uses it to some degree).

Michael Easter
A: 

Check out http://www.topcoder.com. This is an amazing tool for practicing programming in many different languages (C++, Java, C, C#). You can even win money if you get good at it:)

alexD
A: 

As with anything, write many programs, (re)read the best books (such as Effective C++, already mentioned). :-)

And ledger is an open source finance program written in C++. (GnuCash is another but written in C.)

Emil
A: 

Most of KDE is written in C++, albeit with Qt's signal extensions. Probably lots of examples of good code there.

Lee B
Oh, and the other point I meant to make is that it wouldn't hurt to be learning Qt a little at the same time. It's an awesome, modern GUI framework, which is probably also the most cross-platform one available right now (outside of Java).
Lee B