Live data from Hacker News

Teach Yourself Programming in Ten Years (1998)

norvig.com

21–30 of 96 posts

Re: Teach Yourself Programming in Ten Years (1998)

#21
post #6

Though agree that those "For Dummies" books grossly underestimate the time needed to be a good programmer, I really wish he didn't use the "10,000 hours is the ultimate immutable number of hours you need to 'master' a skill." It's nonsense.

I agree with you on a certain level, since there are so many outside factors influencing how quickly you can become a good programmer. It's not as if you are an average programmer for 10,000 hours and then you magically become a great programmer in the 10,001st hour.

That being said, I don't think the estimate is totally wrong. I've been programming for five years, have just gotten through a Software Engineering degree and am comfortable using three or four languages, but there are many people around me with more experience who's development skills I am just in awe of.

The main point is that nobody can teach themselves to be a programmer (or at least a good one) in three days. To build up the amount of skills and experience required takes many years.

Re: Teach Yourself Programming in Ten Years (1998)

#22
post #6

Though agree that those "For Dummies" books grossly underestimate the time needed to be a good programmer, I really wish he didn't use the "10,000 hours is the ultimate immutable number of hours you need to 'master' a skill." It's nonsense.

> It's nonsense. The 10 year / 10,000 hours seems to come up frequently - care to cite or link to some interesting counters? (genuine curiosity)

It's an arbitrary amount of time that relatively few people are able to dedicate to any skill. The rare people that do are known as "experts".

But you won't be as "expert" as someone with 20,000 hours. IMO it's a tautological phrase based on your chosen definition of "expert". That's why I dislike it.

Pilots' experience is often measured in hours. 10,000 is nothing special (10 years?), but to a lay person they sure know a lot about piloting, and at a dinner party I'd defer to them as an "expert" on anything to do with flying.

Re: Teach Yourself Programming in Ten Years (1998)

#23
Relevant Marcus Aurelias quote:

"Think of your many years of procrastination; how the gods have repeatedly granted you further periods of grace, of which you have taken no advantage. It is time now to realize the nature of the universe to which you belong, and of that controlling Power whose offspring you are; and to understand that your time has a limit set to it. Use it, then, to advance your enlightenment; or it will be gone, and never in your power again." (Meditations 2:4)

Re: Teach Yourself Programming in Ten Years (1998)

#24
When I was learning how to program, I asked the friend who was teaching me the rudiments "How long does it take to learn how to code?"

He replied "Eight hours."

"Eight hours?"

"Yep, eight hours, every day. It's pretty much just like driving a bus. The hard part is keeping your ass in the seat."

Fifteen years and a master's degree later, his advice remains remarkably accurate.

Re: Teach Yourself Programming in Ten Years (1998)

#25

Self-teaching programmer here. Extensive IT background, and have had a CS class or two in public "B School" type university. After Codecademy, Learn x the hard way a little bit, and even command line hacking with REPL's I have been able to conquer my fear of the abstraction layer. And although I am able to look at programs that exist and I use from a programmer's mindset, I still can not understand how to model my id…

This is how I do it.

I just started working with python about 3-4 weeks ago. No experience other than html, css3 and graphic design.

So I started doing some online classes but they were so boring and simple that I finished them within a day or two. I actually started doing Udacity's CS class when they teach you how to design a search engine, however half way through I realized that this can be done twice as faster with tools that already exist.

From there I read some Django docs, installed it but django was the most confusing framework to me (not really sure why, just didn't like it)

I stumbled upon Flask and I fell in love. Without any knowledge of how to program and how things work I simply started coding, working with db (postgres). Within a week or so I designed a small blogging application that lets you register users, each user can upload photos, create docs and delete them. I try to code very neatly, and comment on everything. There are a couple of solutions for everything so if I find a better solution I comment out the first one and apply another one.

PS. Don't code for 12h straight. Go out. If I don't know something, I seek for direction, not an answer. I also walk away from my comp and think about a solution, and these tend to be very easy and can be done with a few lines of code. I guess I use my creativity to solve code problems.

Also write everything in small chunks and reuse.

Re: Teach Yourself Programming in Ten Years (1998)

#26
An interesting implementation of the 'learn X in Y years/hours' concept is here: http://thedanplan.com.

"It’s a project in transformation. An experiment in potential and possibilities. Through 10,000 hours of “deliberate practice,” Dan, who currently has minimal golf experience, plans on becoming a professional golfer. But the plan isn’t really about golf: through this process, Dan hopes to prove to himself and others that it’s never too late to start a new pursuit in life."

After 3 years/4000 hours, he's at a 5 handicap after starting from nothing.

Re: Teach Yourself Programming in Ten Years (1998)

#28
post #6

Though agree that those "For Dummies" books grossly underestimate the time needed to be a good programmer, I really wish he didn't use the "10,000 hours is the ultimate immutable number of hours you need to 'master' a skill." It's nonsense.

> It's nonsense.

Not nonsense, but somewhat arbitrary. Given the present topic, maybe a power of two would be more apt, although equally arbitrary. 8,192 hours (2^13) is the power of two closest to 10^4, based on:

2^⌊log(10^4)/log(2)⌋ = 8192

(⌊x⌋ = floor(x))

It's just an anecdote. It has some connection to reality, but it's not like the fine-structure constant or the gravitational constant.

Post reply on HN