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.
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 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.
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.
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.
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 ;)
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. :)
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.
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
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.
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.
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'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.
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.
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'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.
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?
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 byfar 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.
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').
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 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'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.
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.
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.
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.
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.
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.
84 comments
[ 3.5 ms ] story [ 157 ms ] threadI 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.
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.
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.
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 ;)
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 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.
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.
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.
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.
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.
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.
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 ;)
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.
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.
[1] http://www.psy.fsu.edu/faculty/ericsson/ericsson.exp.perf.ht...
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.
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'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.
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 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.
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 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.
Reading about all the 18- or 19-year-olds forming million-dollar startups really does make me feel like an underachiever sometimes.