How long does it take to learn C++?

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
There's no simple answer. You can learn the basics of the language in a couple of months of working with it. It can take years to master it, and the core language is only part of the picture: in order to do something useful with it you need to understand specific libraries and frameworks.
 

TecHNooB

Diamond Member
Sep 10, 2005
7,458
1
76
the more I learn about COM, the more I learn how deficient my C++ knowledge is :|
 

veri745

Golden Member
Oct 11, 2007
1,163
4
81
It also depends on your prior knowledge.

If you know Java and C# or a variety of other languages, you could probably get a pretty good grasp on C++ in a couple weeks
 

Madwand1

Diamond Member
Jan 23, 2006
3,309
0
76
How long does it take to learn C++?

To what end? To program some small programs for yourself? Not long -- get a book, development environment, read, think, code, repeat.

To program professionally? Probably a year or two programming regularly for anyone to consider you a C++ programmer, and be prepared to be tested during interviews -- it's very commonly done.

Learning C is also helpful, and is a good and simpler starting point. Not much you learn from C will be useless in C++ programming, and every "C++" test will probably test some key aspects from C incidentally, and C, being much smaller, is much easier to absorb.

Going back to the original question, there are few people who really know all of C++, and most C++ programmers haven't yet caught up to C++11 (because it was just standardized and is not fully supported yet, etc.). It's a large and complex language at this point, so any learning of it you should expect would be partial, and the remainder done incrementally as needed as with everyone.

Finally, if you want to program professionally, you should also read and learn from others' code where you can.
 

Red Squirrel

No Lifer
May 24, 2003
70,561
13,802
126
www.anyf.ca
One does not simply walk into the entirety of C++.

There is always more to learn. Though to become able to code useful stuff, I'd say maybe a year. To become a professional, probably more like 2-3. Just a wild guess.
 

purbeast0

No Lifer
Sep 13, 2001
53,637
6,521
126
wow this dude has moved from trolling the console and off topic forums to the programming forums.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
I don't see how his post qualifies as a troll. It's a somewhat naive question, but not completely useless, and it doesn't seem designed to spark a flame war.
 

Paul98

Diamond Member
Jan 31, 2010
3,732
199
106
You will always have new things to learn, new libraries, updates. Really if you know how to program, most of what you learn is just tools to do what you want. Though you need to know things well enough to use one of the correct solutions to the problem. Really if you are doing anything that isn't basic you will most likely just learn as you and get what you need to know as you figure out what you are trying to do.
 

masteryoda34

Golden Member
Dec 17, 2007
1,399
3
81
If you don't already know some other programming language fairly well, then I would strongly suggest starting with something other than C++.
 

Net

Golden Member
Aug 30, 2003
1,592
3
81
i would say the big theta for learning a language given newb status is around one year.

becoming fluent and being at the point where you can pick up languages around a few months is 10 years.

being at the point where you can say there's nothing left to learn in regards to that language is never.

+/- time depending on aptitude and intelligence
 
Last edited:

Selenium_Glow

Member
Jan 25, 2012
88
0
61
It took me about 2 months to learn C++, but I is taking me forever to learn and implement the Design and Analysis of algorithms. :-/

Add to that, algorithms are something which forms the very basis of programming, and that basis changes drastically from time to time... though some concepts become as solid as concrete with time, but the rest keeps becoming more complex and efficient.

Long answer short, it's takes less time to learn C++ and more time to understand how to implement it in real life... or something like that.
 

NTMBK

Lifer
Nov 14, 2011
10,448
5,831
136
I think this is an appropriate point to mention this. I've been coding C++ for a couple of years now, and there's still a LOT of that map that I've barely touched.
 

dwell

pics?
Oct 9, 1999
5,185
2
0
Same could be said for any language. Java has just as many facets as C++, if not more. The core C++ concepts can be learned in a weekend if someone were coming from C or Java. It takes a while to learn the individual quirks of C++ but that's true for any programming language. I just think a lot of people cannot grok pointers.
 

formulav8

Diamond Member
Sep 18, 2000
7,004
523
126
It majorly depends on the person itself and prior language experience.

I know some C++. Mainly enough to do some assembly and such to create a dll or whatever so I can access lower-level options with Visual Basic or to convert c++ api calls for use in VB. I've been doing that for many years now, but would NOT be able to build hardly even a basic app with it.

So, if you outright focus on learning C++, be prepared for many weeks to understand the basics of the language and many years to master it. As others have said, there is no absolute or simple answer.