• Advertisement
Sign in to follow this  

C++ Language

This topic is 4316 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hi people. I just wanted to ask you a question. How big is the C++ language? How do you know if you're a beginner? an intermediate? advanced? If I know up to polymorphism, then am I still a beginner or an intermediate? After you learn the basics of C++ from cplusplus.com, is that all that's to it? Or do you learn Windows GUI programming and then you're done? Not including learning API though.

Share this post


Link to post
Share on other sites
Advertisement
Hey bud,

1. The language is big, but most of its operation lies in libraries now.
2. It is safe to say that you will never stop learning new things about it whilst learning it.
3. I dont think you can easily brand yourself as Beginner, Average or Expert.
4. If you want to get good then:
a) go to http://www.gotw.ca and understand those articles.
b) CODE CODE CODE, nothing better than solving real world situations
c) download the standard and browse that. I have learned some new stuff just reading it.

Hope that helps,

Dave

Share this post


Link to post
Share on other sites
I'd say you will never be fully learned. You always learn something new, or at least I do. How to tell at what level you are. Well, that's a bit tricky. I guess you have to determine for yourself. Do you feel confident and believe you know all the workings of c++? Then you are probably an advanced user. If your just starting out and don't know how arrays or casting works, for instance. Then i'd say beginner. Intermediate somewhere between.

Share this post


Link to post
Share on other sites
Quote:
Original post by DarkZoulz
I'd say you will never be fully learned. You always learn something new, or at least I do. How to tell at what level you are. Well, that's a bit tricky. I guess you have to determine for yourself. Do you feel confident and believe you know all the workings of c++? Then you are probably an advanced user. If your just starting out and don't know how arrays or casting works, for instance. Then i'd say beginner. Intermediate somewhere between.


i would agree with you there.

i recommend this tutorial for anyone out there trying to learn C++ http://cplusplus.com/doc/tutorial/

Share this post


Link to post
Share on other sites
C++ is very complex. If you want to get into some more advanced concepts, check out C++ FAQ Lite. It is great if you want to go beyond what is presented in text books.

Also check out Bjarne Stroustrup's C++ page. He is the original creator of C++ and his site gives a lot of insight into the design of the language.

Also Windows GUI programming does not have anything to do with mastering C++. It is just a library that can be used.

Good Luck!

Share this post


Link to post
Share on other sites
I would say that, if you kept studying for a rather long time and always wrote new programs, you would eventually "know" C++. After all, the language is not infinitely large. What you will keep learning is new ways to apply the language. There are always new ways to get from point A to point B, always a new way to solve problem X.

Share this post


Link to post
Share on other sites
C++ is just a language. Knowing all the keywords helps, but it doesn't allow you to make anything you want. You could understand ever facet of C++ and you still couldn't make a game if you didn't understand the math, physics, AI, etc. behind it. Hell, I understand almost every word in the English language, I can put together nouns, pronouns, verbs, direct... oh what they.. objects, etc. But I couldn't write a poem or novel to save my life.

Heres a pretty easy test to determine how good you are.
If you understand and can use pointers, pointers to pointers, etc: well, you are at least intermediate.
Could you program any C++ program in C? Its always possible, you just have to use function pointers instead of virtual functions, write functions instead of class methods, not name your functions the same name (thats a hard one), etc. The most object oriented code can still be written in C. If you can do all that you are probably close to an expert.
Now for the real test, could you program any C++ program in assembly. While that would take some knowledge of assembly, remember that all your code gets transformed into assembly anyways. Could you tell me what order parameters are pushed onto the stack and what registers are used to pass parameters with different calling conventions? Ever made a DLL before? Do you understand how the compiler generates jump tables with switch statements? Oh god its scary how much ridiculous stuff compilers do. All of this stuff really helps understand what is going on under the hood of C++.

Edit: Now I'm just talking about the C/C++ language in general. I don't include libraries, API's, Windows-specific stuff with the term C++. But it does make life easier when you use the STL and other good stuff.

Share this post


Link to post
Share on other sites
There is a difference between being fluent in a language and being able to program. I'm talking about the problem solving side of programming.

I've said this before somewhere but I think that no matter how much of a language you've learned, you find that you're a better programmer when you're faced with a problem and devise a solution almost completely without thinking of the language specifics. It's not something that you need to actively work at. For me, I just looked at what I was doing one day and realised that I had been creating solutions first, then worrying about what I needed to do with C++ to code the solution.

I believe when you get to this point, you can call yourself an intermediate programmer. Please note that this doesn't mean that you'll always be doing this, just that you can see the difference between the solution and the creation of the solution in any particular language.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
I hope this doesn't sound condescending, but if you have to ask, you're probably a beginner.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
Well, I am not a pro just a mere brand new beginner; but I will personally feel like i have left the beginner stage when I can successfuly come up with an idea and implement it into code without asking for help on every other line :)

Share this post


Link to post
Share on other sites
Depends on one's perspective really, knowing what can be achieved by other developers and my peers, I still feel that I am in the beginner stage.

Share this post


Link to post
Share on other sites
This is my opinion. The programming language is really big. Programming language isn't all about know how to use all C++ syntax. But the technique how to programming is more important. Even we finish the basic C++ programming book. We still consider as Beginner. Once you start to develop some of your program like Pong/Tetris/Snake or some basic 2d game then we intermediate. There are many things to learn.

Share this post


Link to post
Share on other sites
Quote:
Original post by invisalOnce you start to develop some of your program like Pong/Tetris/Snake or some basic 2d game then we intermediate.

I would definitely not judge programming skill based on games worked on. I work with uber experienced programmers that haven't even attempted making a game ever.

RSL, there is no 'done' as far as design knowledge is concerned. How can "the basics of C++ from cplusplus.com" be all there is to it?

There is absolutely no test you can take to tell you how good a programmer you are. In poker, money is points. In programming, what you do with your knowledge is how we keep score.

Share this post


Link to post
Share on other sites
Quote:
Original post by RSL
How big is the C++ language?


Like Dave said, the language is fairly big. However, I believe you can 'water' this size down by using libraries and what-not that cover up all of the low level processes/functions/etc. that make C++ big.

Quote:
Original post by RSL
How do you know if you're a beginner? an intermediate? advanced?


I once heard someone on these forums say something as such:

"If you ask more questions than you help others, you are a begginer."

But in my opinion, experience is gained through effort and coding. I have been learning C++ for 3 years now and cannot consider myself anywhere close to expert level. Only you know the answer to this question, you are just asking us in order to reassure your previous assumptions.

Quote:
Original post by RSL
If I know up to polymorphism, then am I still a beginner or an intermediate?


I know what polymorphism is and understand it pretty well, but I suck at bit level orperations. So this type of reference does not assure you of being at intermediate level.

Quote:
Original post by RSL
After you learn the basics of C++ from cplusplus.com, is that all that's to it? Or do you learn Windows GUI programming and then you're done?
Not including learning API though.


No way buddy! C++ is a very expanse programming language. Once you know the basics, you can starting hacking with the Standard Template Library and what-not. Then there are associated API's like Win32, DirectX, SDL, OpenGL, etc. You will never become bored of C++.

You show some great potential. [smile]++

Share this post


Link to post
Share on other sites
- using libraries does not make C++ smaller, or expose a smaller subset of the language. You can freely use the entire language, whether your linking with libraries or not.

- learning various libraries does not necessarily equate to learning C++. If libraries are tools, C++ is the workshop.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement