5 ms·
Being a champion at something requires excruciating narrow focus on something for unusually long time. If you are getting GPA of 4.0 or play Rachmaninoff's Pian
by sytelus 12y ago
Being a champion at something requires excruciating narrow focus on something for unusually long time. If you are getting GPA of 4.0 or play Rachmaninoff's Piano Concerto No 3 or deadlift 400 pounds or in top 1000 chess players - you probably have to work on it for hours a day for years while ignoring everything else (of course unless you are one of those 1 in million polymath).
People getting in to final rounds of programming contests are usually not the best programmers in the world in terms of breadth, maturity and exposure to other aspects of programming. They typically have put enormous effort on super optimizing their mental structure to do nothing but learn to master every little trick necessary to win the contest. This typically means memorizing implementation of pretty much all popular solutions in these contests, mastering odd tricks while ignoring general insights, less attention on elegance and maintainability, less incentivized to work in group, more tuned to getting any solution as quickly as possible instead of striving to get best possible solution, ignoring any areas that are not popular in such contests etc. This kind of brain training obviously has its negative. However on average, winners from contests will usually out perform your average programmer any day, they just won't outperform our super stars who would probably disqualify well before semi-finals because they were busy in learning other things that are not useful at competitions.
My observations from dealing with one such person (I know, a great statistical sample size) very closely was that they are extremely fast learners and usually gravitate toward working on small very well defined problem that they already know how to solve but they suck at getting big picture, learning something large and complex and understanding the intricate interdependencies involved in complex systems.
- oskarth 12y agoIn general these things tend to follow a logistic curve. It's a useful meta-skill to know when investing more time has marginal utility. I think your examples are great, if you just change deadlift 400 pounds to maybe ~500-600 pound, (or roughly 2.5-3x bodyweight for adult men) [1]. Most adult men can reach a 400 pound deadlift in less than 2-3 years of lifting (that's <5h/week). I mention this only because a lot of people here on HN are probably lacking physical activity, compared to what human were evolutionary selected for, and it's useful to know what can be expected. It's generally more than most people think. 1: See for example http://chrissalvato.com/2009/12/skill-guidelines-for-building-strong-useful-adaptable-athletes/ http://chrissalvato.com/2009/12/skill-guidelines-for-buildin...
- deleted 12y ago[deleted]
- irishcoffee 12y agoI agree. I was actually pretty excited he said 400 lb. deadlift. I'm in the high 300's and felt accomplished for a second. But you're correct, the 500-600-700 range is where the big kids play, and it takes years and years to get there.
- fapjacks 12y agoYou know, interestingly and according to my own personal anecdote, I feel significantly more efficient and productive in programming after I started weightlifting every day and using a standing desk at work. I'd guess between 15% and 25% more effective as a programmer. What I can figure is that I began to challenge more of the world around me (by lifting every day and running 10k or more on the weekend), and the same determination I use to motivate this activity has "bled over" into my programming. This is all 100% anecdote and purely unscientific, but it's how I feel after at least a couple of on-again-off-again exercise periods in my life, culminating finally in what seems to be a more permanent pattern of physical fitness. I really believe all humans should engage in weightlifting (and not simply a bit of cardio).
- walshemj 12y agoYes the real word tends to value thing like your phone bill being absolutely correct and auditable and not prone to bizarre edge cases that the completion winners don't care about
- vijayr 12y agoCould boredom be a factor? Most programming jobs aren't very challenging, we just do the same thing over and over again with little variation.
- cloakandswagger 12y agoI doubt it. Most programming jobs are repetitive, but they still consume an average of 8-10 hours of each weekday. A lot of the winning contestants in things like Topcoder are people from countries where it's lucrative and desirable to get a few hundred dollars for a day's worth of algorithm writing.
- elliptic 12y agoYour point is well taken, but with some training most healthy men can deadlift 400 pounds.
- deleted 12y ago[deleted]
- mikepavone 12y agoMy personal experience with the ICFP programming competition suggests that you can do quite well with a fairly limited amount of time dedicated to it. My 2-man team managed to get 2nd place in the lightning round and 8th in the main round last year, despite using my side project programming language with its half-baked implementation. We generally do not do much preparation outside of having participated in the contest for a number of years. I did a bit of library work and my partner did a bit of a refresher on the language since he doesn't use it outside of the contest, but that was about it. Prior years were similar. Granted, ICFP is a fair bit different than something like Google Code Jam. There are far fewer entries (typically around 200 or so for the main round), the task is larger, you have more time (3 days for the main round compared to 2.5 hours for a round of Code Jam) and you can compete as a team rather than an individual. I haven't really tried Code Jam yet so I can't say how much of that makes a difference.
- o_syn 12y ago""" Q: What do you hate about coding? A: "Software engineering". Most real-world programming doesn't involve any new algorithm, doesn't require any cleverness; it merely involves implementing some known solution and making sure it's robustly commented and tested. It requires self-discipline simply because it's so boring! """ [1] SnapDragon, who's current rating is 3005 on Topcoder, and was ranked 18 on that site said that, who by the way is employed at Google (at least he was when he gave that interview). I think that pretty much sums it up. In addition, there is an aspect of software engineering that is much like playing with soap bubbles. All software eventually becomes outdated and unusable. If you're very lucky, some of the code you wrote will be used in future versions and maybe last for a decade or two before even that is completely discarded and forgotten. So it is completely unclear that anyone would want to write production code for the entertainment value. And secondly, most real world programming is in fact pretty boring, and it is likely that solving puzzles is far more entertaining. To draw an analogy, some smart people don't do well in school because you are graded on things like penmanship and mentioning the units and things like that. I don't think the scenario here is vastly different. [1] http://community.topcoder.com/tc?module=Static&d1=features&d2=020708 http://community.topcoder.com/tc?module=Static&d1=features&d...