Advertisement

How do I know if I'm an intermediateprogramming level?

Started by February 24, 2015 11:45 PM
32 comments, last by swiftcoder 9 years, 9 months ago

I wondered if I already reached an intermediate level of C++ programming.

I know this is relative, but maybe you can help me.

I know and can use the following things:

-variables

-basic input/output

-functions

-conditional statement

-loops

-arrays

-vectors

-basics of pointers/references (I know how to use them)

-classes

-operator overloading

-inheritance

Thanks

I'm not sure there is a line in the sand anywhere, but IMHO if you are asking, then you are likely not. I do not see any mention of templates, or the std::lib, which are quite within the range of what I would consider "intermediate" programming in c++. I've been working with c++ for a long time(longer than i care to even admit sometimes) and pascal and basic before that, and I still consider myself quite a "beginner" in regards to programming as a whole. My advice, don't give it a second thought, go out and write more code.

Advertisement

What does "intermediate level" mean?

What do you expect to get from this discussion?

You have learned a few parts of the C++ language. Congratulations.

It reminds me of this:

dilbert.gif

I'm really struggling to see what the question is, or how measuring yourself as "intermediate" is going to help you.

For many people using C++, once you realize how absolutly little you know about the language, is generally when you reach the "intermediate" part. You dont know what you dont know. (note that its absolutly meaningless).

Assement can look something like this.

cpp.png

(from fantastic page of: https://github.com/Dobiasd/articles/blob/master/programming_language_learning_curves.md

Said most simply -- You're not 'intermediate' until you know exactly why you're not yet an expert.

Kidding aside, though, you're not an intermediate programmer in any language just by ticking things off a list. If there's any meaningful definition at all--and its very likely there is not--its probably something that requires both a working (but not expert) knowledge of all aspects of the language, and a body of experience using that knowledge to solve real, non-trivial problems in defensibly elegant ways.

throw table_exception("(? ???)? ? ???");

I consider an intermediate level to be when you are comfortable enough with a language that you fight with concepts instead of the language that you are working with. When your thought process becomes "How does this work, and what's the best way to make it happen?" instead of "How do I do this, and why is it not compiling?". You are 'intermediate' when you can comfortably express your thoughts in code, and you are more concerned about the concepts behind making a piece of code work the way you want it to. You will know the right questions to ask to accomplish roughly anything that you want to do.

Beyond that I consider an advanced level to be when you have specific knowledge about different types of programming. These can include graphics, networking, front/back-end web development, etc. You start to learn the best practices, interesting ways of doing things, and the specifics of a field. It's best not to put a label on how "advanced" you are, because at this point it really just depends on what you know.

Advertisement
What Ravyne said. It sounds like you went through a Teach Yourself C++ in 21 Days book and that's about it. The items you ticked off the bare basics of programming. With just that list of items, I wouldn't even call you a Novice C++ programmer just yet. smile.png

I would expect an intermediate C++ programmer to be able to build moderately large and interesting programs from scratch, and for these to be well-written, understandable, and maintainable. If aiming specifically to be a C++ programmer, they would also follow good C++ idiomatic guidelines.

I'd expect a general understanding of algorithms and data structures, computer architecture, debugging and optimization, and OS interaction.

If "basic input/output" were enough to be an intermediate programmer in a language, every 10 year old ever would be making six figures at Google.

Sean Middleditch – Game Systems Engineer – Join my team!

Thanks people,

I already understood that there wasn't a real border between beginner/novice and intermediate.

I see now that my question is a bit useless and stupid, but to clear something out:

I asked this question, because I see often in books: "You need to have an intermediate level of programming knowledge"

and I just wondered if I had that already (just to measure what you'd need to know).

Thanks again, your answers helped me :D


I asked this question, because I see often in books: "You need to have an intermediate level of programming knowledge"

Well, that is a very different question than the answers above are aimed at.

From that perspective, I'd say that it sounds as if you are at a stage where books aimed at "intermediate" programmers will be useful to you.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

http://sijinjoseph.com/programmer-competency-matrix/

[ deftware.org ]

This topic is closed to new replies.

Advertisement