I'm curious here: would HNers please share their stories or knowledge of people who are good programmers, and who started 'late' in their lives? (Say - 18 and older, as an arbitrary metric).
Of course, what a good programmer means would probably vary from person to person - I'd appreciate it if you mention in passing what you mean by it.
I didn't do any programming until my senior year of high school, in a terrible intro to C++ class. I learned very little; I produced some small programs that solved brain teasers, but I had very little understanding of what I was doing. I had almost no understanding of how the program worked, no concept of the abstractions I was using, and no understanding of how a computer system worked. I didn't truly start programming until my freshmen year of college. (And 11 years later, I actually taught a section of that college course.)
I consider myself a good programmer. I have an understanding of the whole system stack (processor, kernel, the kind of code the compiler produces to support the abstractions I use, and understanding of the semantics of the languages I use), and I can reason about and implement non-trivial systems with understandable solutions.
In the companies I have worked at, there were always a bunch of 45+ programmers who were quite good at it. Most of them seem to have started only in their early 20s. (Anecdotal of course)
I learned to use a computer at 18, when I started engineering at NCSU. I started programming at 19-20. I knew nothing, other than I loved it. Haven't looked back since. That was 18 years ago.
I was a core contributor to Lotus Notes and Domino, MySQL and I am the creator of CouchDB and well respected as a programmer and architect and founder of start up that
s doing very well. I'm still learning and still love it. I plan to do this for another 20 years.
My current team is fairly old - most of us are in their 40s so most of us didn't have access to home computers when we were really little and programming wasn't taught in most schools.
I'd say all of them are good programmers by my definition but we're doing embedded development in C so there's not much going on with web stuff, databases, dynamically typed or functional languages.
I started programming with Arduino and Processing in my last year of college, then found out I could get paid to write awful PHP, decided I didn't like doing that, learned Ruby, and now write MVC JavaScript for a living. I've been out of college for 2 years.
That being said I do have vague recollections of MicroWorlds in fourth grade.
I was 19, my second semester in college, when I started programming. Incidentally, I've heard from at least 3 other successful women programmers that they started in college as well. (I'm defining "successful" as "speaks at conferences, generally well known and respected in their fields").
I was taught BASIC when I was around 8 and "helped" my dad with homework when he was in college for a CS degree, but I never did anything with it. I started taking CS courses as a continuing student at William and Mary in 2005 and found I really liked it and was, in fact good at it. My parents had told me that I would be great with computers for years, but I "knew better" and fought them until I wised up.
6 years later, and I've got my M.S., good work experience, job offers when I'm not even looking and enough difficult programs under my belt that I know I measure up well to the stack of people with my level of experience.
One of the best programmers I've ever worked with didn't start until a year or two after college; he had degrees in theology and philosophy, and was working as a graphic artist at the time.
Of course, what a good programmer means would probably vary from person to person - I'd appreciate it if you mention in passing what you mean by it.