How long did it take you guys to learn all of C++

My problem is I think Im rushing it. Like I get all the concepts and everything, (I haven't mastered them, but I understand them). Im learning classes right now. It's just I see people who spent like 10-20 years learning c++, and this is only not even my first year and Im more then halfway done I guess? Im looking forward to use my knowledge to make a couple games. So basically my question is how long did it take you to learn the concepts altogether. (Variables, Functions, Arrays, Pointers, Classes, Polymorphism, etc.)
Last edited on
Being able to write programs doesn't take very long.

Being able to write programs that are easy to maintain, expand, and understand takes many many years.
What kind of programs are you talking about?
Being able to write programs that are easy to maintain, expand, and understand takes many many years.


QFT.

What kind of programs are you talking about?


Any programs really. Even "Hello World" programs count.
I got all the basics within 3-4 weeks, just messing around. But it's going to take me years to master it.

And I can tell you, that even gurus who have been writing C++ for a decade, still learn new things once in a while.

So I believe the way you're thinking of it is a little cut & dry... too black and white.

I can tell you now, you are not close to half way done learning everything in the language. The basics maybe, but not all of C++.

I don't think anyone can really say when they finished learning C++, because I don't think anyone ever stops learning. Finishing a tutorial book, doesn't mean you've learned the language, just learned more of it.
I guess I see what youre trying to say... but what's beyond the book? Even the book written by the man who made C++? Isn't that well, everything there is to know?
He did also state in another paper something to the effect of "The days that one programmer can learn all of any one language are gone."
Not even the father of the language -- Stroustrup -- claims to know all of C++.
The language syntax is just the basics. After you leaned what it is then you can begin to learn how to program. That's something you'll never stop learning.
There is no really valid answer to that question. Programming is much more than knowing all the syntax and functionality. There is very big creative factor as well.

Just because you've mastered music theory doesn't mean you can write the next great symphony.

Of course, that's why it can be so fascinating (... and frustrating).
Ahh I see what you mean, I guess my question is how long did it take to learn all the syntax? Like I said before. Variables, Functions, Arrays, Pointers, Classes, Polymorphism?
I know a small chunk of the language basics, but what I do know I am decent at.

To measure your knowledge you should try to make full fledged programs from scratch, using what you've learned. Maybe try making clones of different simple games - tic tac toe, black jack, rock paper scissors, hang man.

Just because you might know some of the basics doesn't mean you have mastered those elements and can somewhat easily know where and how to implement them in your coding.
Ahh I see what you mean, I guess my question is how long did it take to learn all the syntax? Like I said before. Variables, Functions, Arrays, Pointers, Classes, Polymorphism?
The first language I learned was Java, I learned it about 6 months (doing programs, review the concepts, experiment, etc..), then I move on to C++ because I also want to make games. Having my knowledge in Java made it easy to learn C++.

You might want to jump to game programming now if you think you know all of those you mention..
http://www.lazyfoo.net/SDL_tutorials/
http://www.sfml-dev.org/tutorials/1.6/

[edit]
I started here http://www.loomsoft.net/resources/alltut/alltut_index.htm

please read..
http://www.gamedev.net/reference/design/features/makegames/
http://cplusplus.com/forum/articles/17776/
Last edited on
Learning a language is not difficult, however if you do not understand some fundamentals such as Data Structures, Algorithms, Memory Management, etc... you will have a hard time solving real world problems with the language and have an especially hard time making games. How quickly you can learn the language is really dependant on how much you practice. It tends to also be much easier and quicker to learn a new language when you already have one from the same paradigm under your belt.

When you feel you have conquered C++, start familiarizing yourself with STL and Boost, learn a graphics API or take on a challenging project.
Last edited on
Totally agree with learning data structures and algorithm!
Once I read that it takes 18 months to prepare an astronaut to go to outer space, but it took 3 years to even say you know how to program in C++. - Mag Art.

There's ppl like Herb Sutter, Danny Kalev, Scott Meyers and Herb Shildt, for example. They're what's called C++ gurus. That level of expetise in the language is reachable, but what does it take??

>>> Well, if the task is to master C++, this is huge!! It sures gonna take hours of your time studying it.
is it fair someone that, doesn't know the STL, havent herd about AUTO_PTR, operator overloading among other things integral parts of C++ not inherited from C, say they know, master or even are C++ programmers?? Something to think about.

>>>Some find it hard to learn, specially those who approach C++ from other programming language. This language is quirky, dark sides and even hidden things, i mean there are parts of the language some ppl hardly hear about, say LOCALS for example. The thing is to embrace the language as it is and not with too much logic, something hard to say to IT people or Computer Scientists!
Another thing is C programmers... C is great, dont take me wrong but there's lotz of bad habit u get when learning to program in a language like C, and worse is to bring that into C++.

>>>Years back the first line of code i saw was C++ and I'm still learning. My advise would be dont rush or u are bound to waste time! Get good tutorials... if you are a novice in C++ a good place to start is PROGRAMMING PRINCIPLE AND PRACTICE USING C++ by stroustrupp (who knows better?) it's his first biginers tut, C++ PRIMER SERIES they ar great, ESSENCIAL C++ by Stanly B. Lippman this book is a little more than 250 pages a short tutorial considering the first two but this one will get u familiar right away with aspects of C++ like TEMPLATES, RTTI, EXCEPTIONS, THE STL in my opinion a must-to know, OBJECT AND OBJECT-BASED PROGRAMMING and such. There are a bunch of other books I'd recommend but this are great to start.

Not much left to say but write a lot of code, write it good, discuss it with teachers and fellow student o colleages, commit to it, patience the reward is to programme reasonably good and with confidense in C++ what else have fun!!!!


Herb Schildt? From my experience, it's best to stay away from his books.
First of all, I think very few people actually get to say they "know" a language. Many more can "use it with great proficiency".

Second, like it has been said, writing programs is easy. Writing programs cleverly is the hard part. Take a look at www.projecteuler.net . With lots of those, you can probably think of a brute force method in seconds. To do them in under a minute, you'll have to think like a computer scientist (and, gasp, maybe a mathematician!).

It actually has relatively little to do with syntax, and much more to do with knowledge of concepts that exist. Often, I'll have an idea of what I need to do, but no idea what the syntax is. I google it and generally have it in a few seconds, and have no trouble implementing it. Of course, some concepts just don't exist in certain languages.
In this community, I've mostly noted that the truthful saying "Remember kids, the higher your postcount, the bigger your hum-te-hum is" measures peoples knowledge of C++ here ;)
filipe wrote:
Herb Schildt? From my experience, it's best to stay away from his books.

it seems to me that his books are not only his books
one man can't release many books for every language
so, I think it's a pseudonym for a command of different people with different skills
I saw a thing similar to this
 
char *p = malloc(4); strcpy(p, "abcd");

and contradictions in one book and even on the one list (two pages) of one book
so, I think there are several editors write it
Topic archived. No new replies allowed.