http://news.ycombinator.com/item?id=3278080
In a brief email exchange I Had with him, he even suggested he may rewrite this essay to address the fact that it is often used (inappropriately, obviously) to bludgeon new programmers into thinking that they're not actually programmers.
I think often on HN this essay is used to create some kind of caste system based on longevity in the biz or number of hours coded, which is horse shit.
Today's self-help culture panders to short attention spans and desires for instant gratification. Everything's "For Dummies," or "In ___ Easy Steps," or "The 4 Hour ___," or "____ in 30 Days." These are all constructs optimized to sell books; they're seldom legitimately helpful for the reader.
While it's indeed possible for an absolute novice to teach himself to code in a short timespan, the endeavor is bound to produce disappointing results. The sort of people who pave new ground, start impressive companies, and generally kick ass in the field, are the sort of people who see programming as a lifelong passion, and not a quick-and-dirty toolset to acquire.
It's about frame of mind, not longevity per se. I don't believe Norvig is implying that you can't do anything cool or useful before you've logged 10,000 hours. Rather, he's saying that the sort of person who does cool and useful things tends to be the sort of person who wants to stick around for the 10,000 hours.
At the very least, the phrase "Teach Yourself to Program in Ten Years" serves as a self-selection gate of sorts. People who see that line can be sorted into two types: 1) the kind who freak out, say "wtf," or think "wow, doesn't seem worth it," and 2) the kind who sort of chuckle knowingly, and proceed anyway. The latter are more likely to succeed, because they have the right mindset. They may not believe they need 10,000 hours, and indeed, they may not. But they see 10,000 hours as an intriguing challenge, rather than a barrier to entry.
All I can say is that my gut tells me I will feel the same way in 10 years' time. Here's to years.
I think this article gives excellent advice, and it has certainly worked for me. I always recommend it to people just starting out.
I'd be interested in current opinions on this. e.g. is there something one should look at before Icon if they want to lean about coroutines?
But why not Icon? It has plenty of neat features on its own, such as goal-directed execution (which I've never seen in another language). Plus it has several pretty solid (and free) introductory e-books: http://www.cs.arizona.edu/icon/books.htm
See also: Actors, async and reactive programming
Why learning Java or C++ if you are going to learn Lisp anyway? All Lisps I know of have their object system. If you prefer following the mature route, then Common Lisp is your best choice.
I think Assembly is missing from Norvig's list.
What I suspect happened is that the piece has been modified since it was originally published.
It good though...
Why does it get to the front page? Because it's relevant and good, of course, unlike almost everything that is merely new.
I'm pleased to see more classics turning up on HN; Periodic reviews of the classics are the only way to get new visitors onto the same page as older ones.
Any forum has reposts, it's just that some of them are literally resubmitting the same article and others are rehashing the same stupid arguments that the Internet has hosted since time immemorial.
I guess a small link to the prior discussions or the HNSearch link to given URL will do a job. I personally prefer the latter, but it seems that HNSearch only indexes the domain name of the URL.
I understand your point. That is not what the essay is doing. It is telling you that to be a true master of your craft it takes years.
Anybody can call themselves an artist if they are practicing art, but only very few get to showcase their work in art galleries. That is how the essay is using programmer in this essay. In the broader sense I agree with you, if you can code then you are a programmer.