Q: In your experience, how long does it take for a novice programmer to become a reasonably proficient [C/C++/Java] developer, capable of writing nontrivial production code? How long for a programmer with experience in one or more other languages? How can this time be shortened? Ritchie: I don't know the answer to this question either -- my stock joke on similar ones is, "Well, I never had to learn C...." Stroustrup: That depends critically on the background of the novice, on the complexity of the task first attempted with C++, and on the teaching/learning approach. For a novice programmer, a year and a half seems appropriate; for a programmer who is a novice to C++ and the techniques it supports half a year seems more likely. Clearly, I'm talking of the time needed to really use the facilities of the language in a significant application. Learning to write "Hello world" and its cousins can obviously be done in a few minutes. ... Gosling: I know that for somebody who is a pretty talented C++ programmer, an afternoon pretty much does it for lots of folks. You'll probably spend a lot of time going through the library manual. The language itself tends to be a snap to learn; it's all the library stuff that takes the time, and there the best way to do it is to just start writing and using it, and when you need something, look for it. ... The C Family of Languages: Interview with Dennis Ritchie, Bjarne Stroustrup, and James Gosling (Java Report and C++ Report July 2007) |
What is mentoring? It’s the most important tool in learning a new technology. Object-oriented and generic thinking is caught, not just taught. Get cozy with someone who really knows what they’re talking about, and try to get inside their head and watch them solve problems. Listen. Learn by emulating. - http://isocpp.org/wiki/faq/how-to-learn-cpp |