Is there any age limit to being a programmer ?

26 points by mun411 ↗ HN
I am about to turn 24 next month, although I do have a keen interest in Technology but never have taken up programming. My question, is there any age limit to really getting to learn how to program ? please share your experience on how long did it take you to learn to program

57 comments

[ 4.9 ms ] story [ 95.3 ms ] thread
One of the best programmers I know (my tutor in a sense) is 57 and started programming in his late 30's after buying out of the Air force.

So: no :)

Sorry for the aside, but how does one "buy out" of the Air force?
This is in the uk: in the RAF you obviously sign up fir at least X years. But at a certain point you can buy out you remaining years. I'd have to ask how it works.
I began to learn programming when I was 11, now I'm almost 22. As for the answer, in my opinion, it's never late to learn anything. Like Nike's motto goes, Just do it.
Absolutely not, and 24 is young.

When you're 22, it's intimidating to compete with the people who have been on a career path since high school (e.g. the kid who knew he wanted to be an investment banker when he was 13, and has been reading the WSJ since 1997). It creates the illusion that the only way to succeed is to have been planning for it since you were in grade school. What you learn later on is that pretty much everyone interesting will change career tracks at least once in his or her life, and have to start over. It's not so bad, because a lot of the skills you've learned previously transfer over.

Advice: pick up a language (I'd choose Clojure, but HN would have some good advice here) and start writing code. It doesn't matter if it's useful; just become comfortable with the process. Find a job where you'll be able to learn from a mentor more experienced than you are.

If you think you might enjoy it then do it. I started at 33 and it was one of the best decisions of my life. As for how long, think in terms of hours. If you want to get up to speed quickly, then put in a lot of hours to it. When I started I worked 120 hours a week to get up to speed. I enjoyed it enough that it didn't feel like I was killing myself. YMMV.
I started to be serious about learning to program at 26. Then, I was in an entry-level position where I learned how to write spreadsheet macros on my own, with just the spreadsheet documentation as my guide. I also had a problem I needed to solve so my self-training was directed by what I needed to accomplish. That's often the best way to learn how to program: take a problem you want to solve and develop a solution with whatever tools you have available. When you have completed your first programming task, you will find that you have built foundation for you to tackle your next task, which may be even more complex than the first one you solved. Today there is an overwhelming amount of tools and information available for learning how to program on the Web.

Now I am 46 and have been building applications for almost 20 years and the learning doesn't stop. Even experienced programmers continually learn how to program as they pick up on new techniques, new programming languages, and new best practices. Good luck with your efforts.

The programming profession is young enough that not a great many of them have made it in to their sixties yet, but those that I know about and that did are going strong. Maybe a bit more cautious, maybe not quite as fast as before, but the quality is definitely still there.

I'm 45 and I find that I can't quite remember everything as easily as I used to, but I guess that is expected. I plan to keep on coding until my body fails me in a way that makes it impossible.

Just like I would assume a musician would always want to make music, even when older.

"I plan to keep on coding until my body fails me in a way that makes it impossible."

What is great about programming is that, as technologies progress, the odds that you will be able to keep programming until you just die keep getting better all the time.

If you want to be a good programmer, you probably need to reformulate your question. You never "learn to program" and then just kick back and rest on your laurels. If you do, technology will soon overtake you. Good programmers are always learning.

So a better question is: am I interested enough in technology to continuously spend some quality time of my life keeping up with how people are making computers do stuff?

I think if you're interested (and able to find some way to consume technical material that works for you) that age doesn't matter in the least. But you've got to have enough passion to plow through boring stuff at times so that you can do cool stuff later on. And to really be good, you have to be able to rinse and repeat.

You never "learn to program" and then just kick back and rest on your laurels. If you do, technology will soon overtake you. Good programmers are always learning.

Exactly. Programming is like being a doctor or a lawyer where the right term in those fields is to say you "practice (law|medicine)." We programmers should really get together and adopt that terminology.

While true I think it's important to really know a technology before moving on. You can do fine only learning one new and popular stack (language, popular frameworks / API's, debugger, etc) every ten years. Now days, if you really know, Java, Ruby, Python, or C#. Net it's not hard to get a decent job, but there is little need to know all of them.

The trailing edge of the programming wold moves slowly so you have a few years to move onto the next trend before you become obsolete. Often you will make less money during those transition periods, but it's still worth.

PS: I only point this out because compared to the average American you can make a great living programming as a 9-5 job. You can step above that, but it's not required.

I wonder how many programmers really know about lisp and other "old technologies". Perhaps, programmers not only need to stay on the cutting edge but also learn the "old way"?
A thing that, I think, is often overlooked is that when you start at something like this at a very young age you can miss important lessons. I don't have a concrete example, exactly, but I literally cannot remember starting to program - I just always have. The upside of that is that a ton of stuff is deeply internalized in me that I know newbies have a hard time "getting" at first. The downside, though, is probably the first 10 or 12 years of my programming life I spent doing things in weird ways with bad abstractions because I had no one to show me otherwise. (And at first I may have been too young to even grasp some abstractions anyway.) That can be a good learning experience because I learned a lot from "first principals" so-to-speak, but it also means that for many many years my programming skills were not well-directed and the process was extremely inefficient. By starting later in life you can avoid wasting so much time. It's not as hard to "catch up" to someone like me who has been doing it my whole life as you might expect. (Also, there's this neat thing called "The Internet" now... :)
I have a classmate that started his undergrad when he was 24 and were almost completely clueless when it came to programming, computers and nerd culture in general.

Two years in hes hacking on side projects during lectures, referencing xkcd in casual conversation and has found areas of interests where hes more knowlegable than anyone else in my program where some of us have been into these types of things for as long as we can remember.

I know it hasn't been easy for him as the learning curve is rather steep but it flattens out so just don't give up, try to work the problems and questions when you have to (stackoverflow.com and vark.com are great depending on the size and difficulty) and you'll pick things up pretty quickly and I don't think you're starting out quite as bad as he did.

I started programming when I was 11 or 12, so I'm not really sure I can give you a satisfactory answer to the last question. I also learn new things every day so I wouldn't say I'm done and I hope I never will be.

I started programming when I was 10, over a decade later I build software for a living and am still clueless about nerd culture. Being a dweeb is not required.
a curious mind will be a learning mind.
I think you can become a decent programmer quickly, especially now when there are so many good books, high-order languages and tutorials on the subject. To master programming (like everything else) takes a lot of effort thought (check out Peter Norvig's "Teach yourself programming in Ten years" [1]). But even if it takes 10 years you will only be 34 and have about ~25 work years left in you... 25 years, that's a long time.

So if you are really liking the idea of programming, start small and do a small project - - like creating a site for one of your hobbies. I can recommend checking out Dive Into Python[2] and Why's (Poigant) Guide to Ruby [3]. There are lots of great (and free) books on programming out there, so you don't really have to invest any money...

Good luck :)

[1] http://norvig.com/21-days.html

[2] http://www.diveintopython.org/

[3] http://mislav.uniqpath.com/poignant-guide/

Ooh, I love Why's (Poignant) Guide to Ruby so far. Thank you for recommending it!
Loads of people learned programming when they were older than 24. It's not a problem.
I've been programming since I was about 9, I'm now 39, and still learning. There's no end to learning, just new perspectives to see. I believe your starting environment can have a significant effect on your progress. If you pick something too obtuse and low level it may get hard to grasp some of the basic concepts you will need to master. These days I'd recommend JavaScript since you can start quickly in the broswer without having to learn an IDE. Also having the DOM to play with right away is fun, easy with obvious visual feedback that what you are doing is working (or not). I'd also start simply with the basic language, from scratch (without a library). Just learn the language and syntax. Get the O'Reilly JavaScript book make your dead simple index.html with inline JavaScript and see what you can do. Only once you get the basics, migrate to a framework (jQuery's a good choice). Oh, you'll want FireBug (or something similar too).
I'm 57. I started programming at 52. I was an electronic engineer and the most I ever did was assembly and some C. I own some fast food restaurants and my wife suggested we get online. Long story short, I couldn't spell "web developer" but now I are one.
Can you do a thread elsewhere about owning the restaurants? I'm fascinated by the food business.
This is how you end up with a small fortune in the food business: start with a big one!
In short... no. It's going to take dedication on your part, to get up to speed, but in months you should be able to code, and in months/years if you like, do this professionally. I think with many things in life, if you really enjoy something you'll excel at it regardless of preconceived "talent". Also, its best not to ask for permission to try something since some people will say no, just go with it and act like you don't know any better in terms of likelihood to succeed.
No, but just remember - when you're working for people younger than you, it's probably time to become an entrepreneur or director. Very rarely does "programming" offer a salary commensurate with the level of seniority older people actually have attained.

When you're middle aged and not paid what you're really worth, it borders on pathetic, not just merely sad.

42 year old programmer here. just wanted to say "fuck you". thanks.
Help yourself out. If you were paid what you're really worth, you wouldn't have any desire to say that. I'm sure there are programmers out there reading HN who make over 200 grand (or are wealthy from other means) who are not trying to say "fuck you" to me, because they are in the class of professionals who are actually paid what they're worth.

Don't shoot the messenger, my friend.

http://www.acooke.org/

Is this you? Wonder why you're based in Chile.... something to do with the cost of living, perhaps? Wage arbitrage means you don't disagree with me at all, in fact you seem to be in vehement concurrence.

(comment deleted)
I said people who are middle aged and not paid what they are worth are pathetic.

So what you're saying is that you work for less than you are worth.

Can I ask you why you feel the desire to go work at a job where you are paid LESS than you are worth? There are plenty of programming jobs available for smart people in the 200k+/year category, which is what a real professional in any other industry makes.

You are either fundamentally misunderstanding my message, or are a complete and utter tool.

I don't think programmers are really worth more as they age. Experience lets you add more value to a point (probably around 10 years), but lots of young programmers are equally if not more productive. Many are willfully ignorant of "business" concerns and make terrible managers.

It's not a scalable career for most people.

Making $200k+/yr is not especially hard in high cost of living markets, but it's also not a lot of money there. In New York, 22-year-old Analysts at Goldman make ~125k all-in and most live in crappy studio apartments.

the above reply was in response to what i read as a dismissive post about middle aged programmers in general.

it had nothing to do with my wage level. that is not something i have never cared about much, and the idea that the quote was "all about" wage seems somewhat odd to me.

maybe i misunderstood. i don't think so, but i would delete the post above and walk away if i could. i can't, so i am posting this qualification.

that's all from me on this thread.

That is false. There are many software developers who well over 100k/y. Of course, they are generally very experienced professionals who are in high demand.
(comment deleted)
There's nothing wrong with working for people younger than you. Plenty of my coworkers are fiftysomethings working for thirtysomethings, and nobody objects to the situation.

And salary should have more to do with productivity and skill than seniority. If anything, I think programming is a good field for getting paid what you're worth. New skills and languages come around so often, you can (and have to) compete with the next crop of "3 years experience in NewFangLang" programmers head to head. So I think it's easier in this field than in most others to appeal directly to the market.

Yeah, if you're older and just starting to learn, you won't be worth as much as someone else your age who's been doing it since high school. So what? Isn't that true with any career change?

No. Of course, I'm just 23 and I learned when I was 17ish, so maybe I have no relevant experience. However, the people who taught me learned in their 40s. Anyway, I expect to have to learn new things about new languages and new ways to program every few months for the rest of the forseeable future. So, no, there is no age limit, and if there were... it wouldn't be 24... it would be much closer to 110.
I started programming when I was 21 (I had a bit in school, and some at work before that) but I really got started at 21. Am I as good as others that I interact with, especially those who started way before I did. My certain answer is No. But that only drives me to learn more and work harder.

I spend time reading about Algorithms and Lisp and SICP and what have you. I spend time reading a lot of open source code, and writing a lot (both at work and in my spare time). I engage in conversations with those who are way smarter and experienced than I (both in person, and online - BTW HN is a great resource) hoping to find that one nugget of information that I can use.

To answer your question - See if it really "takes" over you. See if you find a thrill in making a computer bend to your wishes. See if technology really "tickles" you. Programming is for the most part about figuring things out. And that involves figuring out why things don't work. Yes, there is that tingling excitement when what you wanted to happen happens, but a large part of programming is debugging and maintenance, reading documentation and exiting (and often pretty badly done) existing source code.

How long did it take for me to learn? I doubt I will ever be done. Programmers, at least the good ones are constantly learning. Books, blogs, online forums, in-person discussions and your own experiments.

I don't think there is an age limit to learning it, but my experience has been that for people like me, it's a struggle (YMMV). I know there are things I don't know, and discussions like those at HN are very humbling. I am constantly trying to "catch" up with those that have more experience, but that's not a bad thing. It keeps me on my toes.

My take on this - Dig in something that gets you going quickly. Someone suggested JavaScript, I would recommend something like Ruby or Clojure. Buy a book, fire up your text editor and start writing. You can soon upgrade to one of the classics like Structure and Interpretation of Computer Programs to a get a good foundation, and take it from there.

[Update - Sorry, I did not realize how long that was. My apologies if that comes across as a rant, it's not. I hope it helps]

If I could start playing the violin at 22, learning programming at 24 is not even a question!!!
How old are you now?
As others have pointed out, there is no age limit, and the learning never stops. But like anything else, you can take it as far as you want to go - just around the block or the rest of your life. Just start and see what happens. Even if you end up writing just the simplest "hello world" program and decide to never go any further, you will have learned something most people have no clue about and will at least begin to understand the potential of what is possible.
Here is my experience. I spent my 20s studying math. When I left grad school at 28 my first job was an introductory programming job. I previously had no interest in computers or programming. A year later I was able to get a much better programming job. Within 3 more years I had patches in the Perl core, a pretty good reputation on Perlmonks (a well-known programming forum), and was a decent programmer (though I had some pretty big gaps).

I am now 40 and am about to start a job at Google. I will always have a lot more to learn, but I'm pretty happy with how I've developed. So I think that 24 is not too late to start.

But you need to set reasonable expectations. You aren't going to start programming and in a month be the second coming of Ken Ritchie. If you take it seriously you should expect to see rapid improvement for several years. See http://norvig.com/21-days.html for more on that.

My father-in-law was a mechanical engineer and manager. Never worked with software until he retired at age 62. He then taught himself how to program and built a sophisticated GIS system as a semi-hobby, semi-part-time consulting.
I started to be serious about programming at 33. 6 months for me was enough to get started. Of course there is a difference between being able to program and being able to program well. The latter takes longer, potentially a lifetime depending on what you mean by "well".
It takes 10 years to master programming, but 24 is not too late at all. I know a lot of people that started in their twenties and now are good programmers.

My problem instead starts to be how much time I can continue to do programming for work. I'm 32, it seems fair to me to continue for another 10 years, but should I switch at some point? My dream is to turn myself into a teacher around 45 opening a programming school, but probably children can learn faster just by internet than with an old teacher ;)

I'd say it takes just a year of solid effort to get good at cranking out quality code on a platform. What takes years is learning how to quickly diagnose and attack bugs, develop instincts for what tools will be appropriate or suck, smell when a subsystem should just be scrapped and rewritten, etc.
My problem instead starts to be how much time I can continue to do programming for work.

I'd assume you can continue until you no longer find it interesting...