I just started something called the 10 book challenge. I'm going to attempt to read 10 c++ books to really refine my knowledge on the language. While reading, I will modify and play with the code as I go on. Read 2nd chapter, modify code from the 1st chapter etc etc in that order(for i won't forget anything and it just sticks).
I've read that reading books about programming is somewhat obsolete. Meaning you learn from read/write of code. But, I have no direction on these early learning days. Everything I want to do is more around my future more refined days as a coder(ai/make games/ etc), so I choose to read books and modify code to learn(only known way with a direction).
To start out, I'd get one book. (an introduction book)
After you got a good grasp of the basics, you should start really playing around with it.
Set yourself goals, write code!
Afterwards, you might want to pick up some books about things like: algorithms, effective C++, STL, and a reference book.
Honestly, I think you're in for a very tedious waste of your time. In programming, as in any other activity, nothing beats experience, even though, obviously, experience isn't everything. If you're already familiar with C++, the best way to improve your ability as a programmer is to write and read programs. As you get experienced in bumping into problems and solving them, reading a couple of books on subjects that interest you can certainly help, but books are no substitute for experience.
If you're not familiar with C++ at all, then, by all means, start with a good book. There's a lot of bad code out there, and you need a solid foundation to at least be able to smell it from a distance. Once you get through that, write and read programs.
You're going to read 10 C++ books? That's going to get old fast and will be a constant repeat of material. You don't become proficient from reading every book out there, rather from writing programs. Now you could read 10 books that were some what related to make you a better programmer and write programs on the subject, for example:
1. Beginning - Intermediate C++
2. Algorithms and Data Structures using C++
3. Advanced C++, STL, Boost Libraries
4. Discrete Mathematics
5. Assembly
6. 2d Programming
7. 3d Programming
8. Introduction to RDBMS and SQL
9. Artificial Intelligence - using prolog, lisp/scheme, or whatever
10.GUI Programming - Win32, MFC, QT, or whatever.
In programming [snip] nothing beats experience, even though, obviously, experience isn't everything. If you're already familiar with C++, the best way to improve your ability as a programmer is to write and read programs. As you get experienced in bumping into problems and solving them, reading a couple of books on subjects that interest you can certainly help, but books are no substitute for experience.
I agree completely with this. Literature and references supplement experience.
You learn more by writing code than you do from reading a book. Instead of reading 10 books, I would make 10 programs. You'll learn far more in a shorter amount of time.
May I add that writing your own programs is even better, and that its efficiency is multiplied when you solve the problems yourself? If you feel you're really getting stuck, then use a book to read up on what you're currently doing or see if there's anything in the book that you can use that you didn't know before.
since I have no great ideas that I could see me doing by myself(excluding helping with the forums)
Is there a place where I can go to join projects?
particularly c++ projects
and also is there particular ones that's for beginners like myself... like a certain place to look at ?
That depends... what are you interested in, games? There are hundreds of small... and often inexperienced project teams forming on the gamedev.net site that don't mind taking on beginners. While it will give you a chance to work on a larger code base and with a goal... it is unfortunately likely the project will fall apart a few weeks to months into development.
below are some suggestion what I found from the google
this is only related to the C++ only
nothing about math, algorithm, computer architecture or data structures
although the containers of stl are some kind of data structures
but know how to use them didn't mean you really understand them
phase one
C++ primer
phase two
effective C++
more effective C++
effective stl
The C++ Standard Library - A Tutorial And Reference
generic programming and the STL
C++ templates the complete guides
there are phase three till phase five
but I am still wandering around phase two
stereoMatching, nice, I think I like that one. I'm reading effective c++ right now... It's actually not boring. Also I'm making use of the STL tutorial/ref while i read this book.
Also Return 0, I think I will really diversify my readings as well. Reading about the same thing would be very challenging for me
I would exercise caution when reading other people's code. A vast majority of the code you'll find on the net
these days is horribly written. Only through experience will you be able to tell the difference.
I found that even better than looking at code is working with someone who is a better programmer than me.
I can ask questions and get answers from a person, but not from a webpage or a book.
Most of what I've learned about OO design and template metaprogramming came from one person. On the
other hand, 50% of what I've learned of boost came from the documentation on www.boost.org.
The difference is that learning template metaprogramming and OO design is a lot like learning how to play
the piano or paint a picture, whereas learning the API of a library is a lot like memorizing the notes of a
song or the names of all the great paintings. The latter you can easily do yourself given the information;
the former is better learned interactively.