tags:

views:

378

answers:

13

Possible Duplicate:
What exactly constitutes “a working knowledge of c++”?

I've been meaning to move on to something else the next few months (like data structures and algorithms but the problem is my math is still very bad) and I'm currently learning C++ on my own.

So before moving on, I want to make sure that I've learned this language. when can I say that I've learned C++? Are there any concepts that I have to be really good at now? I've only been programming for a year and I've spent like 4 months on C++. I used Accelerated C++ as my guide book.

+10  A: 

When you can comfortably answer 50% c++ questions on stack overlow :-).

J.W.
Does this one counts?
Gab Royer
When every answer you gives gets upvoted at least 10 times.
Martin York
@Martin: I'm not so sure about that! I think as with any forum, you'll find that the easier questions/answers will get more votes than the more complex ones. ;)
Richard Corden
+3  A: 

When you can speak fluently in it.

luke
true;
Richard Corden
+8  A: 

When you're familiar enough with the standard library that you're not constantly re-inventing the wheel.

Bill the Lizard
Well the STL is an important (read : major) part of C++, but I'd like to add that templates and OO concepts are also important parts of C++.
Gab Royer
+2  A: 

I compare it to learning a music instrument.

When you learned to solve a set of problems without having to think about the techniques but only the problem at hand.

Henrik P. Hessel
+1 - Nice analogy.
Richard Corden
+1  A: 

There are a lot of ins and outs of C++. If you have five years of experience programming in C++, then you can say that you know C++. Even such people, though, don't necessarily know all the features out there. For example, very few people are comfortable yet with the newly introduced rvalue references feature.

Alternatively, I'd say that if you can use all the boost libraries comfortably, understand OOP, template-metaprogramming, RAII, RTTI, SFINAE, and can apply those concepts in C++, then you know the language.

Michael Aaron Safyan
The rule of thumb -- it takes 10,000 hours to become an expert in anything.
Steve Gilham
A: 

When you've successfully shipped a bug-free application written in C++.

Will Eddins
Bug-free? What is this "bug-free"? I've never known such a program!
Matthew Jones
In other words, no one knows C++. :)
Bill the Lizard
C'mon, if the idea of knowing C++ is to be useful, we have to allow somebody to actually do it.
David Thornley
All programs are Bug Free. They catch bugs from the user that executes unforseen senarios. You just hope it that defensive programming has walled the user away from most of the plague ridden areas of the code verse.
Martin York
+2  A: 

There is of course no definitive answer to this. However you can consider to ask yourself the following questions:

  • Are you comfortable with the syntax (or do you have to look up every time you have to return a reference)
  • Would you be able to answer questions about how and why things are done
  • Can you understand completely code from libraries, like boost?
  • Are you able to produce working high quality applications in a reasonable amount of time
Peter Smit
A: 

When you've stopped swearing at the screen and breaking mice.

Janie
And when you've stopped just writing 'C' in any other language
Steve Gilham
You mean that comes to a stop?
Blixt
A: 

Many places will actually have you rank yourself on a scale from 1-10 on different topics. It could be that you rank yourself as a 3 (for example) right now, but in a while it goes up to higher. Plus the specs for the language change from time to time as well. I feel that you never stop learning a language or new things in programming as a whole. There are alot of things out there that are not common and hard to get a grasp of.

SteveM
+1  A: 

I see two possibilities: you actively want to work as a C++ programmer in the future, or ... you are looking for a general programming Education and feel that exposure to something else would actually be a better use of time.

Have you read Meyer's Effective C++? Does it make sense to you? Do you apply some of the lessons from there?

As has already been said, are you comfortable with STL?

If "no" to those then for sure you have more work to be pro C++ developer.

Even from an education perspective, if you don't "get" and apply Meyers then I think it's worth doing a little more study before leaving C++.

djna
A: 

You know it when you can code a programming question in C++ on the interview.

LikeToCode
A: 

When you use it to make a program a device that allows you to stab people in the face over the internet.

Spencer Ruport
A: 

When you know how to deal and balance with all the parts of C++. In other words, when you what dose of C, of object oriented design, templates and STL/TR1 is right for what you want to do.

Gab Royer