Hacker News new | past | comments | ask | show | jobs | submit login
Poll: How long have you been programming?
1007 points by michaelkscott on Apr 2, 2012 | hide | past | web | favorite | 316 comments
10+ years
3042 points
20+ years
1229 points
3-5 years
1091 points
7 years
992 points
30+ years
482 points
2 years
288 points
1 year
178 points
Less than 6 months
141 points
50+ years
8 points

I was looking for something and found an old green-bar print-out of an SPS program I wrote in 1971. This was at Gateway High School in Monroeville, Pa., the same school pg went to a few years later. I imagine they upgraded to a modern language like FORTRAN, COBOL, or PL/1 by the time pg rolled up his sleeves in that data center.

I was working in Monroeville, PA doing FORTRAN at Westinghouse. I didn't really consider that programming though. Got into Ruby, found that the web didnt regulate my every move. Quit my job to learn full time and haven't looked back.

Wow, I used to live in Birnam Wood, the apartment complex adjacent to Gateway High School. I didn't realize you or pg were from the area too. Living down in the city now though (Pittsburgh, for anyone else reading this).

Did it ever come to Dunsinane?

I went to Woodland Hills, graduated a few years ago. Spontaneously decided to click on the comments and was surprised to see this.

I started with BASIC on Commodore 16 (http://en.wikipedia.org/wiki/Commodore_16) and shortly after MOS 6502 assembler back in the mid 80s when I was in my early teens. Commodore 16 had a monitor program build in, all you had to do is type MONITOR and you were able to edit memory directly in machine/assembler code, save it, run it etc (http://www.commodore16.com/php/images/books/downloads/Tedmon...).

Later, I got Commodore 64, then 128, then Amiga 500 (http://en.wikipedia.org/wiki/Amiga_500) which was such a joy to program. This is where I got my first exposure to C programming (Aztec C http://en.wikipedia.org/wiki/Aztec_C) and VIM. VIM was in fact first developed for Amiga where it was known as VI iMitation (hece VIM), and later back ported to UNIX. In the 90s went to university to study math and computer science and that's where I got introduced to "big iron" UNIX (HPUX). In late 90s I did some Windows C++ development, but I now program for all kinds of platforms from Solaris, to AIX to HPUX to Linux to Windows and Mac OS X and in dozens of languages. We even make our own VI, awk compiler, Perl interpreter, std C lib for all kinds of platforms, POSIX APIs port to Windows and others, port of UNIX tools and shells to Windows and a multi million LOC ALM application suite.

But today's computing really can't be compared to the experience in the 80s, when you as a kid could master your CPU and know its complete instruction set, its registers and important memory locations and feel completely in control. I shudder when I see where general computing is headed with kids dreaming of owning iPads.

> But today's computing really can't be compared to the experience in the 80s, when you as a kid >could master your CPU and know its complete instruction set, its registers and important >memory locations and feel completely in control. I shudder when I see where general computing >is headed with kids dreaming of owning iPads.

I wish too that computers were like they were in the 80's. Growing up now, I remember when to me the System Preferences on a Mac were a place that you didn't go or else you might mess up the computer. Still, with programming knowledge and all, I always get a little bit frightened when I'm about to do something the tiniest bit dangerous that might it so my computer won't turn on, like using `dd` even though I checked the name of the disk I was trying to write at least ten times. I blame it on my generation and the "magic" about computers today that some other HNers mentioned.

I learned roughly the same way, except in my case it was a TRS-80 color computer, 6809 assembly, and Forth. I was absolutely fascinated with data compression back then.

The CS classes at Uni seemed really boring, so I went into mathematics instead.

I remember the Commodore 16, especially their TV ad that used Ringo Starr's "You're 16" theme. It seemed like a weird move since they already had the C64...

I also went the Commodore route. I still remember when I got my A501, giving me a whopping 1MB of ram!

I used Lattice C, and GCC to a lesser extent. Later, after finding out how hard it was to get ahold of the 3000/UX version of UNIX, I installed NetBSD on my regular A3000. Fun times...

I liked the M68k series so much I eventually wrote an emulator for it, which is used in MAME to this day.

I started out in 2001. Back then I was working for some company as a graphics designer -- I had been there for about 1 year (fresh out of school) -- building the layouts for their countless websites. Back then the whole internet industry was about to collapse and I could see the proverbial axe dangling over me come the end of my year contract.

A coworker of mine was responsible for the programming. Mostly perl and php. I had never touched a line of code. Not even HTML. I was doing everything a-la WYSIWYG. The mere thought of having to write code made me cringe but it was obvious that I had to adapt if I wanted to keep receiving pay checks. So I set out to teach myself everything I could about programming in the boss' time.

I scoured the internet and read every bit I could find. I started out with BlitzBasic[1] and C# (It was in beta back then). To my complete astonishment, I actually /really/ loved every bit of it. Since then I quit my job and went home to become a halfway decent programmer. I was adamant that this would be my new career path. And I succeeded!

Around 2008/2009, C# was into its 3rd iteration if memory serves. I had left Blitzbasic behind a long time ago. I was still enjoying every minute I could spend typing code. However, C# had some traits that really started to rub me the wrong way. The 'everything is an object' OOP mentality, coupled with the pretentious and obtuse habit of corporations to not give a shit about skills unless you can recite all design patterns by heart, really made me lose faith in the whole programming thing.

Fortunately, that's when Go[2] came into view and it allowed me to fall in love with programming all over again. I've never looked back to C# since that day. In the meantime, I've also picked up C, Scheme, Forth, Factor and a host of other languages I love working with.

I am very much a D.S.L. kind of guy but Go is definitely my primary go-to guy for most stuff.

[1]: http://www.blitzbasic.com

[2]: http://golang.org

I was a business major and just found this great site and started teaching myself programming a year ago. I started with Python...the question that always nags me is that,in what situations (in programming) would this deficiency become a problem?

The fundamentals of programming are the algorithms & data structures. If you know these and you are able to implement them in a (compilable) programming language, you can call yourself a programmer.But this is just the beginning. In order to have no problems in one field of programming, you must know well the algorithms&data structs used in that field(web programming is very different from 3D engines programming or embedded devices programming or signal processing and so on). If you know web programming using python, you are perfect for jobs in that area but everything else will be a "problem" until you acquire more knowledge. So welcome to the club of perpetual learning.

I think it's also important to be able to look at your habits and the habits of others and create something that is the right trade-off between being abstracted/concise/readable/writeable/efficient/elegant.

You didn't mention your career path after you quit your design job to develop your programming skills. I'm curious how you landed your first job without a piece of paper and do you use go in your day job?

I spent 2.5 years at home learning. To eat , I took part-time temp jobs. Anything that would keep me at home most of the time, while still enabling me to pay the bills. After that I got a job as a C# developer for a company.

Without any working experience (as a programmer) or paperwork, I knew this was going to be difficult. It turns out that some companies value enthusiasm and the ability to demonstrate you can and will learn fast, as more important. I had both of these on my side, so I got the job.

I did not have a Github profile at the time, but I made sure I showed them a CD with my most notable homebrew work. I would advise a Github profile instead though. Just put everything on there that you feel might be worth it. Even if it doesn't really have any use. It's about the way you write code and go about solving problems that is interesting to the interviewers.

I think the first time I tried programming was when I was simply looking at QBasic code, astonished how Nibbles and Gorillas work and thought, "these characters I see on the screen before running the game are what make the game function? If so, how?" This was on my father's 486/33 I believe, although I barely remember his 386 which could have been what it was on. Regardless, I was probably 5 or 6 and I tried messing with those characters on the screen to modify the game. Later my parents bought me one of those kid laptops with a little 6 inch x 3 inch screen that you could get from Toys 'R Us and I found out it had a programming option where you can type in QBasic code...I found some code in a math book we had at home, and typed away. After I got the one from the book working, I modified them to see what my changes would do.

Ha! Wow, this is pretty much exactly how I started. Playing with the numbers in Gorillas to make the Banana blast radius much larger.

The holy grail was to create a "homing banana", but my 10 year old brain couldn't work out the math.

Nibbles and Gorillas was the first piece of code that I saw and was amazed how it worked. It taught me why we need to use functions and subs. And as a 13 year old it was fascinating to understand those concepts.

And most of the programming I learnt was from the snippets of code in the QBasic help files.

At my highschool - the progression was Basic on Apple IIe machines and then Pascal. I remember talking to an older friend who was already doing Pascal and he said, "There are no line numbers." I was stunned. "What?! How can you write a program without line numbers?"

Yup, the first lump of non-line-numbered BASIC I'd ever seen. I learned on the Spectrum 48K and when I switched to PCs I kept all of the limitations with me until I read those two.

Oh those nights! Waiting 15 minutes for a program to load from a tape recorder just to find out that tape is damaged at the end ;-)

QB was one of the earlier languages I played around with, too, actually, and only ten years ago. I think it was an excellent environment for learning to program. It was simple, with many built-in functions for graphics and audio—everything a growing game programmer needs. It also had a pretty good editor, with documentation and examples only a right-click away. The now-defunct QB4All community was also very friendly and helpful.

Furthermore, I’d say that having an underpowered but batteries-included language helps focus you on the goal of making a thing, rather than the process. It also encourages hacking, to circumvent the language’s restrictions. Could you ask for better?

Not just here to say I've had a similar experience: how are the kids of today going to be amazed when top-notch graphics are in all devices?

I also started with QBasic, Nibbles and Gorillas. I then moved on to writing my own implementation of Hangman. Oh the memories!

After graduating from electrical engineering, I figured out that if I wanted to go into electronics, I would need to spend a lot of money on equipment just so I could practice at home, but I was broke. However, my computer at the time was pretty top notch (486DX 50MHz, 16 MB RAM). I felt that my computer was probably the same caliber as the ones that real programmers were using, so it made more sense to learn how to program.

I basically had no real experience programming until I graduated. I took 2 programming courses in undergrad, one being an assembly language course, and I did a summer internship where I did some Matlab scripting to print out graphs. My 4th year project was using a DSP chip to write an FFT in assembly. So while unemployed I taught myself C++ programming, as well as IT administration and networking. My first job was as an IT guy, but I spent every night after work programming, writing utilities and digital audio filtering utilities using FFTs. Within 2 years, I got a job programming after lying on my interview about my previous job experience and I've been programming ever since.

I find it pretty funny that _after_ you graduated (and according to the hardware you had at the time) you decided to completely change careers :)

I did pretty much the same thing, graduated with a masters in mechanical engineering. Taught myself to code and switched careers. Lots of cross over skill. (and engineering is very boring...) :-)

I did the same thing (ComputerEng, but more of a EE focus), mainly because there wasn't a job market that was interested in me when I graduated. I suspect this is more common with engineering grads than most others.  The barrier to entry for programming is much lower than that for engineering, which requires taking the FE, getting licensed, apprenticeships (in some locales), getting relicensed, and still no guarantee of a job. Knowing that, and needing a real job after years of no interest in "my field," I took the meager programming skills I'd been mostly ignoring since the 80s and made a go of it.

This was also a motivating factor for me. Where I went to school, there wasn't really a lot of hardware jobs, but if I switched to software I could go work at a bank. After about 4 years I packed everything up and moved to Silicon Valley, just in time for the dot com bust :)

You are my kind of guys ! Why aren't there more guys like you in my team ?? I just love patronizing young enthusiastic programmers who just jumped careers and are now feeling insecure and scared of all the things that they might not know. Oh how I love to tell you that "It's more complicated than that" every time you feel like you nailed it. Yes, i'm such a douche, but for you I'm the "team leader".

Heh. :) I had a bit more CompSci than most that make the programming jump, from AP CompSci in high school to roughly two years worth of it to complete my CompEng degree (and a few "electives" such as compiler construction and a low-level intro to AI course). But there were still lots of things that I missed (OO and all the related trappings were completely missing from my schoolwork. STL barely existed.), but most of those had no benefit to what I was doing then. (Just as assembly and being able to design a chip from the sand up has little benefit to what I'm doing now.)

"Team Leaders" are fun to lead into blind alleys and ambush with little known facts and tricks, too. ;)

My first code was written on a TRS-80 at my jr. highschool. The first work I did that had a wider audience was done at Sears on a Tandy Color Computer it went something like this:

10 Print "Sears Sucks"

20 GOTO 10

The first computer my family owned was a Commodore Vic-20 and I typed in plenty of proggies out of magazines. They were stored on cassette tapes and we bought a modem - then a phone because we needed to be able to disconnect the hand piece once we'd connected to a bbs and plug the cord into the modem. All our phones were slimline and disconnecting those dropped the call.

The 80s were a really fun time to be a geek.

I think I tried programming initially when I went with my father to a course in BASIC at his workplace. After that we hauled a 300 baud matrix printer-like terminal home, equipped with a couple of sucktion cups for attaching the phone's handset, and a roll of paper.

I distinctly remember that putting the handset in the sucktion cups quickly enough after dialing the number on the rotary phone was hard.

The first real programs was probably later when I bought my Commodore 64 - in 1984. Later I even got a Comal-80 cartridge. Much nicer than the builtin BASIC!

Here is a bar chart of the poll:

· http://koldfront.dk/misc/hn/programming/data.png

(Updated hourly currently.)

Started at age 7 on a C64. I learned binary before I could multiply because you needed to understand binary to create multi-colored sprites on the C64. I made a game where you drove a car and avoided things, then another where you drove a spaceship and avoided things, then another where you shot arrows at moving targets. That last game was the first one I wrote where the goal was to hit things, a major departure for me. Those were the days.

Despite the advances in tech, kids today who want to learn to program have it much harder.

I started a 15 year old girl programming yesterday with Processing because she showed an interest in conceptual art for games. I showed her some examples, she downloaded and installed the application on her own as I watched and started entering the tutorial text (not copy/paste either as I might have resorted to). I guided her in what she'll need to get a grip on with her math classes etc, and I heard from her teacher she was still enthralled at the end of the day. I'm not sure how much easier that can get, I was impressed.

Just for curiosity: Did you also have a look at PyGame? If yes, how does it compare to Processing?

Processing is way way cleaner than PyGame. It is nice that people are creating interesting things in PyGame but I think more good would come about if it didn't exist so something better could flourish.

And I say this as a python programmer since 1998.

Why do people continually assume that kids don't have the intellectual capacity to solve problems? The hurdles are only as high as YOU think they are.

Kid wants to make a game, kid programs a game. What's so hard about that? The kid doesn't care about the "barrier to entry" any more than issues like platform, methodology, budget, competition, etc. None of those business decisions are part of their need to make the game.

I'd say the opposite - Kids can cut the crap and stay focused better than most PM's.

I sure thought I was smarter than all the adults when I was 15. I still have no idea if I was right or not.

> Despite the advances in tech, kids today who want to learn to program have it much harder.

Why is that?

The hypothesis is that the 'stack' is much taller. Back when all you needed was QBasic to "learn to code", "learning to code" meant reproducing other software you used on a daily basis.

Software is generally much more polished now, and it requires much more time and work to get it so polished (assuming it's at all complex).

I'm not saying I agree with this. But the situation is definitely different from 10 years ago by quite a bit.

I don't think that's true. NOTEPAD.EXE and Firefox is all you need to start with HTML and JavaScript, for example. Microsoft gives away Visual Studio for free download, there are all the open source languages (ActiveState does great distros for Windows) etc etc.

It's a cultural shift. Kids these days are consumers, not producers.

But they still need to find the information that there are such super simple options. Google "programming tutorial beginner" and the first thing is about C++. Ask in a forum and you will start a long discussion about which language to learn first. There is an incredible amount of information and tools that would allow to start very easy (and without having to pay anything for tools or books), but without somebody experienced it's difficult to sort that out.

OK, but if you wanted to program a VIC-20, you were literally POKEing 6502 opcodes as hex numbers into memory addresses - the development tool VICMON cost extra, and even then you still had to know the mnemonics. And people of my generation still did it. And kids today have everything handed to them on a plate, they just aren't interested.

Adoption has increased, but the web is also far more interesting than playing another text based adventure game. So, I think the percentage of total people has stayed about the same. It's only the percentage of people with access to a computer who learn to program that's changed. Because, the further back you go the fewer things there where to do with a computer other than learn to program.

Web access is pretty scary in that regard. Infinite novelty on tap can be a demotivator to create anything.

On the other hand, lots more people are creating videos (for youtube et al) than ever before.

Plus minecraft constructions. Lots of video games now let you create and share. My son is building automatic doors and creeper traps at the age when I was making sprite data by hand and making it move across the screen using basic

Right, but a kid who uses the web and wants to make their own web page, has basically zero barriers to overcome. All they need is the browser they already use, and Notepad. Sure hosting it somewhere is a bit more work, but trivial compared to distributing a program you wrote in the 80s, where you had to physically exchange cassettes or floppy disks with your friends in the school playground (!) or persuade a magazine to distribute your program as a listing or on the coverdisk.

yet there are a lot of concepts they need to digest before they jump into the html/js world. it already means they need to learn two languages (html and js), interaction between them , etc... I'm not even mentioning things like - open notepad, save the file, make sure you get the extension right, fire up the browser, click open (why not in address bar? oh yeah, you can, but tell a kid the file:///<blah> business and see if they remember it after 3-4 days of not doing it) and see what happens. of course it's just a reload away next time.

not as easy as qbasic.exe, then typing in some code in, then hitting 'run' and seeing what happens.

speaking from experience here, i have 8 and 10 yo, and tried this with both of them. my friend tried with his 9 yo. they seem to get the idea of assignments, loops etc, but it just doesn't excite them. can't generalise on a test sample of 3, so just my 2p.

I still maintain that

  - Start -> Run -> notepad
  - <html>Hello, World!</html>, Save As "hello.htm" on desktop
  - double-click it and watch it appear in a browser
Is 1% of 1% of the effort it took to program an 8-bit machine.

The difference is how easy it is to find the information about what to do.

Someone totally new won't know what notepad is, won't know what html is, and won't know how to make the browser show it, and the manual that came with his computer will say nothing about it.

You start a browser, there's no hint what to do. You start searching for "how to make a web page" and you get a bewildering array of information, some of which are totally over-engineered.

On the other hand hooked up a VIC-20 or C-64, opened the manual, and what stared you in the face in the first chapter was your first program.

I remember opening a browser, selecting the "View Source" option, and there was my first web page. I really started to learn how to program when a misconfigured web server spit out the source code to a web app that I enjoyed using.

I think the commonality between us here is that having access to the source itself provides the best learning environment.

Yeah, but the thing with that is, it fucking sucks.

What about 10 print "HELLO" 20 GOTO 10

Or something like that? If I wanted hello world on the screen I'd get a piece of damn paper. The beauty of quick basic was it got you into procedural code, where the computer does stuff. You can get someone going with Python relatively easily but not as easy as QBasic was on a Mac II in the school computer lab.

You can say there's been a cultural shift but every generation's been saying "kids these days", back to at least Socrates. I'd say that not having QBasic be one of 6 icons you can click is a bigger change, it's not the kids.

You may as well just open up notepad and type "Hello, world!", and leave it at that. HTML is not a programming language; if you want to program on the Web you do have to jump into JavaScript.

I would recommend not trying to teach for loops etc... Show them how to tie a function to an image to make it move across the screen as a building block to make a game and they will find it interesting. Maybe start with flash/actionscript so they can see (click image > write code for image > image does stuff)

unfortunately in the selection that I have of 8 (mine), 9 (not mine) and 10 (mine) none are bright enough to grasp the concept of a 'sprite' yet, i'm not even talking about relating code to that sprite. flash/actionscript? ho many steps are there between typing something and actually getting stuff appear on the screen? I've written 2-3 simple swf's, and it caused my head to spin... you think a kid could do it? on their own?...

friend of mine ('owner' of the 9yo), tried some sort of python environment which was supposed to do just that (i think it's this: http://rur-ple.sourceforge.net/en/rur.htm, but not sure), but failed - quite limited in what it does, or get way too complicated if you want to tweak something.

so the whole experiment was a flop really...

Hmm true, I always considered Flash/Actionscript to be dead simple (Drag image to the view => click on it and add code to make it do stuff) However maybe it's because I grew up loading 5.5inch floppys in a computer without a hard drive that only ran DOS. This is actually something I've been thinking about lately since my son is now 4 months old and I'm trying to figure out how I'm going to teach him this stuff, I grew up evolving with the technology so a terminal window does not feel foreign to me. How do you start from scratch in the age of iPads etc.. ?

I am pretty sure when I was 10, it was normal for a kid to know what a sprite was (indeed the finer points of what and how your computer did sprites was playground argument stuff). Most people had at least had an attempt at creating their own game or demo. Kids these days only want to use computers.

yes, precisely. they want to use it to create other things. drawing, writing, presentations - they find it interesting. programming? not so. why? i don't know. i tend to think it's the tools, or the complexity of it all. on the second though, i think they all got too used to the instant gratification, in other words, the more time it takes to get the result, the less interesting/inspiring it becomes. and it kind of brings us back to the first point - tools are too complicated... :)

If you wanted to program a VIC-20, you opened the manual, read the preface, which starts like this:

"You are about to meet friendly computer! Friendly in price, friendly in size, to use and learn on experience. Most important you don't have to be computer programmer, or even typist, to use it!

If you're first time computerist, this manual will provide an excellent introduction to computing. Unlike most instruction manuals, you don't have to read through this whole book to get to the "good stuff." After reading Chapter (GETTING STARTED), you can go directly to chapter that interests you and start reading. If you're interested in animation turn to Chapter 4. If you like music, try Chapter 5.

The first page of each chapter has sample program to start you off. Just type the program exactly as shown ("Try Typing This Program") and see what happens. The rest of the chapter explains what you did, and shows how to do more. Chapter summarizes some important programming concepts, and explains the techniques used in sample programs."

(The manual was the baby of Michael S. Tomczyk, who wanted to strongly focus on the "user friendly" aspect of the VIC, including for programming)

Then you'd turn to chapter one, and start typing in the first example program:

   1 PRINT "VIC20"
   2 GOTO 1
You then had an approximately 150 additional pages explaining how to use the machine that for the most part assumed that "use" meant "program" - only a tiny fraction of the manual dealt with non-programming related activities. My dad learnt BASIC from that manual, and I learnt BASIC from him and went on to improve my skills with nothing but the Commodore 64 manual when we upgraded. Commodore continued that tradition with the Amiga, up until AmigaOS 2.04 (which came with ARexx, but not AmigaBASIC) but pushed it far less on the Amiga than on its 8-bit machines.

That's a large part of the difference: If you bought most home computers back then, and _especially_ Commodore machines, you got programming showed in your face - User was equated with programmer. And though a lot of people learnt how to load games and didn't bother with programming, the threshold to actually finding something exciting in programming was far lower.

I'm not suggesting we go back to the days where people get a BASIC prompt on starting a machine, but surfacing scripting capabilities for automation more, for example, would make a big difference.

Consider even something as trivial as macro recording that displays what it records and give people an easy way of modifying it, instead of hiding it "behind the scenes".

A lot people are programmers today because the plumbing was out in plain view and some of us found it fascinating and started figuring out what it did. But today the plumbing tends to be hidden and people go "magic. got it."

User was equated with programmer

Exactly. That's what I mean by cultural shift.

Totally agree. You're describing how I started... for a kid wanting to write a web page over 10 years ago you were lucky to have access to lissaexplains.com & w3schools.com. Nowadays you've got stackoverflow, smashing mag network, nettuts etc - not to mention a whole shitload of resources offering free code / designs / icons, ready to roll stuff like wordpress, etc.

LissaExplains... Now there's a site I haven't heard of in a long time. Does anyone know what she's up to these days?

There's something inviting about turning on your computer and being greeted with a BASIC interpreter prompt, the cursor blinking at you expectantly.

I just turned 20 and I've been programming for 8 years. The biggest thing I learned is that Gates was wrong -- skill continues to increase well after your first 3 years.

Outside of that, programming has proven to be one of the most rewarding skills I've ever learned.

12 - "Learned" Java. Didn't understand any of the concepts;

13 - Learned C, Understood a lot more. Read 'Hacking, Art of Exploitation';

14 - "Learned" x86, Wrote first WEP cracking utility for Win32 (distributed as binary at least :) when FMS was new;

15 - Got down to brass tacks and learned deep x86. Wrote first non-trivial exploit for use-after-free condition in Adobe Reader;

16 - Learned Ruby. Wrote first utility to repack the SSDT in Windows rootkits and hook accesses to the first memory page of the service descriptor. (Lots of people do this now);

17 - Learned a lot of Math. Wrote transfer control protocol on top of IP and wrote a lot of Cisco IOS utilities;

18 - "Learned" networking (A wildly complex and massively underestimated field, I'm not sure anyone really knows networking anymore) Reimplemented all of dsniff w/ STP & 802.1q utilities;

19 - Learned Erlang. Wrote my own NoSQL database (zv.github.com/artifact);

20 - Now :)

It would be very interesting to cross correlate with age. Some programmers were exposed to code at a very young age. IMO, programming for 10+ yrs by age 20 is far more fascinating of a statistic than say programming for 15+ yrs by age 50.

I ticked 10+, and I am 26. I was designing 'web pages' when I was in middle school, albeit geocities html, but then had my first programming class (C++) when I was 15. Curly braces do not phase me.

I first learned BASIC on a Sinclair ZX81 which I got for my 7th birthday. I'm now 37 so I just scrape into the 20+ range.

oh wait.... 30 years! Now I feel old.

I too am 26 and I ticked 10+. I wrote what I consider to be my first real program -- a program with users -- in 2001.

19 years (a few months shy of 20) and I'm 23. I started with my dad's Commodore 64 and the BASIC reference manual. Flashing colors on the screen, followed by very simplistic text adventures.

I'm 40 and I don't know exactly if I started at 9, 10 or 11.

6, 8, and 9-year programmers need not apply.

30+ year programmers need to apply thrice.

Calculated 6 years out in my head only to discover this :/


This is a strange question to ask. I have known _how to program_ since I was in the 7th grade when we were taught ahem gbasic back in 1996. I have learn't C in my undergrad, taught myself a bit of python during the same period. Upto this point programming was recreational trying to solve trivial problems (I learnt python primarily to solve project euler problems).

It wasn't until I started my masters, 5 years ago, that I did any serious projects and 2 years ago that I did professional work.

So when people ask how long have you been programming for, what is it they are looking for ?

As a (very) young person, I hope that all of you who have the opportunity to (and feel it is appropriate) to instill programming into your children at a young age do so. The beauty of adopting a craft paradigm like programming lies in how it fails - All problems in programming are ultimately problems in dealing with our own intuitions about the mechanics of the world and our rationality, and the problematic interplay between those two agencies.

The very semantics of how we describe language advantages and disadvantages reflect this.

"Everything you manipulate is an object, and the results of those manipulations are themselves objects. However, many languages make the same claim, and their users often have a different interpretation of what object-oriented means and a different terminology for the concepts they employ."

Was that Jacques Lacan? Actually that's the pitch of the hit OOP dynamic language Ruby.

I think this is endlessly valuable to young people -- as so many programmers can attest, the key to solving errors seems to be in radical reassessments of your frame and mode of thinking: the nature of the solution to problems in programming isn't about abandoning rationality, as much as it is expanding the nature of rationality into solution sets such that the problem can be solved adequately. I don't think it's at all unscientific to say that when theres billions of hidden local variables at play in a machine, in some way, you have to put yourself at the mercy of a higher power (whatever that designation may imply).

Despite this, you still are the one in control. This is why I think software has something very important to offer kids for this dawning century. As a culture we're losing the real virtues of thinking passionately, of having a sense of responsibility for who you are, making something of your work and feeling good about your work and life in general.

Software, hacking, or whatever you'd like to call it gives you the undeniable feeling that your life is yours to create. Although it's a art mired in abstractions, it's incredibly concrete -- It's you reading this right now, making decisions, it lets you know that although it's true that theres about 7 billion people in the world, WHAT YOU DO MATTERS, not abstractly, but in material terms. A recurring message I see here in this thread is that software allows us to stop writing ourselves off and to stop seeing ourselves as the victim of a confluence of forces, despite us ultimately having no control of the machine beyond our own thoughts, no matter how aged, wizened or jaded with the craft we become.

Started with BBC Basic and 6502 assembler at home, then Pascal at school on CP/M and DOS, then FORTRAN and MATLAB at college on VMS, then C++ and Perl on Solaris at work, then PL/SQL, then OCaml for personal projects, now mainly Python on Linux for work. I also have Acorns and Commodores at home for tinkering.

For work tho', only work counts. Real-world programming is not just about programming, it's doing so within a set of constraints that you don't have a say in (e.g. compatibility with existing systems, OS, deadlines/timescale, specs, users, etc etc). Adapting to these situations is what makes a successful industrial programmer, not what you did as a kid.

My very first program, in BBC Basic, was for work, drawing a graph of some kind of lab instrument data interfaced via the analogue port. That was 1989 or 1990, and I didn't do any programming again for at least a year or two until learning Fortran at university.

What's up with all these polls? I don't understand the significance of this poll, besides being an icebreaker/conversation starter. HN seems to be stuck in naval gazing* mode.

*navel gazing.

NavEl gazing. (Or Omphaloskepsis [1], if you are so inclined)

Naval gazing would be a pretty fun thing to actually.

[1] http://en.wikipedia.org/wiki/Omphaloskepsis

It was informative to note that the bulge of 'years of coding' for [OK .. participating] HN hackers is the 10+ year set.

It would be interesting to see a 3-dim space mapping to years of {hacking, business (startup), investing (vc)} and see how the HN clusters manifest.

Ah, 1969, FORTRAN II on an IBM 1620A. Then BASIC and FORTRAN on a PDP-10 in 1971. Happy times.

And get of my lawn!

I started learning in a hotel near where I still live. My dad taught me some HTML and Tarpipe(http://tarpipe.com/) then. I was really fascinated and I learned more and more. Soon I picked up python then CSS and JS. Now I am looking at more low-level stuff like OSes and programming langs. I am very happy that I, as a 14 year old, get the chance to learn all these things!

I clicked 10+ years because that's how long I've been programming continuously on a professional basis. However, I first programmed back in 1985 on a Compaq Deskpro Portable computer (640 KB of RAM! 40 MB hard disk! Only 30 lbs!). I started out with a custom AUTOEXEC.BAT file, and then moved into programming in GW-BASIC after a friend of my parents gave me a manual and encouraged me to poke around.

Later, I migrated to BASCOM and then QBbasic. Then I pretty much stopped programming completely after high school until I started again, more or less by accident, around 1999 when my boss asked if anyone knew how to make a web page. I thought, "How hard can it be?" and that became my gateway back into programming.

I started programming web applications in Classic ASP. I was somewhat astonished to see that the programming language was VBScript, which looked an awful lot like QBbasic with a few objects bolted on. Once Classic ASP was deprecated for .Net, I jumped over to Python as part of a more general move away from the Microsoft platform onto Linux.

You forgot 40+ and 50+ [I qualify for the first and almost for the second].

How old were you in the age of 8" floppies then? :)

I forget how big the floppies in the 360/44 were, but they may have been 8" (one of my first programming jobs was at a research mental hospital that had a 360/50 and a /44 and ran a network that stretched from Maine to DC - back when the computers had real core memory (which cost about a dollar a byte).

My first encounter with a computer was the Pong game ('78). Second encounter was a time-shared Star Trek ('79) at our high school (and my first year in US). I distinctly remember not making/having any distinction between OS and the game application and that has always left me sympathetic to newb users - we take so much for granted and to be "obvious" when they really are not "obvious".

First computer and first programs followed shortly ('81): TI-99/4A and ("16 bits!") "Extended" Basic and mostly sprite based games. Sampled CS in EE school -- punch cards and assembly. Usual EE type Fortran programs, but nothing 'systemic'.

First paid work was working for a startup in my senior undergrad year building a jet engine turbine CAD system (I did the UI framework for picking, menues, etc. -- this is before Windows ;) The other project was a Fortan to C translator which provided the opporutnity to learn (fairly serious) C while contributing to that effort. ('86)

I code (compulsively at times) to this day.

I recall at the age of 10, I was asked my dad to install LOGO because I was facinated about the idea of instructing a computer to do something. I didn't really use it that much and I had no concept of computer programming was. By the age of 11, I discovered something at my local library, reading a book called "The Beginner's Computer Handbook - Understanding & Programming The Micro". My eyes lit up because of the fact that anyone can create a space shooter game. I was noob back then. I didn't know what a compiler/interpreter was so I thought by typing BASIC source code into notepad, rename the txt file as exe, hoping it would run. Until I found out about Qbasic(My first programming tool) was on every copy of Win95 CD.

During my middle school years, I got more interested in computers, reading fat books about programming during english class. I made a couple of prank virus programs that I installed on other people's computers. I made a friend who was also like me but he wasn't much of a programmer. I got into computer hacking afterwards when he showed me that it was possible to disable desktop restrictions on the Library's computers, free to download at T1 speeds. So I wrote a program in Qbasic to automate the exploit. I eventually de-friended him as he wasn't a good influence.

There were two other people of influence, both had their own personal websites. That got me started on webdesign, and Java applets programming.(My first java app was an online chat server).

Later on I got into game programming starting with Darkbasic, BlitzBasic and now Unity.

Now at 25, I work as a Linux Sys Admin and SaaS Backend integration. My other hobby is building electronics using PIC chips.

Kids today can have a RaspberryPi to tinker with, I happy that schools are providing them the opportunity to get interested in programming, because in my time, I didn't have that and computer classes only thought how to use Excel and typing skills.

I've been using C for longer than my current manager has been alive :-)

Now that's funny. (and maybe scary? :-)

I learned C (from the first edition of K&R) about 24 years ago. And had no one to help me, so I had to understand everything myself and debug my own rampant pointer issues. Eeek! That was a wild ride!

My first attempt at programming was in 8th grade (mid 20's now) using VB. I remember writing a program that converted text to pig latin and I was so proud of it. Despite majoring in engineering, I only had to take some intro programming courses and used a bit of Matlab. Well, fast forward to about 8 months ago I came up with an idea for a web-app and decided that now was the perfect time to become good at programming. For about 2 months straight I spent at least 3 hours every day following tutorials and tried to create little algorithms in PHP (sort an array, find largest number in an array, count the instances of a character in a string, etc...). After ~200 hours I felt comfortable enough to start writing the web-app. I'm amazed how far I've come in the past ~8 months.

Not to hijack this post, but does anyone else remember their first "cool" program?

Pretty much the same. Started with QBasic though; then 'graduated' to VB (5.0?). My first 'cool' program I remember was in QB, it was kind of like a shell for DOS, that had the looks of Windows 95 with a start menu and all - rendered completely in text. We called it Access or something. Did it with 2 of my friends; as luck would have it - one guy is now the CTO of my present company and the other one is the CEO (who has no clue about programming anymore!).

Started on BASIC on the ZX Spectrum+, learnt to program initially from the user's manual, but my skills grew exponentially when I realised that I could hit BREAK just before some of my games had finished loading and drop into their source code. I did not know that other languages existed. I did not even know that there were other people in India who programmed computers. A year later our school introduced a summer class on computer programming and another 3 years later it was an elective for 8th grade students. I was in the first batch, and we had the elective until we graduated 2 years later.

Programming can be a very solitary experience, and at exactly the same time very social.

I started on a Spectrum ZX80 back in '86. At that time I learned how to bypass the mathematics training software that my father had written in hopes of getting my arithmetics skills in shape. Instead, I learned how to debug, and hack his program. From then on, it was a game of cat and mouse with him trying harder tricks to bypass. I've been programming ever since!

I started programming on the BBC model B. You had to number each line by hand. The convention was to write the line numbers in steps of 10. Then as you went back and added lines, you'd run out of gaps to fit your lines in. Then you had to use the RENUMBER command and all the lines would be renumbered in steps of 10 again.

It was a great breakthrough to me when it was realized that line numbers could be derived from the text rather than assigned to the text. I suppose that was only possible when things like the GOTO statement didn't accept a line number.

I must have been about 11 when I started. Happy days!

I remember the "Wow!", when I discovered the AUTO command!

And learning how to use the copy and delete keys to make modifications to existing code without having to retype the whole line.

Yes, didn't that automatically give you a line number each time you started a new line?

I guess it depends on how you look at it. I first started programming 20 years ago as a kid playing around with GW-BASIC and then moving on to Pascal. It was all playing around and teaching myself based on stuff I found on various BBS'. I was intrigued right away and programming just became a passion since I could write my own programs and make the computer do what I wanted it to do. Professionally though, I've been programming for about 15 years - though I feel that I've only really become a good programmer in the last 5 or so years.

I started with Integer BASIC on an Apple II the summer of 1978. I went on to Applesoft BASIC, and then Apple Pascal.

When I went to Texas A&M in 1981, I started in Electrical Engineering, and took courses in FORTRAN and IBM 360/370 Assembly. I enjoyed those so much that I changed my major to Computer Science. We used PL/I for data structures class, and in the Programming Languages Survey we focused on Ada and Prolog, with brief mentions of other languages. I did a little bit of work for an Engineering professor in Turbo Pascal.

For my senior project, I got to use the CS department's new VAX 11/750 running BSD Unix. For my project I taught myself C so that I could assist a grad student on his "syntax-directed text editor" project. I've been in love with Unix and C ever since then, but didn't get to use it at work for several years.

My first real job out of college started June 1985, and it was programming interactive training systems running in a proprietary courseware design system on Sony CP/M Z-80 computers and Laser Videodisc players. The courseware system was buggy, so I talked my group into using C instead, which allowed us to be more responsive, have less crashes, and put more content on a floppy disk. The Z-80 C compiler was produced by BSD Software, which stood for "Brain-Damaged Software". It was so named because they didn't support floating point math, but that was ok because we could get by with various tricks and get done what we needed to do.

The first bit of programming I did was to enter a listing for a bomber game on the zx81. This must have been around 1981 or 1982, so I would have been 5 or 6. Amazingly, thanks to the power of google, I think I have tracked down the listing; it is the (surprisingly concise) game called Bombs Away:


110 LET A=1

120 LET B=0

130 LET S=B

140 FOR I=B TO 19

150 PRINT AT 9,I;"g" (graphics G)

160 PRINT AT 10,I;"a" (graphics A)

170 NEXT I

180 PRINT AT A,B;" " (space)

190 LET B=B+1

200 IF B<22 THEN GOTO 240

210 LET A=A+1

220 PRINT AT S,B-1;" " (space)

230 LET B=0

240 PRINT AT A,B;">"


260 PRINT AT A,B+1;

270 IF PEEK(PEEK 16398+256*PEEK 16399)=137 THEN STOP

280 IF S=0 THEN GOTO 400

290 PRINT AT S,B-1;" " (space)

300 IF S=9 THEN GOTO 340

310 LET S=S+1

320 PRINT AT S,B;"3" (graphics 3)

330 GOTO 180

340 LET S=0


405 GOTO 180

I still remember the first "programs" I wrote in qbasic. I spend days writing a simple tic-tac-toe game using if-statments only. Or computer art by drawing shapes, lines, dots and what not on the screen using different loops. Then I discovered I could make it bleep funny also, ending in whole light shows with simulated lazer beams under a nice beat of beeping.

Later I got more serious and wrote programs to do my math homework for me. I found that I learned more about the math I was learning by writing these programs than by actually doing the homework myself. That's been one of the reasons to get into education to pursue the idea of using programming as a learning tool (as pioneered by, among others, Seymour Papert [logo] and later Andrea diSessa [boxer]).

When I started studying computer science my programming "career" started in earnest. From doing some shady braininess when the internet was young to writing scientific prototypes.

Ever since I started programming it has been part of my daily life. I often find myself automatic tasks in my personal and professional life and I would like everyone to be able to do the same. Time and time again I have been confronted with people that do not (want to) understand computers or their place in our (future) society and keep on serving the machine instead of having their machine serve them.

All and all, I've been programming machines for over 20 years, ever since my early teens.

1966: IBM 7094 assembler & Fortran IV 1967: Univac 1108 assembler; CDC6400 assembler 1968: Snobol4

50+ years? Really? We have 7 univac hackers here?

By 1963, the PDP line was already in production, COBOL, FORTRAN and LISP were already defined, and there were military/space vehicles with custom computers around or in development.

Scroll down to pmcjones for example:


Although I had high school exposure to FORTRAN, I began my life-long love of programming in 1970 at Stony Brook University where I had many programming classes that involved the IBM 360/67 and DEC PDP-10. I learned all the major languages at the time, including Algol, PL/1, FORTRAN IV, Snobol, Basic Assembly Language, and my favorite back then - Lisp, i.e. Maclisp on the PDP-10. My first job was programming for a bank in COBOL, and I continued with commercial data processing for two decades. I bought a TRS-80 in 1978 and programmed it in Basic as well as assembler. Likewise I built and programmed an x86 PC every couple of years since they came out. In the early 1990's, the utility company I worked for switched new projects to Smalltalk. And in the mid 1990's I learned Java. In 1999, I began working for Cycorp in Austin where I returned to lisp, and a bit of Java. Since 2006 I have been programming Java and some JavaScript.

At 60 years old, I look back on a long career of programming - with the most exciting work coming late in life as a founder of a tech startup - Android, websockets, semantic web, natural language processing, and programmable web. Its just great! I wonder what the next couple of decades will bring ...

Atari basic in 1991 when I was 9 (remember simple FOR loops printing "trees"), BASIC with sprites on Yamaha MSX [1] consoles in 1993/1994, grew up on ZX Spectrum clones (Russian Hobbit [2]) since 1992 (including dabbling in Logo), GWBasic since 1993, QBasic a year later, Pascal since 1994 and dabbled in C in 1995. Clearly remember pointers sucking: having to figure out whether to pass in char * or char whether to stick an & in front of the string, etc.

ZX Spectrum was the shit though, as a kid. It had everything you wanted: BEEP command to make tones (so you could make music!) and user-definable 8x8 characters [3]. I remember sitting down with graph paper, drawing a grid of 8x8 spaces, outlining something neat like a helicopter, then tracing out the pixels. Then it was trivial to just "PRINT" your custom characters and make things move around.

1 - http://en.wikipedia.org/wiki/MSX 2 - http://www.interface1.net/zx/clones/hobbit.html 3 - http://www.worldofspectrum.org/ZXBasicManual/zxmanchap14.htm...

17 Years. This is the source code of the first "game" I wrote in 1997, in QBasic:


Cool. I wish I'd kept some of the ZX Spectrum programs I wrote. I tried a few times by using my hi-fi as the tape out. But then my mom would clean my room and reset it by accidentally knocking it over.

Almost as traumatic as when she dismantled my Lego Technic car with working gearbox to dust it.

Loading a program on cassette was loud enough to get one banned from using the Spectrum. Plus, there was only one TV in the living room, which you needed for the Spectrum.

Add the two, and scaling meant buying another TV and migrating often between rooms.

Traumatic was when I (think I was the one who) finally burned it by plugging in the wrong power supply, decades later.

This is the code one never forgets. On which computer did you write this in? I remember to have started coding on a Tandy TR-80... how time flies. http://en.wikipedia.org/wiki/TRS-80

It would have been an i486, this was in the mid-nineties. I was twelve at the time. I kept all of my code, it still runs in DOSBox.

1985 or so, on the CPC6128 produced by Amstrad, and in Germany sold by Schneider Elektronik. I programmed it in Locomotive BASIC. It also had Logo, with the turtle graphics feature. It was meant for kids, but it also felt like that too much as well, so I didn't bother using it too much.

The machine had a 3" (sic) diskette drive. Unfortunately, the 3.5" diskette made the race and became predominate. 3" was prohibitively expensive within short order.

I had the Amstrad CPC-464 (with built-in tape drive) and after that an Amiga 500 which I still have somewhere. So many hundreds of hours on those machines!

Have never witnessed so many people with ZX Spectrum as in this poll!

My case:

Got it when in sixth grade. Used to wonder what sin and cos functions were (having not studied trigonometry as yet) :-) Managed to figure coordinate geometry out though to create shapes on the screen.

This was the best gift my father ever gave to me. Around seventh grade, I was imagining 3D animated movies. Tried hard to figure an equation that would describe a human face, so I won't have to compose it from geometrical primitives! :-)

Tenth grade, I was programming in machine code (no assembler, converted mnemonics to machine code by hand!). Imagined a compiler (was not aware of them preexisting) and made a simple prototype that converted post-fix expressions to machine code. My last bit was to finally manage to create a 3D animation, as big as I could fit into the available memory (<48K max), precomputed with BASIC and cycled on the screen using machine code.

My biggest loss here was not having any non-volatile storage whatsoever. Used to write down finished programs back into my notebook! Could never build on the top of software I had already written once...

I still have the machine with me in my home country, though haven't touched it in years!

You got me thinking for a long time. :) At first there was BASIC on Sinclair ZX-80 ('81), then I got ZX-81 ('82), afterwards was ZX Spectrum 48K ('83). On Spectrum I learned Z80 assembler, Hisoft Pascal in Hisoft C. Next was Commodore 64 ('84), where I learned 6502 assembler, then Atari ST ('86) and Amiga 500 ('87) with Motorola 68000 assembler. When in high school we got PC-XT and afterwards PC-AT with Turbo Pascal and Turbo C. On PC-AT was my first professional development. I was in Yugoslav Army ('89), where I developed ERP system with Nantucket Clipper (remember? :). After a year, when I got out I went to University and there learned ADA, ALGOL, PROLOG. Worked for private company on HRM software ('92), developed with C++ and multi-db interface (Oracle, MSSQL, Access). Then worked on Time & Attendance SW (extending HRM) using Ruby and JScript as internal scripting language. After that in a startup team developed first Slovenian version of Activation software for Windows (year after WXP) for our local e-Dictionary publisher .... Now, I prefer working in Python, sometimes in C++ or C#.

After graduation, started in '90 at a consulting firm with oil field apps using 4GL's: FOCUS, PowerBuilder, DataEase (anyone remember that?), then Paradox, DBIV/Clipper, then C, VB1 (client just -had- to use it), then VBII, III, Delphi, VB6.

Lived in SQL Server from when it was hard to differentiate from Sybase / OS/2. Did anyone ever have the problem that if you unplugged the monitor on an Sybase / OS/2 machine the whole box would crash?

In the mid-90's, the saving grace for us with VBIII / SQL Server was a small, self-published (at the time) book, Hitchhiker's guide to SQL Server, by Bill Vaughn. Actually went to dinner once with the guy- He flew helicopters in Vietnam on SAR missions... give him a couple of drinks and he'll tell some -very- interesting stories.

Three very cool years 2003-2005 creating games using Torque and GameStudio to host educational content (an FPS, hosting .avi's instead of shooting), then the C# .Net world on the desktop and the web. A little Python and Pearl thrown in for fun.

I'm lucky that I'm the go-to guy for weird requests. Keeps the job interesting.

Well this makes me feel old. 30 years since I learned Basic and 6809 Assembler.

TRS-80 Color Computer? That's what I learned 6809 assembly on around 1981, only to be startled how many little things were harder on the Commodore 64's 6502. The extra memory (64k after bank switching!) made up for it though.

I didn't have a multiprocessing platform until 1988 (4.3BSD at college). I wonder how much better I'd be now if I could have gotten my hands on OS-9 earlier.

Yep! Good ol CoCo. I didn't have edasm+ at first, so I was "hand assembling" to bytecodes. Had a little too much spare time as a kid.

My dad helped me double the ram by piggybacking chips on the existing ones. I used to take the cover off and stare at motherboard along with printed schematics to understand how the thing worked.

I think it's a lot harder for kids to get the kind of basis for things now.

I started Spring of 2004 when I was a freshman at Stuyvesant High School. We could start taking electives our second semester, so I signed up for Intro to Computer Science on a whim. I was decent at math but didn't know a thing about programming or computer science and never bothered much with computers aside from playing games.

I fell in love. I remember we worked with Netlogo and Scheme. We learned about towers of hanoi, various search algorithms, dynamic programming, cellular automata, disease spreading simulations, lots of recursion, prisoner's dilemma and many other things. I remember implementing a calculator in Scheme and writing a billiards game in Netlogo as projects. People did lots of awesome projects and it was an inspiring time and place to be.

I've been programming ever since and I was very very lucky to have the option to try it out in the first place. There's a real need to bring that option to more people, and I've been thinking lately about how I can do that.

After setting up a few Wordpress blogs for friends I found _whys poignant guide about 2 years ago and haven't looked back!

Viewing source of the internet around the time I was just starting elementary school. Educated me a bunch, especially since the internet back then was super-primitive. People were using VBScript back then. I had no mentors, so when I took a look at Javascript, I got confused as to what curly braces were ("Where's the endif? VBScript has endifs! And what are those silly {} things for?"). I finally got into PHP around middle school early high school when I wrote a really primitive webcomic system for a friend, modeled after megatokyo. Full of SQL injection holes, though I started to figure out and create my own OOP-ish system.

Later: Python (Pylons), PostgreSQL, Java Servlets, Jersey, Play Framework, Jackson (in roughly that order, omitting a lot of detail).

Only ever had a mentor who taught me new things once, when learning the servlets stuff. The rest of the time, I had no mentorship :(.

I played with a lot of basic stuff as a kid - but it was my senior year in high school that I think I hit a real pinnacle. My friends and I that spent all our time in the schools computer lab wrote a game - now it was just a simple text adventure game. It was like a choose your own adventure book - using goto statements based on choices but it was incredible. We called it "Computer Room Adventure" and it was full of amazing, witty and cutting commentary on the school and the people in it. It was cutting edge - there was a section where it didn't matter what keys you chose, we printed out a message that made it feel like you were typing it. And we made fun of Andrew a lot - and you know that guy deserved it. It was probably one of the greatest losses of our civilisation when that 5 and a quarter floppy bit it.

My very, very first contact with computers and programming was back in 1982. Our math teacher found somehow a budget to buy a handful of SHARP PC-1251 pocket computers and taught us rudiments of BASIC on overtime, unpaid hours. 30 years ago, phew, I'm just feeling old now. Thank you Mr Imbert.

Saved my allowance to buy a TI-86 graphing calculator a year before I would need it in school just so I could program in class. A Z80 @ 4mhz, it provided so many skills early on with effiency. Good times.

EDIT: Oh, and back before there were any online resources. You got the manual and thats it.

I started out with BBC BASIC on my Dad's model B when I was 7 or 8. I remember reading a book called "Structured Programming" or suchlike, and hardly used a GOTO again - BBC BASIC was reasonably advanced for its time in having DEF PROC and DEF FN.

From that I progressed to an original IBM PC AT (still got the Model M keyboard from it), using QuickBASIC at first, then QuickC. Then my Dad got a 486sx20 with a stratospheric 16mb of ram. Kept going with the C and some assembler on DOS, messed around with OS/2 2.1 and REXX as well, and then got Slackware Linux 2.1 in 1994. I messed around with all sorts - C, lisp, x86 assembler, C++, shell scripts.

I've programmed professionally, using Delphi, Java, C++, Perl, Python and C#, for 15 years.

I am not a professional programmer, but do it for fun and to avoid repetitive or boring work at home (backups, updates etc.). I got my first computer when I was about 6 or 7 (1985 IIRC), an Atari 800XL with tape recorder (about the size of a toaster). It was awesome when I found out how to get into the running interpreter, change a BASIC program and restart it! So my first 'coding' was to change the number of bullets or lives in the running game. Or insert silly texts printed to the screen; maybe it's good I didn't become a professional :D I am a slow learner, slow thinker, bad at math - and I guess I couldn't earn a cent with it. But I still enjoy writing my little programs after all those years.

This question is not very precise.

I started writing programs when I was 14, on a commodore pet that I found in my school.

Professionally? I wrote a little software during my master thesis time. This is kind of professional, but it was not the main objective. I did the same during my phd time (physics). It was not before 1 year after my phd, that I earned my money with software. Nowadays, my primary work is developing software, although I am a scientist.

So the answer would be:

30+ years, when I count my first programs

20+ years when I count from my first professional programs

10+ years when I count from working professionally and full time on software

I voted 10+, but I suggest, you restart the poll with a more precise question. (scientists can be a nuisance, aren't they?)

Dad bright home a 110bps acoustic-coupled printing terminal, dialed into the Honeywell mainframe, and had me type in a 3-line BASIC program which printed a sine wave. I was 10, and I was hooked.

Soon after, he handed me a book that taught assembler programming by directing the read to hand execute instructions in the corner of each page, flipping pages to find the next.

A couple dialup terminals later, we assembled a ZX-80 kit. 1KB RAM. Built a sound card from scratch for it.

Long story short, 20+ years as a developer and teach programming part time. That today's students start with high level 3D GUIs and gigabit networking makes it hard to drag them back to the binary basics and build from there.

This is tough because I started as a designer who just wanted to make sure my designs worked like I wanted - hacking together what I could find. I slowly developed an understanding of Javascript pre-jQuery, so I was learning the DOM because I had to. Then, I got into Flash development which, at the time, was AS2. If you design and develop, AS3 was/is joy. Not because it was Flash, but because AS3 is close to JS (AS3 is actually a ECMA dialect). Since, I've become pretty good with JS, Ruby, PHP, C#. It's hard to really nail down an exact year since I wouldn't know if it would be appropriate to call what I did years ago "programming".

I started in 1990 [1]. Learned COBOL, courtesy of the Marines. Then was side-tracked into a series of billets where I did micro-computer repair, LAN, dBase III. Never had a job, since, where the title was 'programmer' but I've programmed regardless: scripts, dbase, blah blah blah.

[1] I would have started six years earlier in high school. But a (probably) well-meaning guidance counselor convinced methat I needed trigonometry or something to even begin thinking about programming a computer. So I took the basic 'intro to programming' class offered in 1983 at my high school and dropped the whole business.

Pity - I really _liked_ messing around with those Apples.

I first started programming in C++ around 2 years ago, with the honest intention of becoming a game designer. Not too long after starting, I found out that that would take too long, so I stopped for a while. Around a year after that, I got hooked to C#, but the relationship lasted for only a few weeks. Finally, after another long hiatus, I pulled up my sleeves, and decided to learn Python. Since then, I've worked through the first 20 or so Project Euler problems (big deal), and written countless snippets and a few projects. I intend to learn a micro framework, such as Flask, and then hopefully dive into Django.

20 years ago, aged 7. Started with that LOGO turtle (am I imagining this?) then moved onto typing out reams of BASIC into our school BBCs from exciting looking game books. Even though the ASCII games never quite matched the futuristic 3D images on the front, I remember being far more excited about those books than any game I've played in recent years.

Early on, I didn't realise that you could retype lines to replace them, so was careful to type them out 100% accurately. One time a "friend" came and mashed the keys when I was on line 1300 or so, earning him detention for a week from the headmaster who was also none the wiser!

I started with Basic on an Apple ][, followed by 6502 assembly. In community college, Pascal, Fortran and C. At some point in university,C++,APL, Matlab and Perl4. As well, shell scripting (including awk and sed), and Perl5 once it became widespread. Oh, also Java, Scheme and 68k assembly. Many of these were for coursework and I would not use again. Python at some point in my professional career. These days I use Python and/or shell scripting most of the time, followed by C (and C++ as a necessary evil). I'm still hoping to have a long lasting career without having to suffer Java professionally.

I said 10+ years, started out when I was a wee lad "programming" a front end in DOS batch for my non-computer-literate dad, reading from a thick reference book and trying to figure out errorlevels..

I haven't really worked on any big projects, just little bits and pieces here and there. I just set up a github a couple months ago, and the only thing on it is some mIRC script that isn't really being updated anymore.

Kinda hesitate to call myself a programmer, feeling like that term is best used for people who do it for a living or have a great deal more experience than I do. Coder or scripter is probably more accurate :)

I was born in 1977. In the 7th grade I had a old 128K Mac. I wrote an application to catalog my baseball cards. I used the Microsoft version of basic since it was that or Pascal.

This was before the Internet was easily accessible. Software shipped with manuals that made the bible look tiny.

Then I discovered girls and skateboarding and booze and didn't touch a computer for a long time.

Around 22 I started with HTML to make a site for Tony Hawk's Pro Skater cheat codes. It kinda snowballed from there. That was still when Clinton was President.

Now I focus on PHP and scaling servers. I have a Bachelors in Economics but enjoy nerdy stuff more.

I was copying out the example BASIC programs from the back of manual of the C64 I got for Christmas 1991 when I was 11. I have vague recollections of LOGO on the BBC Micro before that. 20+ years then.

Still so much to learn ;)

I started around 1995, writting basic games on MSDOS, then moved to VB 3 on windows, up to VB 6 where I started mixing it with C and ASM code, VB was for quick GUI and C/ASM for the intensive speed sensitive stuff.

Later around 2000 I moved fulltime to Linux, I started learning C better, tried C++ and didn't like it that much, tried Objective-C and loved it, but Objective-C was very much useless at that time for me, in the end I got around C++ fine, learned C# and finally moved to Python, my language of choice, but I still dabble in C++, Java and other languages.

In fifth grade I wrote a D&D random encounter generator in Microsoft Basic on the Mac, sometime in the mid-'80s. Even my rpg-playing buds thought it was nerdy. It used toolbox calls to get real buttons and fonts on the screen. I was a font and design nerd too.

In high school i was very active with several local BBSes in the san gabriel valley and learned a lot from people i met there. When mosaic came out, building web sites was such a no brainer natural fit, I took to it immediately and have been doing it inside and out, one way or another since then.

Pretty much 30 years to the day. (So I'll claim 30+, thankyouverymuch! ;)

It was in BASIC, on a Data General Nova Eclipse. Upgraded to assembly about 6 weeks later, just because it was insanely fascinating. (Hey, I was in 8th grade or so. Nobody breathing down my neck to actually produce useful things)

First program? Simulate rolling the dice 200 times. We had to do that for homework, and like every self-respecting programmer, I'd rather spend 2 hours automating a task than 30 minutes doing it by hand. (Followed by 10 hours of tinkering so it makes nice output ;)

Since dinosaurs roamed the datacenter! I voted 20+ since that is how long I've been programming for a living, if you include back to high school (BASIC on a RSTS/E time share) change it to 30+.

Related: are there any 2nd or 3rd generation programmers around? My both parents are professional software engineers.

(Waiting for someone to go: "I am a direct descendant of Ada Lovelace, now get off my lawn")

Im 25. I remember my dad mentioning writing software to compute the trajectory of artillery shells when he was a Navy cadet. He later went on to establish some of the early IT institutes the Navy uses to train it's personel (this was some time in the mid 90s).

I would hang out with my dad in his office, and that's when i first saw computers. Later on, i was exposed to Foxpro programs in high school and two semesters of C in freshman year. But i was too busy fooling around with my buddies to take notice. I was studying EE, so din't really get much programming practice except for some Matlab.

It was only toward my third year in college when i sensed that having good programming skills might be useful. That's when i started doing some project Euler problems. My final year project involved an embedded networked application, and that's when got to know about GCC, linux and the open source world.

I am now a programmer in a research lab, and my masters thesis involves building machine learning models for an underwater acoustic communication system.

2nd gen here.

My father was the "it guy" for a swiss engineering firm in sweden, lots of *nix and vms stuff.

had the vic 20, then c64, then amiga, then 386, 486 and onwards at home, I was probably 6-7 years old when I started playing. Like another poster higher up, had to learn binary pretty fast to make rasters and sprites etc. lots of fun over the years.

But, in reply to your question, yes, I am 2nd generation, something I actually liked to point out in interviews early in my career.

Probably would have been 3rd generation, had my father's father not died in the second world war. He was a physicist, which was pretty unique for a Welshman of very modest background at the time.

War - what a catastrophic waste of young minds and bodies.

On a positive note, my son, at 15 months, has already earned himself the nickname "Little Schemer"...

Third, although indirectly. I'm nearly 40. My grandfather was a chemist and used computers from the really early days. My mother studied physics but hates computers, but my stepfather is a mathematician who also used computers since the punch card days, so I at least have a representative in each generation!

My dad taught me programming in 1964, on IBM equipment where you used patch cables to write code. I was 10 at the time. Been programming ever since. I'm teaching my kids now - they are both using Scratch, which makes them 3rd generation.

2nd. I started learned BASIC at 5 by watching my dad program a VIC 20 and copying what he wrote on paper. When he noticed he sat me down in front of the computer and showed me enough to get started.

Third ?

I'm 40. My grandfather, when he was young, even if he did almost no programming, was a leader in the introduction of computing in press in US and later in France.

My mother's first job, when she was 18, in the late 1950s was punching paper tape for one of the early Manchester computers.

3rd gen, my family is full of programmers.

There's already some pretty good results here, broken down by age: http://news.ycombinator.com/item?id=3662838

they are different - both perspectives are important to understand HN community. At what age or when did you start coding vs how long have you been coding ?

If repeatedly breaking my Atari ST with broken attempts counts, we're talking well over 20 years. For more commercially-acceptable coding, we're talking closer to 15 years :)

I clicked 10+ years because I roughly started with 13-14 years (1995-6, yes technology arrives slowly to Africa) programming text adventures using BASIC on a Spectrum ZX2...

I dabbled in BASIC on old computers like the TRS-80 and IBEX 2200 about 30 years ago, right when I started school, and this poll makes me feel really old right now.

Started out my career while in high school in 1985 as a C programmer hired in the Solid State group at Bell Labs. Best part of the experience was lunch surrounded by physicists who bantered about the world from a analytical perspective; positing hypotheticals, engaging in spirited debate, proposing thought experiments galore. Just an amazingly brilliant and wacky group of individuals. I owe a lot to that initial rewarding experience.

I answered the poll talking only of years I've spent programming being a major part of my life (ie: employment, education) - about 5 years.

But I first learned to "code" back in 1987 on a Tandy color computer my grandfather bought me, and continued to tinker randomly for the next 15 years. So if you count that, my programming started over 20 years ago. Moved through basic, pascal, c, c++, visual basic, java, .net, php, PERL, ruby...

God damn, when did I become so old?

Truthfully, I never had the interest to learn programming as a kid despite being offered lessons by family and friends. My first year of college I took a ton of random classes, but Intro to Programming was the only class that captured my attention. Thanks to the professor and really interesting assignments I gained an appreciation for programming, and I've been working towards a CS degree from then on. I started when I was 19.

I learned BASIC on an Apple II when I was wee, little over 20 years ago. I wrote little choose your own adventure games filled with silly puns. I've flirted with programming ever since, but never programmed professionally, and most coders I've met could code circles around me.

Years since I first started coding isn't very indicative of my skill level, but years I've been coding professionally (ie, zero) probably understates things too.

My first memorable program was an interactive maze written in Visual Basic for Applications (yes, within Word). It was mostly a bunch of nested if statements, as that was most all I understood at the time.

Sometimes I still think of VB, though it’s been a decade since I wrote any — especially with certain Chinese foods. DIM SUM NICE FOODS, reads the storefront. Yes, I think. But dim sumNiceFoods as what?

Oh dear, ticked the 20+ box then realised that its been 32 years (Sharp MZ-80K; Basic, Pascal, and a bit of assembler). Age'll do that to you.

The better poll would have been: when did you start programming.

I started really young so programming was never scary to me. It was just like a slower version of drawing or cooking. i.e. you're making something but it takes a long time to do the code "recipe" to get the ultimate result. ... It also didn't help that the only way to save your programs was to play them to audio cassette...

Paper, dude, paper... xD

I started out as many not-so-smart or very-smart people do with HTML & CSS. That was back in 2005 or so, which made me 13 years old. As of 2011 I am quite comfortable with PHP, JavaScript (and it's libraries). I've done some very small experiments with Python, Ruby on Rails & C++. That all being said, I have a crap ton to learn and I am nowhere near a professional level.

I chose 10+, although I wrote my first program in 1982 when I was fifteen (it was a calculation of Mendel's inheritance series, written in BASIC on an old HP 2000 series). But then I had a break until about 1995 when I started writing code again, first in HTML (so no real programming), then moving to Javascript and eventually server-side Web development. As if anyone cares. :D

While I graduated with a B.S. in Mechanical Engineering (and rarely attended), I started to code my freshman year in college (2003) after my dormitory neighbor got me interested in computers; he wore a robe most of the time, had a hefty beard, and kept a bucket of computer parts in his closet. He talked a lot about IP tables :) It's only been down the rabbit hole ever since!

I think around 1981 when VC20s came to Germany and I was around 8 or 9 (after that Kosmos CP1, C64, CPC/CPM, Amiga 1000/500/4k60 Retina Z3 (who remembers that one?), PCs, short love affair with BeBoxes (nice blue CPU load LEDs :-), then Macs since the Cube).

My first larger program was "Towers of Hanoi" where I "solved" the algorithm on my own for. Still the programming I'm most proud of.

If I'd answered this a couple of months ago, I'd have had to say 20+ years. But it was late January or early February 1982 when my parents bought a Commodore CBM-8032 "business machine" with an 8050 dual 5¼" disk drive and a daisy wheel printer, and I began learning how to be a total geek. They swore the novelty would wear off eventually; maybe give it another decade?

I'm just trying to learn using Codeacademy for javascript, MIT online courses for Python and Django Book... of course, for Django. :)

1980: BASIC, 1983: Z-80, 6502 asm, 1984: COBOL, mainframe "Assembler" language, Pascal, Forth, 1985: Fortran, 1987 : C ... then, C++ and a variety of other languages followed.

My computer progression: TRS-80 pocket computer, TRS-80 model I, Commodore 64, Commodore 128, Commodore +4, Amiga, Vic-20, and then the long list of Intel 80x86 machines and phone/tablet gadgets.

ZX Spectrum in 1986, but couldn't understand the manual as my English was too poor when I was 11. Atari 800XL in 1988 where I started with Basic. Then C64 in 1990 with more Basic. A500 in 1991 and A1200 in 93 where I did Amos and 68000 Asm. Then university took over with x86 asm, Pascal, C, Java, C++, Prolog, ML and my first experience with Linux.

42 years, I took a 6 week FORTRAN class, and a 1 day BASIC class in Grad School. Started my first job doing FORTRAN on IBM mainframe and EMR-6050, and assembler language for DEC PDP-11 and EMR-6050. PDP and EMR were connected to physics equipment for real time data collection for physics experiments at a national laboratory in the Chicago area.

My first program was at MIT in 1960. I didn't like FORTRAN (note: all caps required), so stayed out of computing until the late 60s. Then it was (macro) assembly language, Lisp (1980), C, Objective C (80's), C++, Scheme, Standard Meta Language 90, Miranda, Hugs, OCaml, Standard Meta Language 97, Haskell 98 and now working on Haskell 2010.

Apple II at high school led to Vic 20 to Commodore 64 (BASIC) to IBM PC clone (Turbo Pascal) to VAX at college (COBOL) to IBM System 36 to AS/400 (RPG) to pen tablets (Turbo C) to Newton (Newton Script) to Palm Sized PC, Windows Mobile (Visual C++) to iPhone (Objective C). Objective C favorite by a long way.

I started in FORTRAN at MIT in 1960 and now prefer Haskell, OCaml, Ur/Web and SML97. Along the way, I picked up several (macro) assembly languages, wrote some DSLs, and dabbled in Objective-C before C++ became available. Since Haskell can now be as fast as or faster than C, I see no reason to go back.

I started out in 2002 as freelance php/mysql developer. Then 2003 I switched to microcontrollers 8051/avr for full time job then labview/VB/PLCs. After that at 2009, moved to new job, half sysadmin, half hw engineer, which doesn't required full time coding, may be a few bash/awk/sed scripts per week.

In the year 1986 I started with my new C64 when I was eight years old. Thanks a gazillion for the broken Datassette drive, effectively preventing me to load and play games so I had to start writing my own in order to be able to play.

Turns out, writing them was much more interesting than playing them ever was.

I've been programming ever since I got my first computer when I was a kid. I only took it up as a career about 8.5-ish years ago. Could've tacked on a few years if I went to university but I was convinced in my youth that I was going to be a rock-star and producer. Turns out I'm a geek. ;)

Holy cow, after reading some of the comments, i just realized that I too am a second generation programmer! My dad wrote some software to compute artillery trajectories while he was a cadet in the Navy. He later went on to establish some of the early IT schools for training navy personel.

1988–1989: first Logo encounter; 1992 or so: first Pascal encounter; 1994: got my first PC; started spending long hours with BP 7.0 and BC 3.1; 1996: first real applications (several thousands LOCs, proper GUIs etc.); 2002: first job as a programmer (with the LAMP stack).

I guess 10+ is an honest vote.

I think how long you are programming should start with the time when you first got paid / have customer for your development , all before is learning but IMHO there is huge difference

myself , started when I was 14 , got paid to program when I was 16 , closing to 30 years of programming , this year

'86 - I was 12 and sold my first program (typing tutor game) My dad bought me a BK0010-01 when I was 11 (http://en.wikipedia.org/wiki/Elektronika_BK).

It was fun to learn assembler entered directly as binary :P

How were you able to sell software in eastern europe (especially at that early age)? Even today if I try selling software over here, nobody takes me seriously and more often it's all perceived like an insult. "How dare you ask money for that sketchy program/website that even my 12 year old son could write???" or "I don't pay for software ! I take it from internet. It's free !!!".

I've been programming for about 7 years or so in a high school class. I was 15. My first language was Turing (Pascal-like language). I remember struggling with recursion, but thankfully I had an awesome computer science teacher who taught me really well.

I wrote up an history of how I got involved in the IT industry, http://www.michielovertoom.com/cv/software-developer/, the 'Background' part.

It all started with programmable calculators...

I did some BASIC when I was quite small, so around 30 years. Professionally, about 15 years.

My Dad and I started with a Basic time sharing system in the early 1960s that was occasionally available Saturday mornings. Then in the summer of 1966 when I was in high school I took a FORTRAN extension class at a local university: punched cards :-)

TI 58c (programmable calculator), CBM 3032 Basic/Assembler, Apple ][ (Basic, UCSD Pascal/Modula, Lisp), DEC 10 (Pascal), VAX 11/750 (Pascal), VAX 11/780 (Pascal, ...), Symbolics 3600 (Lisp), SUN 3, SUN 4, Atari 1040ST, Mac SE/30 (MacScheme, MCL), ...

First touch with computer - on an IBM PC AT in 1984. Did the first program in BASIC then. Regular programming started on an Intel Pentium/Linux in 1995. Pascal, C, C++, Java, JavaScript, PHP, Objective C, Shell Script etc. Never been out of touch.

I started programming aged 6, in BASIC on an Acorn Electron, back in 1986. That means I've been hacking for fun and profit for over 25 years now. Can't imagine life without code, despite doing less and less of it for profit as time goes by.

I'm 28 but I've been programming for almost 20 years. Started by retyping BASIC from books taken out from the public library in 5th grade. Hooked since then.

Forgot to mention: got support via a BBS that was hosted by the local school district, ah SEDNet.

I found a newspaper clipping recently while going through my dads estate which announced he was teaching a new class at the local college in IBM Assembler in 1967, the year I was born. He introduced me to computing in the 80s. I miss him.

GW-BASIC, on an old Canon 8086. I'd be horrified if I still had any of that code around.

I think back to the GW-BASIC editor with horror, but that was my tool of destruction for several months. (Epson 8086 here.) Wait, I can only edit one line at a time? And I can't see the other lines while I'm editing this one? ???

I can't begin to imagine working on larger programs using it. Discovering Q-BASIC and especially Pascal (and Borland's editor) was the transition between crafting my programs on paper to punch into the computer and crafting them on the computer.

I took my intro to CS/programming class in fall 2010. I kind of regret not starting sooner (I'm 27), but thems the breaks. Either way, I feel like I've been fairly successful for someone who has been programming for less than 2 years.

Started in 1985, when I was 7, with BASIC on a TI 99/4A. Guess that makes me part of the old guard 'round these parts. ;-)

Sad truth: I think that, until I got my TI, I was a normal well-adjusted kid. After the TI: I'm certain I wasn't.

I wish I had the experience some of these comments show. I'm 24 an didn't see a line of code until high school..... so 10 years if you count that. 3 years if you count anything worthwhile (wanting to actually learn what I was doing)

Started out on the TI99-4A, yes Texas Instruments made computers back in the early 80s. Learned Basic and then Extended Basic. TV for a monitor, cassette deck for data storage. First program was probably something like:

10 Print "Jeff" 20 Goto 10

I'm really interested to know what age that PG started programming. Some of the best known hackers started late. I know Julian Assange didn't have a computer before he was 14 but when you have a Commodore 64 you have to program.

Why somethings get downvoted, I don't know.

Started with computers 32 years ago at a school computer club where my physics teacher brought his own home computer in and taught a few of us to program in BASIC during a few lunch hours.

Earning my living with computers for about 22 years now.

the first thing I ever wrote that has to do with programming was in applescript lol, that was around 12 years ago I remember the main reason was trying to automatize an chat-client showing a message of what I'm listening in itunes, well, now I'm 24, professionally have 3.5 - 4 years living of it, I develope in .net platform, and trying to learn some old school programming (dont like the fact of "programming" click oriented with wizards, even though I use wizards but I'd like to learn some low level programming languages as you guys who have 10 or more years in the bussiness)

I assume the question is referring to programming professional (i.e., for pay). I've been programming since the Basic on the Commodore 64 but I've only really been doing it professionally for the last 5 years or so.

I was in an accident that left me unable to walk for 6 months. I was in a bad shape mentally (since this had nuked my high-school performance). Picking up a machine and being able to build something was my release.

Nearly 17 years and still going on... Remember starting with a neat little FORTRAN Hack all the way back in college. The instructor nearly fell off his chair when saw the source code - one of my favorite moments.

That seems great fun. Could you elaborate on it? Or maybe it's too long ago..

in a certain version of FORTRAN (I think 77) you could do interesting things with code that spanned two lines (80 Chars) My code did this repeatedly - over and over leading to some unexpected results

  ~1985 - Basic on Sinclair ZX Spectrum 48K
  ~1990 - GFA Basic on Atari ST
  ~1992 - Turbo Pascal on PC
  1994-1998 - Scheme and C++ at university
  1998-now - Professional programmer in C++, C and Python

Wow, I ticked 20+ years since I started with Pascal and QBasic when I was something between 11 and 12. Given how many years of coding most people in here have, I'm not even in the middle with my 20 years :)

started in 1985 with basic and asm. i think we are old;)

The number of programmers drops more then half between 10 and 20 years, and drops again between 20 and 30 years.

I am wondering if this is due to people leaving the field or companies not wanting to hirer older developers?

It may also have something to do with the availability of computers and software. It was very rare before about 1980 for people to have home computers that their kids could learn on. Before about 1970 it was rare for anyone outside a university or large business to get access to computers. There just were not as many programmers back in the day. Now you can't turn around and spit without hitting one.

It also could be simply a function of the demographics of HN readers.

Yes and Absolutely. (With the latter causing a good deal of the former.)

Started when I was 11. C64 basic :)

Now I'm 31. So yeah, I've been doing this for 20 years.

Ditto on both counts!

Started out on an XT (I think) writing Basic. It's been 20 fascinating years.

14 years ago... Started with oracle 6 professionally... Before that it was programming on an obscure Japanese chip, with the manual in Japanese... don't remember the chip, remember it was a pain...

How quickly time flies . . . I started programming on paper, writing programs for PIC12 microcontrollers. I would have been seven at the time. Never actually programmed one of the devices, but the experience taught me to logically think through a task, break it down into discrete steps, etc.

I quickly progressed to writing QBasic programs on paper, reading through some textbooks my parents borrowed from the local University library. From there I purchased a copy of `Computer Programming for Dummies' and started programming simple programs in the shareware version of Liberty BASIC [0] -- do you know how _frustrating_ it is to be limited to (IIRC) 100 lines of code?

From there, I taught myself C and C++ (via the a Dietel & Dietel textbook on the subject) and Python via another textbook that I don't recall the title for. I started programming games in DJGPP/RHIDE, and grabbed a copy of Michael Abrash's Graphics Programming Black Book that I never understood for the next five years or so . . .

I learned some basic concepts of data structures when I was twelve or so . . . around then I implemented my first binary tree. I'd been writing hash tables/linked lists before then, but never realized that it was a pattern. Just me reinventing the wheel as usual . . .

When I was fourteen I finally got my act together and wrote a simple card game for the OLPC XO, my first open source program. I doubt it's still around, but it worked! Crazy Eights goodness . . . my first Python program that reached more than 150 lines -- as I recall it topped out at about 750 or so. Not terrific, but it was an accomplishment.

I moved on to more theoretical topics after that; I spent the next year or so teaching myself how to write a recursive descent parser and write an interpreter. I learned quite a bit about trees and CS theory from that, to be honest! I can recommend the process to anyone who's interested -- writing an interpreter, including the parser, from scratch is _definitely_ one of the better things that's happened to me. That project, topping off at about 2,250 lines of C++, also taught me something incredibly important: the importance of designing something properly. My first introduction to software engineering, I guess.

I spent the next while tinkering with random things, until I started my next major project, Aesalon, a month or two before my sixteenth birthday. I worked on it for the next eight months or so, and it topped off at about 17,000 lines of C++ before I started rewriting it.

Aesalon is actually, IMO, a pretty impressive project -- it's definitely one that I'd hesitate about starting nowadays. It was originally a dynamic memory watcher, using binary injection to insert some profiling code before and after each call to `malloc`, `free`, `realloc`, and `calloc`. It definitely taught me a lot about how Linux loads and executes programs; I ended up essentially writing the backend for a debugger (including break/watchpoints, reading the symbol table, parsing ELF headers, the whole shebang) and even wrote my own Qt graphics canvas (the stock Qt graphics canvas doesn't work very well past 100,000 objects, and I needed to display 1,000,000 . . .)

It was also an education in software engineering. Designing a system of that scale taught me a lot; I reinvented the observer design pattern, the visitor pattern, and about five others. I had to deal with pool memory allocators, ugly codebases (all my own fault), refactoring, and APIs. It's definitely the biggest project I've ever written, and I'm still working on a rewrite of it; the project page is up at [1] if you're interested.

I'm eighteen now, just finishing up my second year of University (studying computer science and mathematics), and . . . it's scary to realize that I've been programming for more than half my life. Longer than some people around me have been doing long division for.

Anyhow, thanks for the trip down memory lane. I haven't revisited a lot of that in a while.

Happy hacking!

[0] http://www.libertybasic.com/

[1] http://www.ethv.net/projects/aesalon

Good sir, are you human?

This is incredibly awesome! At age 12, I probably didn't even know what programming entailed.

I really wish I did though.

I haven't had my DNA sequenced (yet!) so I can't answer if I'm human or not. I suspect I am, though, and simply had the good fortune to be given parents willing to foster an interest in scientific and mathematical subjects.

Wrote my first program in FORTRAN for a physics class in college. 1975.

I'm 21 and I started coding 2 1/2 year ago. Though my first tries were on my TI Voyage when I was 16. But those programs were basically a bunch of if/else statements that printed some text.

I started with BASIC at age 8 and then 6502 assembler around age 10. Sadly I failed to optimize those years of ample spare time, but I did come away from it with a sincere love of code.

Hoooo memories... I started programming in Basic on an Apple IIc. Great machine, built like a tank and so cute with its squared monochrome display. I should by one on Ebay for the fun :)

8 years or so. I was inspired when I read the readme of a server monitor that someone wrote for Medal of Honor Allied Assault. He referenced c++ in there and that started the snowball.

I am more concerned about how long I have been NOT programming!

It must be like a month since I last programmed, and even then it was just a little ProjectEuler.Net

I need to get my hands dirty again, I'm losing touch.

10 y'old, with a C64 and using basic programming language SYS 64738

I started with an i486 hand-me-down from my grandfather, creating VB4 apps to steal my classmates' AOL passwords and do other generally obnoxious things that 12-year olds do.

did a FORTRAN course 3 years into a physics degree. In order to avoid using emacs over X11-forwarded SSH within windows (yes, this was how the course recommended you work.....) I built a proper computer (as opposed to ancient laptop which had been fine up to then) and installed openSUSE. I have not stopped playing with code since, and my first job on graduating was as a developer (although I've since quit to do a physics PhD that is mostly python programming.)

If you are programming for less than six months without previously knowing the industry and you already know HN, GH and SO you are truly lucky, you are in for a classy act.

I started with LOGO in 1989 and BASIC in 1992. So, 20-odd years or so. And still at it!

Though, I've got a lot less time to focus on it now, with all sorts of other worldly responsibilities.

Not a programmer. I read Hacker News just cuz it's interesting.

1980. Junior High. "Brand new" PDP 11/44 running RSTS via a DECWriter II terminal over a 300 baud dedicated line modem.

Still have some of the green bar paper with the logon headers.

1968, IBM Quiktran, Germantown High School, Philadelphia. :-)

Started learning to code with Turbo Pascal when I was 10 and I am now 30. Which puts me in the 20+ years bracket . . . holy crap I have been coding for two decades!

Started my freshman year of high school with QBASIC and C++. Moved onto Java 2 years later and finally C, Haskell, Python, and Assembly once getting to University.

31 I have claimed 10+ but could argue for nearly 20+ as started with basic on a spectrum, however I had a hiatus in my teens before I got involved again properly

Does HTML count as programming in this case? I started when I was 11 and didn't do anything more complicated than some very basic JS until I was 14.

Been programming since I was 13. Started off with Visual Basic 4, stuck with it until dot net. Now I hack on ruby, python, PHP, and JavaScript.

What constitutes one year of programming? Writing at least one line of code per day for a year? Writing at least one program/script in a year?

Started with Commodore VIC-20 listings in magazines.

I wrote some of those in the early 80's ... Rhino, and Mother Hen. Ah, those were the days :-)

I wrote my first lines in C at the age of 14. Currently I've been programming Java for 6 years in different companies and as a freelancer.

1978 ... BASIC (ugh!) on the Commodore Pet (back in the days before companies checked product names' meanings in other languages :-)

I'm 22, and have 'programming' since I was 6 years old. Professionally for 2 years. QBasic -> Visual Basic -> Ruby on Rails

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