Hacker News new | ask | show | jobs
by nthcolumn 3217 days ago
This is, for programmers at any rate, terrible advice and something many noob programmers do. If some code is right at the edge of your range then you are not bright enough to refactor it later. I can't say it is a good idea for singers either although I wouldn't know really. Even the best professional sports persons play 'within themselves' only rarely having to super-extend.
2 comments

Having been in professional sports: You always work at the edge of your range. You compete relying on the work you've done all those times before.

You cannot develop when you're within your comfort zone.

And the same goes for programming. You must go outside your comfort zone, or you'll stagnate. One of the poor souls who have 20 years experience, but alas the same year 20 times over. You grow because you failed. Over, and over, and over.

If you code at the edge of your range? More senior people will help you get things into a better shape. You don't have more senior people? Don't worry, you'll learn to refactor what you created. You'll curse your past self, but you'll learn :)

If you play it safe, you'll burn out from pure boredom.

I'm not sure about competing in track and field but played professional team sport at the highest level, agree maybe in the gym or on the road you push yourself to the edge and beyond but on the field it is the repetition, the drills and the routines which allow you to express yourself - certainly not running around headless, constantly forcing the pace, will just cause unacceptable mistakes - there is no margin for error at all, you do not want to be 'it'. I'm not sure working at the very edge of your range is the correct expression - speed of thought rather than limb counts and though you are very close to max just to stay alive we were always told to 'play within' ourselves.

As for programming - I've seen countless noobs make things that were far too complicated for them to understand later - let alone anybody else. If I had only one piece of advice to any intern it would be 'keep it simple'. I don't agree with learning everything the hard way, by trial and error because maybe you'll never get the chance to fix that crap you made because y'know there will always be people who can do it to an acceptable standard first time. Life does not always give you do-overs.

I disagree. The pain of maintaining crap code, especially crap code that you wrote yourself, is a very effective teacher. What better way to level-up your programming skill than to build things the wrong/expensive/slow way and then live with the consequences?