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
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... :)
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.
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.
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.
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).
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 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...
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.
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.
When you die, your programming abilities have expired. So, I'm sorry to say, the answer to your question is YES!
If anyone can convince you that you are too old to do anything while you are still breathing, then it's YOU who is being programmed, and if that happens then you aren't going to be worth much for anything.
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]
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.
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.
Lucky for you 24 is the cutoff date from starting to learn programming. It has been scientifically proven that it is impossible to learn how to program past the age of 24.
Ok. I lie.
1. Select a language you would like to learn. Taking time to figure out which language to learn first shapes the way you will learn programming. Get advice from programmers. I would recommend one of three routes.
Route 1: (the low road) Learning languages like C/C++ or Java can be great for learning the base fundamentals. Then you can appreciate what fancy higher level languages do for you later.
Route 2: (the high road) Choose a language like Ruby or Python. These languages have a lot of magic and allow you to accomplish your goals in less lines of code. Higher level languages really make programming fun, IMHO.
Route 3: (the pretty road) If you are a visual learner, programming Flash's Action Script 3 or JavaScript would be a decent option. Learning Flash as a platform may be kind of distracting to accomplishing the goal of learning how to program, but it could be used as a visual way to learn programming.
2. Think of a project that will be fun. Don't set your sites too high.
3. Read a book or two first just to get some of the basics down. Don't get hung up with the drudgery of some of the contrived examples. Take what you learn as you learn it, and try to apply it to your project when possible.
(Personal Bias Alert! For your own sake, avoid PHP unless you want to learn some really bad habits. Also I would urge you to select an open source technology. Open source communities generally are more willing to help you learn from my past experience.)
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.
Is there an age limit to thinking? An age limit to "living"? Seriously, there is no age limit to anything. I'm 23 years old with no formal training in Comp Sci and I'm teaching myself Scheme as we speak (The Little Schemer is a great book!).
If you want to climb Mt. Everest and you're 70 years old, what is holding you back? Health? Get healthy. Doctor saying no? Screw em' (I'd rather die on top of Mt. Everest than sick in a bed).
Stop asking for permission from those around you and go f'ing do it if you want to. Stop caring about what other people think, stop being insecure in your "not knowing" and you will achieve whatever it is you want.
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.
My obsession with programming started when I was 14 (I'm 46 now) and it's still going strong. I've noticed that it takes me longer to code stuff than when I was in my 20's & 30's but the quality of my code has improved dramatically over that time and as a result, I spend a lot less time debugging than I used to. I think that as long as you can look back at your old code and realize just how bad it was, then you're still learning and there's hope for you.
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.
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 was recently listening to one of the podcast of Ruby on Rails creator, DHH and he said, he started programming in the early 20's and he has certainly made a small dent in the universe.
I understand that, we are surrounded by successful stories of Programmers or Entrepreneurs who started programming at an early age but that shouldn't stop you from learning Programming. "It's better late than never".
Some variation of this question comes up every couple of months. It's unfortunate that somehow many people get the message that they are not among the 'select' group of people who can learn new things. Especially since this belief often becomes a self-fulfilling prophecy.
I feel sympathy for people, of whatever age, who seem to need reassurance that, yes, they really are capable of learning.
I started with programming when I was 27. I've been a power user of computers for a long time, but it was first when I took some university courses in programming and found Perl that I finally found a programming langueage that fit me. What drove me to programming was that I was making all these .html documents and it was a PITA to update them all.
I taught myself around age 25. I learned Perl and Java, and had a position within about 6-8 months. I was fortunate to have some connections in the industry, and found what was basically an apprenticeship under a programmer who was brilliant, and also self-taught.
As another commenter pointed out, curiosity is a critical part of being self-taught.
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".
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.
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.
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.
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.
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.
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.
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.
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.
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?
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.