Ask HN: How long did it take you to become a proficient programmer?

7 points by Aeiper ↗ HN
Days? Weeks? Years?

16 comments

[ 0.24 ms ] story [ 39.2 ms ] thread
A month to get started, years to master (and most never will master).
Two questions, if you don't mind.

Do you program at work?

When you say it took a month to get started, were you creating anything more complex than a simple command line program that does basic math or prints strings?

The reason I ask is because I haven't had much of a problem understanding the syntax of any language or figuring out fizz buzz or other simple tutorials, but I still struggle to create things that someone might actually want to use.

My greatest work thus far is a website that: looks nice, has no content, and has a sign-up form validated with jQuery and PHP. I've been learning off and on for over a year now.

I do program at work, so I have logged many "flight hours" so to speak.

I learned CS basics over time, but I created my first webapp in two weeks, knowing nothing of web technologies before that. The education and tools are a lot better now, so I think someone trying to learn now would have everything they need to make a basic app in a month.

As for building something that other people want to use, well that is a separate question :) sounds like you are well on your way.

"...but I still struggle to create things that someone might actually want to use."

There, that's one of the problems programmers have to get over. Don't always try to create things that people might actually use, make up stupid stuff. Fiddle around try out silly ideas, proficient is partly having experience in coding a lot.

Doing different stuff, though maybe useless to the rest of the world, helps build style and practices creating better code. And at times though that you develop new ideas an methods for doing things.

So you got a nice no-content site, can you expand on it no-content-ness, make it a great... no.. an utterly fantastic no-content site? (then again, there are a ton of no-content sites you would be competing with :-)

In which language?
Whichever language you were using when you became a proficient programmer, one would assume.
Full time? The amount of hours? I've been writing code for almost 10 years now, but I don't code full time. It also depends what your definition of 'proficient' is. I can build anything I can think of, but compared to most professional programmers here I feel like I barely scratched the surface of software development.

In his book 'Outliers' Malcolm Gladwell states that it takes roughly 10,000 hours to get really good at anything. Be it programming, playing the piano or speaking Chinese, it doesn't matter.

For web development, you can learn enough to build a simple yet decent app/website in a matter of weeks. To get proficient, it takes a lot more.

For me, it seems that the more I learn about programming, the more I realize what I don't yet know. Which is a valuable lesson in itself, I guess.

I think the 10,000 hour rules is a good rule of thumb, but it of course also depends on the kind of programming you are doing during that time. But assuming you are doing a variety of things and actively trying to expand your skill set, and assuming you code an average of 2000 hours a year, it should take about 5 years to become proficient.
7 years. Grade 12, 4 yrs university and a couple of years as a working programmer. In that 3rd year I was promoted to lead programmer, we introduced an new computer system with a new language and started going after bigger customers. Something like that would have been stressful just a year earlier but I was on a roll, having mastered the art. P.S. If you try to do this with only one programming language, you will fail.
Proficient vs. perfect? One summer. Then another one to round it all out. Which sucked, because I spent the next few years having the life beaten out of me by others that were jealous or thought what I did was impossible. The backward point of view of most people and their attitude of negativity and jealousy toward anyone that's good at what they do is maddening. I'm sick of being around idiots.

Now, it's likely I'm behind and forgetting. Any potential, or world-changing talent is now wasted away and I'm closer to being decidedly average. I can't believe it.

Whatever.

Are you saying that the people around you made being smart a bad thing and also are responsible for you to regress from a genius developer to an average one?
My regress to an average (or worse) developer did happen all at once, but I guess I'd say yes, because it was due to this same reason (jealousy/BS). Before "the event," many constantly did everything to get in my way and this slowed my progress down considerably. Years ago, I was on the cutting edge nearing greatness, but this BS eliminated any chance of me actually achieving that.

Also in there is my tendency to procrastinate, which also slowed me down, but I don't procrastinate much when it comes to writing code and working.

I am an Indian developer. I read somewhere that average IQ of the Indian population is 80. So my IQ is probably 80. How long will it take me to become a ninja/rock star programmer. I want to make a plan for becoming an expert.
I'd say a few years.. but probably because that is the way the learning was structured. I learnt in college.
You can learn to make a "Hello World" program in almost any language within hours, but it will probably take a few months before you can write something useful without any outside help.

I started with C# and it took me about 5 months to feel like I could do anything worth while. I've picked up JavaScript and Python since. For me, working 40 - 50 hours per week on the language I was learning, it took about 2 years to feel like I could make something someone else would use.

My learning has slowed with time, as I imagine there's less to learn, but I never feel perfect. I hope I never do, because learning to program has been incredibly rewarding and fun. Once I get tired of a language or my learning slows too much, I find another to play with.