Take the 2-minute tour ×

The computer scientist Peter Norvig argued in his essay Teach Yourself To Program in 10 Years that you need about 10,000 hours of practice.

But Jeff Atwood argued in his post How To Become a Better Programmer by Not Programming that he believes the only way to become a better programmer is by not programming.

These articles are in opposition. Is there a scientific evidence to prove the Jeff Atwood approach?

share|improve this question
I fail to see how they are contrary at all, when looking past the titles. Both are important, but actually programming and also working on non-programming skills used on the job. Neither is saying you shouldn't do the other. They're each saying that the one thing is important in addition to the other. –  Servy Aug 23 '13 at 16:30
Let's move the meta comments to meta, please. meta.programmers.stackexchange.com/q/6137/53019 –  GlenH7 Aug 23 '13 at 19:19
add comment

2 Answers

up vote 27 down vote accepted

You're missing the point.

Jeff Atwood is saying that being an excellent programmer requires more than just coding skills. It also requires being a good designer, working well with other people, and in general becoming a better thinker and problem solver.

The greatest missing skill is somebody who's both good at understanding the engineering and who has good relationships with the hard-core engineers, and bridges that to working with the customers.

-- Bill Gates

Peter Norvig's point is that you can't just pick up a copy of "Become a Master Programmer in 24 Hours" and expect that to work. But that's exactly how many folks who ask questions at Stack Overflow seem to approach programming. They think they can load up Eclipse, learn a few keywords, and write the next Angry Birds. It takes a little more than that.

share|improve this answer
Nah, angry birds is probably like 2 or 3 keywords repeated ad nauseum with funny photographs of birds. Yep. It's a database for ornithologists right? –  Jimmy Hoffa Aug 23 '13 at 17:24
Well, but in certain way Peter Norving's point refer to the fact of "mastering" not knowing in a superficial way (that is the central point of his article) the programming language. In fact, Peter and Jeff Atwood refers to be a "master". As the same way you describe Jeff Atwood posture I describe that Peter Norving is saying that being an excellent programmer requires a lot of coding (with the implicit learning topics) and practice. –  Wronski Aug 24 '13 at 6:08
@Wronski: Ah, you're back, I see! Nice to see you again. While you were away, we were discussing your question, closing it, and reopening it. Anyway, so what are you saying, exactly? Peter Norving's point is that you can't be a master in 24 hours, or even 21 days. Jeff Atwood's point is that you can't be a master by only writing code. They are both right. –  Robert Harvey Aug 24 '13 at 6:12
@RobertHarvey Why closing it and reopening it?. Should I interpreter the Peter Norving article something to be a good "coding" only, and the Jeff Atwood article something to be a good "engineer"? I'm a little confused. –  Wronski Aug 24 '13 at 6:17
@Wronski: Masters are both good coders and good engineers. –  Robert Harvey Aug 24 '13 at 6:22
show 1 more comment

The "Not Programming" part should come after a good deal of programming practice.

the only way to become a better programmer is by not programming

You have to be a programmer first before you can become a better one. The first programming language learning barrier will take up a great deal of effort alone and the problem-solving part will be trivial compared to problems you will have to face later on.


As suggested in the comments, you can still benefit from "not programming aka: (thinking)" when first starting out as a programmer but I would not step away from the keyboard just because someone says I should be doing that to get better, rather you should do it because you know you need to think about it more.

share|improve this answer
Perhaps. But design skills are not that far away, even when first starting out; and people skills are valuable, irrespective of your coding ability. –  Robert Harvey Aug 23 '13 at 16:59
@RobertHarvey Yes, but Jeff Atwood's article seems to be more about problem solving and stepping away from the computer to think about what you are programming. –  Korey Hinton Aug 23 '13 at 17:02
@KoreyHinton Which is something that it would be entirely appropriate for someone to do when solving their very first programming problem. You can and should be doing that from day one, not once you're already proficient, that's what Robert's saying. –  Servy Aug 23 '13 at 17:07
@KoreyHinton Which is why nobody (neither article, nor any of the people answering here) are saying you should be doing just one or the other. They're saying it's important to do lots of both, because the skills complement each other. –  Servy Aug 23 '13 at 17:33
@Wronski I think Robert is arguing the opposite point that non-programming skills can be learned while first learning programming. I agree with this as well, but I'm glad that I personally didn't over-complicate the learning process at the beginning. My focus was like you mentioned prioritized with programming skills first, thinking skills second and now I am constantly striving to improve both. –  Korey Hinton Aug 26 '13 at 22:36
show 2 more comments

Your Answer


