9

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?

2
  • 12
    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, 2013 at 16:30
  • 2
    Let's move the meta comments to meta, please. meta.programmers.stackexchange.com/q/6137/53019
    – user53019
    Aug 23, 2013 at 19:19

2 Answers 2

28

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.

5
  • 5
    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? Aug 23, 2013 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. Aug 24, 2013 at 6:08
  • 2
    @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. Aug 24, 2013 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. Aug 24, 2013 at 6:17
  • 1
    @Wronski: Masters are both good coders and good engineers. Aug 24, 2013 at 6:22
10

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.

UPDATE:

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.

7
  • 2
    Perhaps. But design skills are not that far away, even when first starting out; and people skills are valuable, irrespective of your coding ability. Aug 23, 2013 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. Aug 23, 2013 at 17:02
  • 2
    @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, 2013 at 17:07
  • 1
    @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, 2013 at 17:33
  • 1
    @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. Aug 26, 2013 at 22:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.