So I just finished my first year of university with good results but it's clear to me that object oriented programming was my weakest subject.
We are taking a module on Programming in C++ next year and I would like to get myself properly prepared to go into it and do well. Can anyone recommend a good book for me to work from over my summer holidays as I can't find a decent job and have some serious time to kill.
You may be better prepared if you pick up a book on OO design principles. You will want to understand those ideas very well and they apply outside of any particular programming language.
I would highly recommend reading Code Complete 2nd Ed. especially - it's a great book that every serious software developer should read.
I'm not sure whether you were implicitly combining the two, but it is useful to understand that while C++ is technically OOP, C++ is a really ham-fisted attempt at OOP. If you need to learn OOP again, go back and revisit Java for that.
Lewisham on
0
Nova_CI have the needThe need for speedRegistered Userregular
edited July 2009
Java does have a better implementation of OOP principles, but the guy asked for help with C++ because he's taking a C++ course. :P
Pretty much everything I know about C++ came out of Sams Publishing Learn C++ in 21 Days. I've gone through a ton of programming books now because of school and work and that one is still my favorite.
The best way to learn C++ is to write code, not read books. I find most C++ books to be long-winded and focussed on the type of super-clever code that I never see used in real life.
The best way to learn C++ is to write code, not read books. I find most C++ books to be long-winded and focussed on the type of super-clever code that I never see used in real life.
Unless you have a good bit of programming experience already, trying to code in C++ cold can be very frustrating. Frustrating to the point that you give up.
If someone wants to learn programming by jumping in feet first, they should go with Java or something similar. I love C++, but if I didn't have a book to get me through the initial steps I would never have become a programmer.
Just be sure to understand that the book isn't trying to say "Use patterns everywhere!" Rather, to understand how objects could be used together, and the more common patterns that programmers have developed over the years as they struggled with the same common problems.
Posts
I would highly recommend reading Code Complete 2nd Ed. especially - it's a great book that every serious software developer should read.
Pretty much everything I know about C++ came out of Sams Publishing Learn C++ in 21 Days. I've gone through a ton of programming books now because of school and work and that one is still my favorite.
Big C++ is not. It's clearly written, the chapters are well organized, and the author does a brilliant job of clarifying abstract concepts.
I spent a year as an on-call C++ tutor, and working through the early chapters of this book is your best bet, in my opinion.
Unless you have a good bit of programming experience already, trying to code in C++ cold can be very frustrating. Frustrating to the point that you give up.
If someone wants to learn programming by jumping in feet first, they should go with Java or something similar. I love C++, but if I didn't have a book to get me through the initial steps I would never have become a programmer.
Just be sure to understand that the book isn't trying to say "Use patterns everywhere!" Rather, to understand how objects could be used together, and the more common patterns that programmers have developed over the years as they struggled with the same common problems.
http://www.amazon.com/Accelerated-Practical-Programming-Example-Depth/dp/020170353X/ref=sr_1_1?ie=UTF8&s=books&qid=1248825309&sr=8-1
Stroustrup's new book looks pretty good also.
http://www.amazon.com/Programming-Principles-Practice-Using-C/dp/0321543726/ref=sr_1_1?ie=UTF8&s=books&qid=1248825391&sr=1-1
And you also have all of Scott Meyers' books:
http://www.amazon.com/Effective-Specific-Addison-Wesley-Professional-Computing/dp/0321334876/ref=sr_1_1?ie=UTF8&s=books&qid=1248825450&sr=1-1
http://www.amazon.com/More-Effective-Addison-Wesley-Professional-Computing/dp/020163371X/ref=sr_1_2?ie=UTF8&s=books&qid=1248825450&sr=1-2
http://www.amazon.com/Effective-STL-Addison-Wesley-Professional-Computing/dp/0201749629/ref=sr_1_3?ie=UTF8&s=books&qid=1248825450&sr=1-3
That should give you plenty to start with.
No recommendations for C++ for Dummies? It's what I started with ~10 years ago.