Hacker News new | past | comments | ask | show | jobs | submit login
I didn't learn programming when I was 12 (kennyletran.com)
109 points by kennyt on Aug 6, 2012 | hide | past | favorite | 80 comments



The people who began at a super early age started off having it as a hobby. Whenever they were bored they could fall back on coding for fun. Which then grew their interest in the subject (really important). But then comes middle school. And after that high school. Where most of the time you worry about the upcoming test or college admissions. For others, it will be that one girl or that upcoming party. They didn’t completely shun programming out of their life, but they didn’t have the time to nurture their knowledge either. Instead they left it as a hobby (still important).

That wasn't my experience. I learned to code at about 12, but it took over my life. I don't think I talked to a single girl between the ages of 12 and 19, never mind went to parties (didn't help that I went to an all-boys school). I programmed so much I failed my final school exams and couldn't get into a college course; I had to repeat the final year, and I still could only scrape enough marks in subjects like English and French to study at a very humble college, my 20th choice of a ranked list of 20 (this relates to how the college admission system works in Ireland).

And then, I hardly learned anything in college. I knew more than most of my lecturers. I did, however, party as much as I reasonably could in the first two years. But I wouldn't have gotten a job working on the Delphi compiler without my degree; I needed it to qualify for a visa, as Borland wanted their hire to be on-site in CA. But as it turned out I was able to work remotely.

I guess what I'm getting at is that there are more important things than programming at a young age, and getting really deep into it very early is not necessarily a great thing. I certainly don't think it's a life experience to be particularly jealous of.


I have had much the same experience. In a way, programming for its own sake is a skill that’s worth it to have, but not worth it to learn. The up-front cost is high, and you get very little payout until you’ve progressed from journeyman to master. It’s very like writing in that regard, rewarding perseverance—and, by extension, addiction.


I started, well, pre-kindergarten. Or in my teens, for anything major and self-guided. Or at about twenty for producing professional results. Or in my late twenties, as someone who could do research-level algorithms work. Or today.

If I stop using a language for a while, I have to relearn it. The term language is very appropriate - learning and retaining a programming language acts very much like learning and retaining a human language.

My take-homes about "when to learn programming" are:

* If you have kids, expose them to "Hello World" programming early. By which I mean, once they start reading. The cognitive benefits of multilingualism are greatest at early ages when neuroplasticity is high. There are numerous languages and projects which are suited to this. Lego robots should probably feature prominently once they're of an age to not eat the pieces.

* You're never too old to learn programming. The biggest jump in capability by far is between non-programmer and someone who has been at it seriously for a few weeks or months.

* At the same time, start learning programming as early as possible. Learning to be a great programmer takes a lifetime. But very little of that is learning syntax! Great programming takes marketing, art, math, psychology, and whatever else you can cram in. Pretty much any field of human endeavor has something to contribute. "What to program" is far harder to learn than "how to program" - and people who start learning programming later in life will have a lot more to draw on here than some 12 year-old.


Starting to program at 18 is early. I took 2 programming courses in college (1 was a Pascal-clone, and the other was an assembly language course), but I essentially taught myself how to program after graduating from college, and have made an entire career out of it, and I'm more than double your age. Don't worry about it, you have plenty of time.


I spent a couple of weeks programming in FORTRAN for an internship when I was 16. I hated it so much that I vowed never to become a programmer. I didn't touch code until about 7 years later. A year later, and I just became a fulltime "Software Engineer" last week! :)


I'm glad to hear that. I'm entering my senior year of Economics and I didn't discover that I enjoyed programming until I took an introductory C++ course last semester. The other day I found myself worrying that I had already missed out on my chance, since I can't currently afford any additional semesters.

I'd like to return to study computer science some day, and in the meantime I'm just doing the best I can to learn on my own.


I also studied economics in college, but now program professionally, largely due to my experience at at the Federal Reserve Board of Governors. If you are still looking for work after college, and I assume you are, I recommend you check out their Research Assistant program.

http://federalreserve.gov/careers/ra.htm

For me it was a great way to parlay my economics training into a programming career, even though that wasn't what I was interested in at the time. It's also a great career stepping stone if you're interested in graduate education (not necessarily econ), government work, policy work, law, or myriad other fields. If you want more info, let me know and we can talk offline.


Thank you. I imagine such a position would be very competitive.

I'd definitely be interested in hearing more about your application process, how prepared you felt you were based on coursework, and of course what the job was actually like.


Sure, send me an email at douglasrohde at gmail, I can certainly answer those questions.


Bear in mind that even DHH (creator of Rails) didn't feel like he got anywhere with learning to program until well into his 20s: http://37signals.com/svn/posts/2582-how-do-i-learn-to-progra...

I know plenty of programmers who are far better than me and have been doing it for a fifth of the time. It's a bit like art in that way. There's a lot you can learn over time and become "wise" about, but in terms of raw output, time isn't as relevant.


People are already telling you that eighteen is not too old to learn programming. And they are correct. People start at forty and fifty.

I have a different point to make.

There will always be someone smarter than you. Someone who started younger, learned faster, accomplished more. They're smarter than you are now, and they'll probably always be smarter than you.

Just get used to that as quickly as possible and move on with your life.

Now, in fact it is easy to be the world-champion of something if you qualify it enough. (I probably still hold the world record for building an efficient triangular planar semiconductor ring laser, for example. Nobody cares. Least of all me.) If you insist on occupying the top of some hill on this earth, you can always find a way to build that hill. The easiest way is to build it in your own mind. Don't laugh: People find genuine, lifetime happiness by doing that.

And it is true that genius is ill-defined, and that if you define it by a specific criterion, and then win that criterion, many people still won't accept that you're the biggest genius, because, hey, it's only chess. Or Jeopardy. Or music. Or literature. Or astrophysics.

And it is probably true that, even if you could become the biggest genius in history, no contest, you've won, you're the proverbial Einstein… you'd find it to be a big letdown. You'd feel just as confused as ever. You'd just be confused about harder problems. And meanwhile you'd find yourself surrounded by people who do not understand the most basic and obvious things.

But, no, these weak forms of my argument will not make you strong enough. I want to make you very strong, so I want you to visualize the person who is better than you in every way, and also twelve years old. And then I want you to get used to the existence of this person. And get on with your life.

Because other people's genius is not a problem. (Indeed, it's often really handy: Geniuses and prodigies can be good people to know. They do strange and wonderful things. It is fun to be their fan. It can be really fun to be on their team. This is a big reason why I live near MIT.)

If someone else's genius is a problem, it is probably not your problem.

---

When I was eighteen I was a fairly good math student. I enjoyed high-school math competitions, like the AHSME. I did pretty well. One year, based on my statewide ranking on the AHSME, I got invited to join a team of the top math students from my state to compete against an all-state team from another state.

This was one of the most valuable experiences of my life and I heartily endorse it. Because here's what happened: I got my ass handed to me. My teammates were freakishly smart. It turns out that the distribution of math-contest talent is not at all normal, and that being in the top 1% of contest-takers doesn't mean that you're within hailing distance of the top 0.5%. Oh, no.

As I remember it, one of the people on the trip wasn't an official member of our team. He was too young to compete, but was tagging along for fun. I think he might have been twelve. He was a better contest-problem mathematician at twelve than I've ever been in my life, that's for sure.

So what happened? As I remember, I had fun at the competition. I spent the time doing what amounted to janitorial work for the power-solvers at the head of our team: Filling in obvious missing steps, sharpening pencils, whatever. I don't remember. What I remember is that I got to hang around people who really liked math. And then I went home and kept on liking math, but stopped worrying about whether or not I was going to be the second coming of Galois, because I obviously was not.

I have found this attitude helpful, because if I were all hung up on the fact that I'm older, slower, and stupider than many of the folks I hang around with, my ego wouldn't last five minutes around here:

http://news.ycombinator.com/item?id=35079

(HN veterans will have figured out, ten paragraphs ago, that this whole essay is basically an excuse to revisit that link from the old days. ;)


Plus, even if you do become the best who ever lived, someday you'll get old and you won't be as good as you once were (just ask Michael Jordan).

If you define your self-worth in comparison to other people, you're building your house on sand.


That story is interesting because it highlights what is often an enormous gap between people who are "pretty good" and people who truly excel. At times it feels like an impassable chasm.

As a similar example, when I was younger I used to cycle a lot. I would go out 4-5 times a week and would cycle as far as I could and as hard as I could. I got to the point where it became frustrating to cycle with any of the people I knew because I was so much faster that I could not get a reasonable workout if I went at their speed.

So I figured it was time to take the next step, so I signed up for the youth category of a regional cycle race to see how I would fare there. I remember seeing my competition, who were kids about my age but they had turned up with dedicated vans (embossed with sponsorship logos), support crews, carbon fibre bikes and personal trainers, the works. Many of them were actually the sons of pro cyclists.

So I line up at the start and when the gun goes off everyone plows forward, I manage to keep up for a while by working hard and feel pretty good about it. Though after a while it becomes obvious that they were really only just warming up and one by one they start to drop me until I'm stuck right at the back of the race.

This put me off cycling for quite a while, because it seemed like the choice was simply between dominating everyone or losing.

I sometimes think programming and computer stuff can be similar, everyone knows a kid who is a "computer genius" but in reality that can mean anything from knowing how to re-install Windows and fix basic computer problems to someone who hacks on the Linux kernel for fun.


I feel that there is a still stronger form of the argument out there. Or maybe it's closely related. It incorporates what you just said as well as the fact that intelligence != social status. If I could figure out how to properly word it, I would be quite a ways ahead of where I am now.


"I want you to visualize the person who is better than you in every way, and also twelve years old. And then I want you to get used to the existence of this person. And get on with your life."

Better yet: smile and be hopeful because of the existence of such a person.


Excellent post. I read every word.

I would go even further. Even though you state that for any person member of humans, there exists someone smarter than person, sometimes you slip into writing as if there is a linear ordering.

The geniuses and prodigies, sure if you project unto one dimension you can find a few people who dominate. Maybe you can find a few such dimensions. But there are vastly more dimensions where they would rank poorly than not. So instead of looking at it down the narrow lens of any one subject, it is best to focus on creating a uniquely useful combination of skills that you dominate on.

And then, why focus on intelligence or comparisons or domination at all? Focusing on things like that can be detrimental. Treadmill wise and also, especially to creating. Ranging from "I know I am super smart enough to do that so why bother?" to "I am not super smart so that is out of my league." Better to focus on results and ideas. You want to do something? Try it or don't. Sometimes being confused can be useful. Creatively speaking.

And then take a step back. It is possible that as you say, the distribution is no longer normal at tail but the range on humans is still a tiny pinpoint. We got things that are vastly dumber than us and it is very certainly possible for an intelligence to dominate us in orders of magnitude.

Why focus on such small change?

I have thought long on this in trying to combat feelings of worthlessness compared to how very much less I have accomplished than my father did at my age. He was one of those genius type people. =(


I agree that linear ordering is a fallacy. But the fact that I kept slipping into it is probably deliberate, if often subconscious.

Part of that is just to make it flow better: The art of explanation is to choose one clear line of pursuit and gloss over the complications. But I think there's a more important reason: The real world is multidimensional, but feelings of inadequacy are not. When I'm feeling good about myself I can recognize that there is no one true scale on which two people can be compared. But when I'm depressed and I think about smart people I just see a bunch of folks who are "more talented".

Depression messes with one's mind, to snap oneself out of it is not always possible (save your life, see a counselor) and when it's possible the mental trick that is required is different for everyone. The "by which arbitrary yardstick?" gambit is one such trick. My essay above is an expression of a different gambit.

(In other words, my rhetorical characterization of the various arguments as "weak" and "strong" versions of a single argument is also a false linear ordering. ;) Oh, the things we do for rhetoric.)


Great post, can't upvote enough. I didn't start at 12 either. I didn't start at 18 even. At 18 I did try my hand at some qbasic - I tried to reverse engineer that gorilla game with the bananas and the wind. I also wrote a couple scripts for MajorMud, so I could "play" even when I was asleep and at work.

That aside, I didn't even go to college until I was 26 and it was for Biochemistry. That was too hard for my weak little brain, so I switched to CS (which wasn't much easier tbh, but it was a bit, for me at least).

I graduated when I was nearing 31, and at that point had only been programming seriously (internship) for a year.

I'm not that great still, but only been out of college since early 2009, but at least posts like this give me hope that I can be more than passable.


Great post. Beyond accepting the existence of people smarter and more talented, I would recommend seeking opportunities to work with them on teams as much as possible. It will help you stay humble, yes, but it will also help you accomplish great things.

And--top secret--a lot of really great people secretly think that they are not as great as others. So you might have a spectacular team on which each person secretly thinks the rest are smarter or more naturally talented.


It's never to late to start. If you love it'll work out anyway.

I started "programming" at 10, didn't do anything useful until 16-17. I didn't program for real until I was 25, and it wasn't until I was past 30 that I felt like a proper programmer.


Amen. That's the story of my life too. Nibbled around and played around for a long time, but not really getting into it. But boy, when I did get into it, did I get into it! It's been a lot of fun since.


This is almost exactly my life story, only that I haven't reached my 30s yet.

Reading about all the 18- or 19-year-olds forming million-dollar startups really does make me feel like an underachiever sometimes.


Sure, but chillax. You have a long way to go. :) Maybe about 9 years and 10 months before you really get going!

http://norvig.com/21-days.html

Most of us old timers (> 21) probably didn't start programming because of TechCrunch hype or even on Web development anyway. Too much emphasis occurs on Web development (oh snap, I said it).

Keep at it but as unpopular opinion as it is, programming is a long slog, not just the product of fliiping out a few RoR projects or going through a couple cool tutorials on Javascript with fancy interfaces (not saying this applies to, just a general comment).

As for whether you wait too long, probably not, but you're only 2 months into this deal, the jury is still out. :) Anyway, there's people in the Valley that would probably say you are toward the end of your career, 25 being basically providing two options, either become a well known, famous guru or straight to the glue factory .

I don't really buy that, but that view is probably more common than mine.


I'm 29 and only started programming a year ago.

What's "worse" is that my father is a computer scientist (who was involved in the industry since the 70s) tried to teach me since I was 6 but I was not interested.

My brother was interested and became a very distinguished developer in his own right (working as a developer since he was 12).

The feeling of 'missing out' / 'starting too late' seems to be ageless. I have experienced it many times through many years and it always prevented me from pursuing my passions.

Some might find it funny that a 18 year old will feel that way but I remember feeling the same thing.

By chance however, I stumbled into programming again but this time it caught me. I was finally enticed enough by it's complexity, its interesting problems to solve and the creative outlet it give me to overcome the debilitation of my fears and 'regrets'.

What I found was that if you love doing something, if you enjoy the learning and the rewards that come with it - you stop worrying about where you are in the great scheme of things.

Perhaps it's my age finally telling me that time is not what's has past or how much you still have left but how you are using it now. Use it to enrich yourself and enjoy it as you see fit.

We are wired to compare ourselves with others. But these days we don't need to be the best hunters to survive and flourish, to get the girl and live happily. We just need to find what makes us happy and enjoy doing it. Doing that will just naturally make us the best we can be.

IMHO


I'm 22 and only just now going to university. I've had the same issues as the author, about the non-encouraging environment, friends not interested etc. I had the interest sure, but never -really- got into it. Dabbled through Python books and tutorials here and there, tried different languages but never got prolific in any of them. Rarely creating anything outside answers to exercises. But I forgave myself (kinda, I always felt too old when reading about those 12-year old wiz-kids, being 15 and all).

For a long time I considered myself ahead of the curve, for browsing sites like HN, absorbing information from the internet. It was about a year ago I finally realized it doesn't matter if I haven't actually done anything. "Sponge learning" only gave breadth, but no deep knowledge was achieved. I couldn't DO anything.

Nowadays I still think I'm behind my peers. Maybe not behind the average, but it's never the average we strive for. I still feel inadequate and, most likely, will never get rid of that feeling. I concentrate on doing what I can with what I have, getting better and trying not to compare myself too much.


Age doesn't matter. I'm 18 and I started when I was 14 or 15, not when I was 12. The nice thing about programming is that most people in developed countries already have most of what they need to start doing it: a computer, an internet connection, and the desire to build something cool. I was drawn to programming because I liked (still do, actually) to build cool things.

I started out trying to make robots but the mental and physical costs were too high. My father works with furniture but even with his resources and expertise building anything all that interesting took more skill than I cared to learn. Programming let me do cool things within a couple of hours of starting out. I still feel like I took the "easy" way out compared to a physical craft like woodworking or electrical engineering, and I'd like to learn more about those at some point. For now, programming will have to do.

EDIT: spacing.


I'd say programming is like architecture. Most architects don't start learning their craft until age 20+. Yet those "late bloomers" still go on to do amazing things. If it was as easy to learn architecture as programming, we'd probably see blogs from people wondering if age 18 is too late to start doing architecture.


But most architecticts were artistic sketchers at a youndlge age. For programming, something like math or logic or Latin would br analogous.


I am one of those guys who has been programming since he was 12 (I call it 11 actually). I'm now 23.

Before I went to college, I thought my programming skill was high enough to get me a good job. I was just going for that piece of paper, the degree.

Two and a half years later I dropped out. I looked back on my 18-year-old self and realized what a terrible programmer I had been. But now I was ready. Some courses and a bunch of awesome internships had prepared me.

A year or so later, I got a job offer at an NYC startup. Looking back on my pride-filled self at that time, I now realize what a terrible programmer I had been.

I'm still at that startup, and it still kicks my ass from time to time. After 11 years of programming, it's still hard to believe there's a cap on knowledge. There's definitely not a cap on experience


I'm 38 and I started programming when I was 10, and I still sometimes cringe when looking at code I wrote a year ago. This is the natural state of things as long as you keep improving. You should only panic when this stops happening.

See also: John Carmack's recent QuakeCon speech where he talks about basically the same thing in the context of looking back at the Doom3 era id code compared to the Rage era code.


Started sometime between 8 and 12, depending on how you define it.

I'm 24 now and work at a startup, I had a similar experience to yours, except I dropped out my first quarter of school.

I've changed a lot since 18, I can say that much.

I honestly believe that if you took someone totally naive to programming and put them through an intensive CS + programming apprenticeship, they'd be a better programmer than me in 1 or 2 years easily.


It was quite interesting and humbling to see how my university class mates could absorb so much of the mandatory C programming course in only 2 months. Stuff that I had taught myself over the previous 5 years.

I think that the most valuable thing I have is that I'm enthusiastic about programming. These guys could do what I do, but they wouldn't want to make a career out of it.


As someone who did learn to program at the age of 12 (and is now 32) I don't think it matters. Programming is not that hard to learn - it's another language that is far more straightforward than trying to learn a spoken language that might have genderizations, weird grammar rules and so forth. The actual learning to program is not complicated.

What is complicated, is the analytical mindset that makes a good programmer. I believe that the better programmers just have this mindset and it is what makes them good at what they do. Coupled with a passion for the technology they are using, this will make them better at what they are doing regardless if they have 2 months behind them, or 20 years behind them - and also regardless of the age they start at.


Programming is not a race with one winner. There are a ton of programmers making 6 figures, and the distribution of possible incomes for someone who can program and ... has no real upper bound.

You are very unlikely to be the second coming of John Carmack, but you can still have a plenty good life. Welcome aboard, start your learning curve, and keep it going.

There is only one big tip that I have. A level people like to hang out with A level people while B level people like to hang out with C level people. The difference? B level people want to be the smartest person around and stop learning. A level people don't care about the label and want to be around other smart people.


I agree with this, however I do feel compelled to expand upon it.

A level types really only like to hang around A level types. Being a B or C player in a room full of high achievers can at times be downright (if not outright) unpleasant.

If I had my druthers, I'd choose to be the 2nd dumbest person in a given room. Being an order of magnitude or two behind the mean is more demotivating than educational.


I was an early bloomer and I'm grateful for it. I've now been coding regularly for more than half my life in a spectrum of different languages. And what I think that gives one is a kind of muscle memory that makes it possible to do thousands of small calculations about code with near-zero conscious effect.

But while having a lot of raw experience under your belt makes writing of actual code much faster, I think the real benefit is that it frees up your working memory and problem-solving capacity for the more important problems of software engineering: mitigating complexity, predicting long-range interactions, and keeping the design supple.


I want to contrast this with my experience learning guitar (classical guitar).

I started as an adult student, ~25, struggling to play Twinkle Twinkle Little Star. I mean... really struggling. I didn't have any musical education prior to deciding to learn. Playing "Hot Cross Buns" on the recorder in 4th grade was the extent of my experience.

And I went to my first recital, surrounded by midget 12 year olds who had been playing for 5 years, and me sounding terrible.

And then I understood.

The race is with yourself, not with others. I'm as good as I am due to the work I've put in, but not yet as good as I can be. And this applies equally on all my endeavors (as well as it applies to those 12 year olds), it was just most apparent when I first started studying music.

It's very humbling to be schooled by a 12 year old. It takes a lot of restraint to take that extra step and be able to learn from them. Just last week I had a guitar lesson from a 16 year old. Half my age, but with twice my experience playing guitar. And I set aside my ego and I learned what I could, and I've set aside my XBox and am putting in the time to practice what he's suggesting for me to learn.

If you haven't tried learning an instrument it's a rewarding challenge and there's a lot you can learn that you can apply to other areas of your life.


I started programming 30 years ago when I was in high school.

... Wait for it... . SO WHAT!

Seriously, the thing I love the most about our choice of career is that if you want to be good at it you will be learning for the rest of your life.

I wrote a system last year that processes 3.2 Billion queries a day at peaks of 45k/second and all under 4ms response time. Very little of what I learned in high school about z80 assembly language had much to do with this project. Most of it was exposure to all the things I've worked with for 30 years and some of it was stuff I learned six months ago.

The "learned six months ago" is the part to pay attention to. If you enjoy the challenges placed in front of you and you enjoy learning this is one of the best businesses you can be in. If you want to park yourself at a desk and do minimal work and/or new learning then try a different field. There are plenty of fields you can master quickly and not have to learn much for the next 20 years.

When you start is not as important as your passion and dedication. My father and I were talking the other day and he told me how he was so impressed with how smart I am (this coming from my dad who at 71 learned to write in Php lol). I told him I'm actually pretty average, the difference is persistance. I recently heard a claim that Albert Einstein said "It's not that I'm so smart, it's just that I stay with problems longer.." I'm not sure if he said it or not but it is exactly how I feel. It's not about what year you started to program, it's about staying with problems longer and working them out and learning along the way.

Enjoy the ride.. I know I have and it's just barely started.. ;-)


I'm 17 and started teaching myself Python last year when they told me the course at my school was cancelled since only 5 people enrolled. I was incredibly disappointed. I wanted to learn programming because I love computers (of course), but also because I had very few things I attempted to master of my own volition. I felt that much of what I did was fragmented, satisfying an external pressures to succeed in all my academic subjects, nothing I could call a passion. It was a smack in the face when my school wouldn't support my desire to connect with something meaningful.

Fortunately, I picked a hobby that really accommodates self-learning and did as much coding as I could on top of school. Now I'm picking up web programming, looking into using Django and building my own site. What programming really brought to me was a new sense of mastery that originated with personal interest and drive. I think this feeling is what the latter part of the blog started to get at. It overrides any insecurity against geniuses or whatever because you'll be too proud of putting in your own work and too proud of your progress to worry.


I'm really glad to see all the similar sentiments. I'm 26 now and I didn't start programming until I was 18 as well. It took me another year or two to change my to computer science.

I still feel a bit like I missed out in college because it seemed like everyone else around me had been programming since they were 12 (or younger) and things just moved at a faster pace than almost any other part of academia.


Like most things in life, It doesn't matter when you start, more that you start at some point and spend time and effort in getting better.


I started early (like 8 or 10), but the velocity of my learning curve was very low back then. That's the point I want to make (apart from the you-are-never-too-late point others have made already): at 18, your learning skills are so much better that you'll catch up quite well.

The above is the general case, I think, for learning to code. If you're good at chess, sports, whatever, and you're lucky, you'll get help that works as an 'external learning curve velocity enhancer'. The same thing would account for young programmers with proper guidance, but the matter of fact is: most of us didn't have that (I even didn't have internet, I had to get books from the library and cherished a floppy disk containing a plethora of technical game programming articles).

I also see this in a different field I'm active in, as a volunteer at the local life saving / swimming club. Those that start at 6 take like 8-10 years to learn most of the material. Those that come in at 16 or 18 can catch up in a year or two, whilst well motivated.


This is a great inspiring article. However, I take issue with this bit:

"I’m 18 years old. I started to really buckle down and learn programming 2 months ago. I feel I missed a huge opportunity because I didn’t start learning earlier in life. I was raised in a city that is far from all the start-up hype. None of my peers are even remotely interested in web-developing. And it’s not because I’ve been hanging with the wrong group either."

The presumption here is that the 12 year-olds who did learn web development were either new a startup hub city, or had friends who were also interested.

Speaking in my case, that wasn't true. I started learning an actual programming language at 13 with Visual Basic as a freshman in High School. In Connecticut. But before that it was HTML and CSS. The barrier for actually learning web development is incredibly low; just view:source.

My point is, there's nothing stopping any 12 year old from learning the languages of the web; not time, not location, not friends. Only interest.


I started when I was about 16; so not really that far ahead, only 2 years before this guy did and I'd considering myself pretty knowledgeable in a lot of things and in-fact have often come up with solutions some complex and some simple to problems developers who have been programming longer than me failed to solve in a shorter period of time.

Much like anything the longer you've been doing it, the better you get. When you're a programmer it's possible to have been doing it for a long time but fail to stay up-to-date on various techniques and languages that could save time. I've seen many a developer considered to be way above senior struggle to adapt, so I am a firm believer for some people the very fact you've been programming for 20 years longer than someone else is irrelevant in this changing landscape.

Give it a couple of years and you'll most likely know things more knowledgeable developers don't know or vice-versa. Just keep at it.


I programmed for many years, but didn't really "get it" - It wasn't until I was 30 that I actually felt like a programmer.


Yes. In early twenties programming was just a part of job. Never did/thought anything about it after the office. But gradually it started feeling like that you've a super power without being aware of it. I think a lot of it has to do with the awareness of the 'community' - there are others like you feeling the same ecstasies and going through same problems. You can see passion getting transferred. SO and HN facilitated a lot in developing this sense in me.


I'm 17 and started seriously only a year ago. Although I agree that starting at 18 is not a death knell, I think it is a serious inhibitor to success. The later you start programming, the more you postpone your career. I look around at some people who are of the same age who have been programming for significantly longer, and are making an order of magnitude more money. More time programming means more experience which means better jobs earlier in your career.

As for passion, sure, if you care about something, you can start at any age. But no matter when you start, you have to work your way up through internships and freelance work before you can create any semblance of a career. All of this takes time, and the sooner you get it out of the way, the more time you have to actually program for a living. Starting earlier gives you a significantly better shot at becoming successful.


It's never too late to start, especially today when the barrier to entry is so low (austenallred mentioned Codecademy, I also recommend Treehouse: http://teamtreehouse.com/). The important thing is that you're making the effort, and I applaud you for it.


I'm sure those are great resources. I just think those are kind of gimmicky for the beginner. I don't think the real "barrier to entry" has changed much in a long time. Sure, maybe the barrier to whip something out and possibly get an entry level job where you know very little may or may not be a little lower (but then we can get market saturation of that). I think studying the traditional fundamentals is the best way to have strong last career. But I'm crazy. :)


You’re absolutely right, mate. In fact I am (was?) in a very similar situation. I’ve been (relatively) in the tech world for quite some time, but only really began going at programming about a year and a half ago.

Last week I landed my first real software development position, one of many I was accepted for, all really awesome startups.

I also have friends who have been programming game engines for six years and are working at Pop-Eyes. Confidence is the largest hurdle to overcome, in my opinion. One day it just suddenly clicked for me, that I actually COULD do this professionally instead of just working on hobby side projects.

As long as you have passion and confidence, you’ll be fine ^^.

Of course I realize there are still mountains of experience I need and so many devs out there- just don't get stuck in that mentality. Use it to power your thirst for more, and not waddle behind.


I'm a current senior in college; I switched my major this time last year (after an internship at an ad agency made me realize a few things about my passions.)

I'm finishing up the last week of my dream internship at Big Tech, and the swatches of people are incredible. I've met people who were literally programming in middle school (and can't handle dealing with HashMaps) and people who graduated with a PhD in linguistics with no formal CS education (who are much, much, much more talented programmers than I think I'll ever be.)

I think I've learned most that programming is a meritocracy. If you try hard -- and really throw yourself at the mercy of the command line -- you'll do great. You are the only thing keeping you from your own success; it's incredibly frightening, but also the best feeling in the world.


The theory goes that in order to get good at something (anything), you need to put in about 10000 hours (5 years of full-time work).

I would venture to add that probably, age has some influence in that the age edges (very young/old) are less effective towards that goal than your prime work age, simply because when you're young, you likely lack guidance and foundation/education and when you're old, you learn more slowly.

Still, 5 years is not all that much. 5 years can easily be done in university and at your first job. Crucially, this is where a mentor can really make a difference, which is usually unavailable earlier.

Hence, I agree that starting at 18 is not a problem. I myself did not start earliear either. But you will have to put in your 10000 hours one way or another.


It is ~10,000 hours of concentrated practice[1] to gain a mastery of a field. It is not just 10,000 hours of doing something (over and over). That is the rub, you can code for years and years and years and gain nothing from it unless you are constantly challenging yourself and trying to up your skill level, surrounding yourself with people that can teach/challenge you and always striving to get better (i.e. never telling yourself you are awesome/great as it can seriously damper your drive to 'keep going' and cause you to think you are 'already there').

[1] http://www.psy.fsu.edu/faculty/ericsson/ericsson.exp.perf.ht...


Very true, the only projects I've genuinely learned from were the ones that I didn't have a clue how to solve at the beginning.


True, thank you for the correction.


I am also 18 and I am just starting now. I had to test drive a few different languages until I found what I am really passionate about (developing iOS apps). I am still in the VERY early stages but I know that with A LOT of hard work, determination, and time I will succeed. Currently, I am pushing to get my own Mac (will hopefully happen within the next few days actually). I have a nice PC, but it doesn't suit my needs as an aspiring iOS developer, so I am doing my best to trade my PC for a Mac.

Anyway, this article is exactly how I feel. I could have started much earlier and I probably would have been much more advanced than I am now. The fact is, I wasn't passionate back then, and now I am.


I started learning when I was 30. It's now one year later. I don't feel its too late at all.


I know how you feel, I started when I was fourteen and even I felt like I was behind. It kind of sucks that so much attention is given to those people who happened to discover programming at a younger age. They'll make some little app using Lua or game maker or something and the <a href="http://www.appolicious.com/tech/articles/4829-young-game-dev... will be all over them.</a> It's almost like developer's above the age of sixteen don't exist unless you invent the next Facebook or Digg.


It's good to know there are others out there (though I'm even later in the game - I'm 22.)

I don't know what it was - I was always surrounded by the Internet and always fascinated by the Internet, but I never breached that gap. I guess my attention span was too short.

But honestly it's a lot easier to learn now. You don't have to go read tons of stuff to get started, with the likes of Codecademy you can start programming immediately and learn by doing with a little bit of structure. That's been all the difference for me.

Best of luck to the OP.


18 is not late. You are about the right age to get started. Its great if you have started earlier. Programming is about constant learning. Its not doing something repetitive. Keep in mind, it takes about 10,000 hours of programming to get proficient in it. At 8 hours a day it is 5 years of effort. But, in reality it may take 10 years to reach the 10,000 hours of learning. Join a startup or a good school, where you can meet awesome peers. With great peers you learn faster.


Great article and very much true! I did begin learning how to program when I was 12, but after about six or seven attempts over the years, decided it wasn't for me. I just couldn't stick with it.

Now as an eighteen year-old, programming is what I do for a living, and I love it! Instead of working at restaurants for ten dollars an hour like my friends, I make thirty-six an hour with just under a year of experience.

I love my job.


in my experience people who go on about how they were programming in the womb are usually lying and/or not very good at it.


I'm 19 and I started learning at 14 and even I feel like I wish I started earlier. Even now, I'm not the best out there. My biggest problem is making developer friends. Being self taught and living in London where everyone just wants to party all the time is a little bit difficult for me.


London has plenty of events for developers, you just get out and find them.


My unsolicited advice is focus on coding. I wasted my youth trying to configure Linux drivers and wasting time on all sorts of configuration type nonsense. Linux is better now, but I'm there's plenty of similar things to waste time on and not actually code.


Good luck on your journey, Mr Tran. Personally, I didn't start really learning to program until a couple of years back; I'm 25 now. I've managed to transition to a dev role within my company shortly after and I'm earning quite a reasonable salary.


18 isn't even late, not that the age at which you starts matters ;-)

programming is just a way of expressing a sort of creativity, nothing less, nothing more. if you don't start piano, painting, whatever, at 12, you think you're useless?

That's a pretty terrible mindset ;)


I've started programming at 12. But rest assured; the moment of - wow, this is really cool, (why?) I've never seen this before seems to hunt me many years after my initial contact.



i can summarize this as blablablabla. frankly i don't care.

i had people studying computer science in the university that had never seen a computer from the inside. do i like it? no. does it matter? no.

i'll crosspost from another hackernews thread:

“Nothing is withheld from us what we have conceived to do.”

the real question is do we have to blog about everytime we decide to go the toilet? well, i don't think. but people obviously disagree. hence the twitter popularity


I didn't learn to program when I was 12. I learned to program when I was 8.


I am one of those who started with building a computer from scratch when I was 12ish. By the time I was 18, I thought that I was way behind and needed to learn marketing, business, finance, etc, if I wanted to do startups.

Here's the perspective at more than twice your age: Success isn't going to be determined by when you started learning something, but by whether you learned it once you realized you needed it.

There is no school in the country that is going to teach a course in your business, because every business is different.

Success comes to those who work hard and improve and will teach themselves whatever they need to learn.

If your interest in entrepreneurship means a string of 120 failed lemonade stands, then you're already well ahead of nearly every biz school graduate in the country.

If it has meant sitting on your butt wishing you were rich since you were 12, then nothings going to happen until you change.

Learn programming- its valuable. More valuable is learning to teach yourself what you need to do what you want to do.

That's the key to success.


Start by learning how to modify the default Wordpress theme for your blog.


Will be on it, just wanted to post right out the gate of making the blog. I guess you can say I'm training myself to not be embarrassed of looks for the MVP if I ever have a startup.


Looks (user experience) are very important. Apple didn't get to twice the size of Microsoft with shitty looks.


what does that have to do with programming may I ask?


That's how you learn programming. I started off editing HTML I copied and pasted from someone and just changing some colors.


While thats where many people start, its worth noting that its really a markup language that lacks core programming concepts (if statements, loops, etc...) Not that it isn't helpful!

And as a relatively amusing anecdote, I started teaching myself HTML when I was 8 or 9, when my family had gotten our first Windows PC. I had no idea what copy/paste was, yet somehow I knew how to view source and ended up handwriting out HTML and then retyping it into Geocities (yep. Geocities). Thats one way to never forget it ;)


Yeah, same here. It was super easy to do in the 90s too. Prodigy homepage builder and I just went from there. Good times.


Why is this good advice? It isn't the only way to learn programming, so why is it better than others?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: