Live data from Hacker News

How To Become A Better Programmer By Not Programming

codinghorror.com

21–30 of 121 posts

Re: How To Become A Better Programmer By Not Programming

#21
post #16

From what I've seen, there's just no crossing the skill chasm as a software developer. You've either got it, or you don't. No amount of putting your nose to the grindstone will change that. What a scary thought. Good thing it's not true. One of the many reasons I became a programmer was that the sky was the limit. Still is. Want to learn something new? Learn it. Want to build something cool? Build it. The only real l…

> 'They never learned right in the first place.'

I can relate this to a game of Table Tennis. A guy I know played lousy for two decades, his technique never improved. Then one day he got hold of a masterful neighbor who taught him how to play, hit top spins, do spin serves, hit chops. He participates in amateur tournaments now and does fairly well.

Re: How To Become A Better Programmer By Not Programming

#22
I'll just keep the "You won't-- you cannot-- become a better programmer through sheer force of programming alone. You can only complement and enhance your existing programming skills by branching out. Learn about your users. Learn about the industry. Learn about your business." quote. I think that's the main point of the article. Also, the article is more than four years old, I'd like to read what he thinks now or five more years from now.

Re: How To Become A Better Programmer By Not Programming

#23
post #18
post #7

Earlier quoted context omitted.

Some of the most productive programmers I've known toss code together in a horrifying slapdash fashion but somehow get great things done. And sometimes people with far more precise and mathematical minds just get mired in their beautiful architectures. The common trait I've seen in all exceptional programmers is an ability to keep a tremendous number of details in memory at one time. Most real world code is not lambd…

The common trait I've seen in all exceptional programmers is an ability to keep a tremendous number of details in memory at one time Would you care to elaborate on this? I'm a programmer with 'precise and mathematical mind' and I'd say that my one big weakness is exactly that: I struggle to large numbers of disconnected facts in my head at one time.

Most programming tasks involve reconciling a bunch of competing constraints. Abstraction techniques make it easier to deal with subsets of those constraints but abstractions leak and even well abstracted software still involves the interactions of many small pieces. This is why it takes 20-30 minutes to get your head into a programming problem - you have to pull enough of that problem space into your head to start manipulating it.

The best programmers can get into that space faster and pull a bigger chunk of a system into their heads at one time. This is why they don't necessarily write clean code because they don't have to. The less gifted of us need strong abstractions and code discipline or we just can't keep up. This is why somebody like Linus Torvalds can afford to be disdainful of a lot of common practices in software - he doesn't need the extra help those practices provide.

And all this happens well above the level of a strong mathematical formalism.

Re: How To Become A Better Programmer By Not Programming

#24

"I agree with Bill. From what I've seen, there's just no crossing the skill chasm as a software developer. You've either got it, or you don't. No amount of putting your nose to the grindstone will change that." This is a very condescending look on humanity and I did not know that Jeff had said such things. To anyone thinking the same, let me introduce you to the concept of deliberate practice (how to really improve a…

When I was first starting as a programmer, I would have agreed with you. But over the years I've learned that it is 100% accurate that some people can program while others simply cannot. But it's not a matter of stupid/smart. It's actually the same reason why Paul Graham's 'Hackers and Painters' analogy is so apt. The reality is that some people can think in abstract terms, while others cannot. Someone who can think…

> The reality is that some people can think in abstract terms, while others cannot.

This is true, although there's also a gray area of spectrum in between. I've worked with a few programmers who could write imperative-style code just fine, commented and clean, looping over arrays and FizzBuzz and such; but who never grokked first-class functions or SQL set-based operations. (I've replaced many a complex cursor-looping SQL procedure with a set-based query running ten or more times faster.) I think a more nuanced description of the question here is whether and how one can successfully drive oneself to think in progressively higher abstractions. It's not all black and white, abstract or concrete.

Re: How To Become A Better Programmer By Not Programming

#25
post #16

From what I've seen, there's just no crossing the skill chasm as a software developer. You've either got it, or you don't. No amount of putting your nose to the grindstone will change that. What a scary thought. Good thing it's not true. One of the many reasons I became a programmer was that the sky was the limit. Still is. Want to learn something new? Learn it. Want to build something cool? Build it. The only real l…

I am so, so glad you said this.

I've been experiencing such a crisis of confidence recently around the idea that I lack talent, so much so that I've felt like there was no point in trying to improve things beyond where they are, or to even risk being criticised that it's totally frozen me up.

Thank you.

Re: How To Become A Better Programmer By Not Programming

#26

"I agree with Bill. From what I've seen, there's just no crossing the skill chasm as a software developer. You've either got it, or you don't. No amount of putting your nose to the grindstone will change that." This is a very condescending look on humanity and I did not know that Jeff had said such things. To anyone thinking the same, let me introduce you to the concept of deliberate practice (how to really improve a…

When I was first starting as a programmer, I would have agreed with you. But over the years I've learned that it is 100% accurate that some people can program while others simply cannot. But it's not a matter of stupid/smart. It's actually the same reason why Paul Graham's 'Hackers and Painters' analogy is so apt. The reality is that some people can think in abstract terms, while others cannot. Someone who can think…

I totally agree with the 'thinking in abstract terms' thing but I would never reduce programming to that. It's not always so abstract.

I tend to think that it'soften good rhetoric skills. A great ability with the three different types of rhetorical proof: ethos, logos, pathos.

http://en.wikipedia.org/wiki/Rhetoric

Re: How To Become A Better Programmer By Not Programming

#27
What bill is talking about programmers at MS or any big company like facebook, google etc just like super start sports person or musician, but in general there are lots of requirement of programmers who don't need to those kind of super programming skill but programming with business value.

Comparing programming with sports is not a good idea because you are comparing super start sport person with avg programmers.

Even in sports or other fields there are people who were avg or above avg sport person but latter they become great coach .

So it is quite subjective. If your heart say you can become programmer and you are doing enough for the same and you are improving day by day then you are on right track.

In my view just writing code is defiantly not going to make good programmer. Code, understanding end user and domain is going to make you better software maker.

Re: How To Become A Better Programmer By Not Programming

#28
Programmers are not born. They're made.

You may have a certain aptitude or talent for software development. However talent without discipline fizzles out or produces wildly varying results. Talent is like that.

What makes a good programmer, mathematician, sports player, etc is discipline. The love of the craft/sport/etc that pushes a person to believe that all the discipline and hard work is worth it. People are naturally lazy. However if they really believe in something they will work on it and become better.

Re: How To Become A Better Programmer By Not Programming

#29
I think this article says more about the corporate culture where programmers work than about their capacity. What happens in Microsoft, as in most other companies, is that they make a decision about what a person can do in about 1 to 3 years. After that period, they will no longer give exciting assignments to the programmer and he will be forever viewed by management as doing the same old job. Many times this happens because of lack of determination from the part of the employee, but frequently because he didn't have the right opportunities and didn't know how to look for them.

Usually when this happens, either the employee will leave the company in a short period, looking for better opportunities, or resign itself to do the same thing until retirement (or until he gets lucky).

Re: How To Become A Better Programmer By Not Programming

#30
post #3

You can only complement and enhance your existing programming skills by branching out. A big part of that branching out in my opinion is expanding vistas in areas unrelated to engineering, like reading good literature, creating or appreciating art, and travel.

I've wondered if engineering/CS undergrads should be forced to take a Design 101 class to learn: * design is everywhere * having a sense of taste is vital to anyone who makes things * end users are severely affected by every design decision you make I run into too many engineers that try to disregard the subjective aspects of development (architecture/UX/etc) because they believe the only worthwhile things are the lo…

what's subjective/"not logical" about architecture???
Post reply on HN