Hacker News new | past | comments | ask | show | jobs | submit login
Poll: How long have you been programming?
68 points by zachlatta on April 6, 2014 | hide | past | favorite | 92 comments
Includes years not programming professionally.
10 - 15 years
302 points
20 - 30 years
223 points
15 - 20 years
218 points
7 - 10 years
148 points
30 - 50 years
139 points
3 - 5 years
130 points
5 - 7 years
126 points
2 - 3 years
55 points
1 - 2 years
41 points
6 months - 1 year
16 points
Less than 6 months
10 points
50+ years
9 points



I've been programming for about 12 years (rough timeline of my first ~5 programming years: TI Basic -> z80 assembly -> C -> C++ / PHP), which, as of one month ago, is exactly half of my life. I also have a M.Sc. in CS (PhD dropout).

I've been working as a web engineer in the SF bay area for about two years. Before that, I was doing academic research, freelance, indie game development, developing interactive systems (openframeworks, processing, etc.), contributing to open source projects (mostly in the Linux world), worked as an iOS dev for 1.5 years, and a few other things.

I'm noticing two things:

1) I know more than a lot of people my age in SV about things completely unrelated to startups & web/app development, like ray tracing, assembly, the Linux kernel, how an X server works, the history of UNIX, obscure programming languages like APL/Prolog/Ada/..., APIs no one talks about like Qt, theory of computation, formal algorithm verification, etc. etc. etc.

2) But when it comes to things specific to working as a web engineer in the Bay Area (Agile, TDD, etc.), I still have tons to learn.

It's good and bad: good because I'm learning a lot and having fun doing it, but also frustrating because I don't get to use 90% of what I know on a daily basis. It also often feels like web dev is just not on the same intellectual level as something like graphics programming, which is frustrating to me (although I feel bad, elitist, and potentially misdirected for making such a judgement).

Anyone in the same boat?


I'm not quite in the same boat, but everything I do these days is related to webdev, and pretty much all of the sites I work on are not technically difficult (data is in the hundreds of thousands of database rows, tasks are straightforward "take data from here, do very basic aggregation, and put it there"), so I can relate to the sense that lots (not all) of web development is not on the same level of complexity.

The thing that makes it seem that way is that webdev has a low barrier to entry. A person can get a website doing pretty impressive things from a user's perspective without understanding a lot of the fundamental pieces that are helping them along.

What I've noticed is that webdev can be very complex, but in not-so-obvious ways. For example (and none of these are exclusive to webdev):

- Web development brings together a stupid amount of different components. The number of acronyms between a string of text on your server and a rendered webpage on your user's computer is absurd, and learning the ins and outs of all of them is daunting. There's server software that actually runs your web app, the layers of networking that get the output to the user, the mini-Operating-System that is the web browser to render your output, and more.

- Websites are very often meant to be seen by tons of people at the same time. Everyone wants to make a popular website, but that brings with it concurrency and scaling problems.

- Most websites don't get to choose who their users are. They come with many different types of software, and have many different types of hardware, from many different places around the world. This has performance issues, localization issues, and UX issues.

- The web technology stack evolves quickly for a bunch of reasons. You may have a strong opinion of trying out new tech vs. keeping a stable stack over the long term (what does long term mean for you, anyway? 5 years? 10? 50?), but there's benefits and disadvantages to either side, and generally it means you have to keep tabs on the latest developments so that you don't fall behind.

If I had to shorten this, I'd say that the complexity in web development lies not in depth, but in breadth. An effective web developer is a jack of all trades.


IMO, developers underestimate the actual costs of adding a new tech/layer/interface to their design which is why they use "a stupid amount of different components".

I suspect that's also why new architectures/langues can catch on so fast. They don't really have to be much better just avoiding the cruft is a huge leg up until the next wave of small 3rd party library's show up and tracing a bug can once again involve tracing though 50+ files.


Just to clarify, by "stupid amount of different components" I meant more that a typical visit to website can involve tons of different, standalone components: Database, application server, cache, load balancer, CDN, browser, etc.

Your comment seems more focused on libraries, frameworks, and languages, but I may be reading it wrong.


As a counter example. This website does not use a CDN, cache, load balancer, or from what I understand even a Database yet it's ranked ~1,515 in the US by alexa. Which is probably why it's also fairly low maintenance.


That's a fair point, although there's a few caveats (HN uses CloudFlare I think, and replace "database" with "filesystem" and it's still another component to deal with).

My counter-argument would be that HN is able to avoid a lot of the complexity due to the nature of what it does. Oftentimes the value in adding a new component is maintainability vs doing it the simple way, which is one of the tradeoffs I was referring to earlier. Imagine scaling Google Analytics.


Its different skills. I used to work on stuff I think is pretty "sexy" (software defined radios, networking algorithms, line rate packet analysis in high end network equipment), but I don't have the spatial skills at all to do web or GUI programming.

That said, it is a little unfortunate how the trend towards hyper specialization and buzzword of the day-ism discourages people from being what I consider "well read" in terms of CS education.


I'm _still_ writing z80 assembly for those calcs! Want to help?

https://github.com/KnightOS/kernel

How about a kernel with preemptive multitasking, dynamic memory management, a tree-based filesystem, cross-platform binaries, and the comforts of Unix?


Creepy... That is the exact progression I had... Well, if you throw perl in there around the C/PHP part. What projects did you do with z80? I created the Usgard OS/shell with some stunningly brilliant kids from around the world for the TI85.


TI Basic -> Z80 ASM here too! Love it. I wrote a lot of stuff for the TI-83.

I was out of coding for about 10 years (traveled, went to business school, worked in finance). Then I got back into it by moonlighting for a startup. Now I'm CPO of a startup and write backend stuff in Ruby. I rarely get to use any of my old ASM coding chops.


I learned to program in 1970, at age 12, when my stepfather, a physicist, took me to his office on Saturdays, sat me down at an ASR-33 Teletype, handed me the manual for Basic on a GE Mark V timesharing system, and let me do what I wanted.

After a while they switched from the Mark V service to a company called COMShare, whose timesharing system ran on an SDS 940. They had several languages on this machine -- Fortran IV, I think, which I started to learn so I could help my stepfather with his numerical codes; Snobol, which I didn't do much with; a long-forgotten language called CAL, which I learned much later had been created by Butler Lampson of PARC and Alto fame; and a macro assembler. I'll never forget opening the macro assembler manual and seeing an example that started:

   MUMBLE MACRO
I don't think I figured out at the time what a macro was or that that this was a declaration of one, and its name was "mumble". Nor did I quite realize that "mumble" was just a common metavariable. These mysteries were revealed later in my education.

A couple of years later, my stepfather's company switched to using a CDC 6400 via a remote batch terminal, consisting of a card reader, a line printer, a CRT console, and a 9600 bps modem -- many tens of thousands of dollars' worth of equipment, I'd guess. The CRT display would sometimes go on the fritz. I figured out where to hit it with my hand to make it come back on.

I got pretty good at Fortran and started to learn to read the 6400's assembly language. At one point I started to study the optimizing Fortran compiler's output. This made a great impression on me as I couldn't imagine how it did some of its optimizations. To me, then, that was AI.


1977. 2nd grade at Lucille M. Nixon Elementary School in Palo Alto. We had a class where we learned how to program in BASIC on the school district's HP2000 mainframe. I loved it. Within a few months I knew more about programming than the instructor. Two years later I wrote my own bulletin board software in assembly language on a CompuPro that my dad and I bought at a swap meet. Then I hit puberty. In those days it wasn't ok for girls to be nerdy and play with computers. I succumbed to peer pressure. Eventually I went on to a career in biology. Knowing how to program has served me well, but it never became a career. I sometimes wonder how things might have turned out if I had been born 20-30 years later.


21 years ago, my Dad brought home a used 286 PC that he'd picked up from a friend's moving sale or something. Dad already had his own 386, so the 286 ended up in my room. It had a black-and-orange monitor, 1MB of RAM (or maybe it was 2MB, I don't remember exactly), and no operating system.

The problem? I had to reinstall MS-DOS on that crap, but I couldn't pirate Dad's copy because it came in 3.5" floppies and my 286 only had 5.25" drives. (IIRC Linux was not compatible with 286 PCs, either.) That was the beginning of my foray into hacking.

21 years later, I still don't do programming "professionally", i.e. my primary source of income isn't from programming. But I don't care because I was never in it for the money, I just like to tinker with things.


Minix ran on the 286, I believe.


34 years.

I learned to program by reading every page of every BYTE magazine, as they arrived at my local library. Then my junior-high school principal noticed this, and gave all of his, so I could take them home to read. These issues were roughly the size of a telephone book ^w^w four iPads and featured glorious art by Robert Tinney [1].

[1] https://www.google.com/search?q=robert+tinney


I went ahead and included my mid-90's html years because I enjoy being on the right-hand side of bell curves.


I counted everything from my single-digit Applesoft BASIC years onward. (After all, the question wasn't "How long have you been programming professionally?")


I went with years I've been paid full time as a software engineer(6 yrs) but then instantly rued that choice fondly remembering doing sprite graphics on my C64.


Started at 7 when my parents bought me a small computer toy with "General Questions", "Geography Questions", "History Questions", etc. Roughly 20 of those games.

One "game" however was "Basic". I read the manual and started writing trivial songs in basic..

Good memory, fun time!


Woah. 22 years. I wouldn't have thought that was on the higher side of this community's responses, but apparently I'm old already!

Would be longer but my intelligent parents reasoned not to give me a computer so early .. age 11 was the beginning ... I resented them for years for waiting too long, now I am thankful. Earliest days .. invented some batch file viruses on MSDOS 5.0 but was too scared to type them in. Later, typed them in anyway. Unable to find a teacher or a C compiler. Desperately trying to get a modem. Finally getting a modem. Writing POVRay scenes using constructive solid geometry and waiting 45 minutes for a single low resolution rendering on a 486 (IIRC). Sharing them with girls on the BBSs, pre-internet. Fantasizing about running a BBS, and even programming a spaghetti-code emulator in BASIC. Re-implementing nibbles.bas with flamethrowers and remote-detonation time bombs. Running to Burger King after school to pore over TCP/IP Illustrated Volume 1: The Protocols and invent new, then unknown remote OS detection techniques using ARP and ICMP. Pirating games like System Shock by scurrying up and down the street with wads of 5.25", and later 3.5" disks. Installing Slackware and laughing every time "bison: a parser generator in the style of yacc" appeared. Making all of my BASIC habits worse by learning perl. Good times.


I was writing 6502 assembly exactly 30 years ago today. Wish I still had an excuse to do more of that!


Which option did you choose?

(Yes, I'm trying to subtly point out that either the question or options are wrong)


I said 30 but, professionally, it's a lot shorter. (I was pretty young when I was writing 6502.)


Me too, I was writing label printing software for the Apple II. Even the simplest operations were a lot of work but it was nice being able to hold the whole environment in your head.


Also started with the 6502 in the late 70s, but it was entered in hex through the KIM-1. I was a teenager, and part of my brain was wired while understanding that computer.


Just over 20 years now and loving every bit of it! I started with hobby electronics and failed miserably at it, I was just not cut out for hardware, after having failed more than a few times on a simple amplifier circuit, software felt like heaven as it was more lenient towards my trials and definitely cost effective!

Blessed enough to have Indian parents who bought me a computer at unproportional cost to my dad's middle class government salary, discovering the joy of creation, the magic of computer graphics, the wonders of 3D modeling and gaming (Michael Abrash's book was my first inspiration, I still have all my books from back then), pulling night outs at college computer lab, wide eyed at Internet and the black IRC chat window, ending up in enterprise software as a professional, fortunate enough to be enlightened on the intricacies of enterprise software by the veterans of BaaN software (it runs Boeing), lucky enough to build 3 enterprise software platforms from scratch and now the fourth one is by running my enterprise mobility PaaS company from India with a team of wonderful young new generation developers who beat me squarely at my old game!

Thank you for evoking all the nostalgia :-)


I remember the very first time I pushed something onto a server via FTP. Some acquaintance on a gaming forum gave me a subdomain + hosting on their server to play around with. I must have been 8 years old or so... I had no idea how it worked, but was completely amazed that I put something on the internet. I consider myself quite lucky to have found somebody patient enough to walk me through setting up my FTP client.

I started building things in PHP pretty shortly after that. Not sure how early that was, but I distinctly remember building a gradebook system for my 4th grade teacher during class. I used to finish up my classwork early and jet over to the computer to work on it. I don't think it wound up being fully functional at the end, though.

It's interesting being in my very early twenties and saying I've been programming for 10+ years. On HN this isn't very unique, but in the public-at-large people tend to look at me with either suspicion or amazement. Though, I usually immediately follow saying "10 years" with, "Though, that doesn't mean I was any good for most of them... ;)"

Fun stuff.


I fondly recall programming my cells with DNA when I was an embryo. So 30-50 years


In 1997 I was in 5th grade and curious how 'punterz' and 'progz' were made so I joined an aol chat room, someone sent me 'Visual Basic 3.0' in 47 email attachments and I downloaded each over 3 days. Got my grandma to take me to Barnes and Nobles to pick up a book on making applications and cobbled my first program together to kick my friends off AOL.


37 years and still love it. Recently reorganized out of a job, the first time I've been a single day without a job in 37 years!


Tough question... I wrote my first program on a TRS-80 in the early 80s; but it was typed right out of a book and I didn't understand anything.

In the early 90s I wrote a short text adventure on my own as part of a high school project.

My college CS curriculum had a lot of programming.

I started professionally in 1996.

I put in 20-30 years; but if you want to get technical it may be above 30.


Back in 1963, my senior year in high school, I took a Saturday enrichment class at Columbia University: programming in Fortan for NASA's 7090 (or was it a '94?). Then in the spring, they launched a weather satellite, the week after I submitted my first assembly language program, which came back with my first bug (I think I had a period instead of a comma), and there wasn't any more machine time for high schoolers... Columbia also had a Bendix G-15 which had a head-per-track rotating drum for main memory: instructions were mostly 3-address: two operand addressses, and a next-instruction address, all from the current track. Much fun to try to lay out the instructions and data optimally.


I read my first programming book almost 48 years ago. It was a programmed instruction text teaching machine language programming. Of course, it was another four years before I could actually run a program on a real computer (a Burroughs B5500 mainframe at UCSD).


The first time I had access to a computer, via a teletype with Basic, was in the early 1960s. A few years later while in high school, I took a programming extension class at a local university and I got to use punched cards, joy of joys :-)


Basic was invented in 1964 at Dartmouth. How early in the 60s do you mean?


I think it was a little before that. My Dad was the director of a think tank and they sometimes had early access to stuff. I think that 1964 was the public release date. That said, I could be off by a year or two - I was a kid then, a long time ago!


My introduction to programming was before I was 10, my dad showed me some simple stuff in Basic and bought me some Basic picture books which contained source code for entire games which you could type in yourself and run.

Those books were enthralling, each game had an illustrated background behind the source regarding the theme of the game and it got me excited about it before I started entering it into the computer.

Unfortunately, I've lost those books and can't seem to find out anything about them at all. I'm incredibly nostalgic about them and would love to get my hands on some of them again, I'd love to hear if anyone knows anything about them.


5 to 7 years. I can't remember exactly, but I was around 14-15 when I started (21 now). I lived at a country side with no internet, but I had a PC that ran floppy disks (yay Liero). So one day I was extremely bored and figured I just click around and stuff, that is till I clicked Internet Explorer and lo' behold the "No internet connection" page came up. While I assume any other person would close the browser and be done with it, I was curious to how that page knew to be there - or how was it even made.

Fast forward a lot, I make stuff on the web every day for a living. No regrets.


33 years ago, on an Atari 800 my Dad bought us. Learned BASIC from the books with program listings of games that you had to type in. All of them were for other flavors of BASIC, so had to modify them for the Atari. Then went in and modified the games to make them more fun or challenging.

Went from that to Pascal, to C, to Assembly, back to C/C++, then Java. Was still developing in Java until about 5 years ago, when I migrated over to "Architect" roles. Have since toyed in both Ruby/Rails and Python on side projects to keep from getting too rusty and to learn something new.


I am counting my time struggling with C in the mid 90s, and cracking on Perl in the late 90s. Professionally since 2002 so Right in with the biggest group of the curve so far.

And hey you with 50+ years... we want to hear from you!


Aw man, it's been about 7 years already, and yet I feel like I'm not that much better compared to when I started. Sure, I know a good deal of stuff now I didn't back then, but I feel like everything I've learned in 7 years could probably have been learned in 2-3 years. I need to take action, make it so that I won't look back in another 7 years and say the same thing. But how? I find it difficult to find things to work on that feels both meaningful, but is not so hard that I'm unable to solve them.


I did my earliest programming on a Bally Arcade console with a BASIC cartridge you could plug in. This would have been somewhere in the mid 80's, say between 83-87 or so.

But as far as "serious" programming goes... I started teaching myself C in the early 90's. Let's call it 92 or thereabouts. From C I "graduated" to C++ and eventually shifted to being primarily a Java programmer by the early 2000's (2002 or so) with a little dabbling in RPG/400, Visual Basic, REXX, etc. here and there.


Basic on a timeshare PDP-11 system (via teletype!) at school; assembly on 6502/Z80 and basic/pascal on a DEC-20 at university; basic on an IBM PC for my first paid gig; C (Borland turbo C FTW!); Delphi C++ was my entry into Windows; PHP for my first web app; and now python for everything.

Writing this, I'm struck by the progression of what we are programming. The internet of things is next, followed perhaps by more general-purpose robots. How long before we're programming ourselves?


I think I need a negative number, but not sure how large. I still want to learn to write games but still haven't made much progress in that direction.

(Though, if we count html: Maybe a decade?)


I started with gw-basic at 9, qbasic at 11. An old ZX spectrum 16K was my first computer (486 were already on the market) and "Basic for kids" was my first programming book, with some kind of mr. potato clippy thing guiding you through the language description, examples and exercises. I don't remember much about that book (or GW-Basic) but I do remember taking it to the beach for reading. I was a weird kid.


I took my first class this time last year. It was Programming in Python a 100 level course at my university and my introduction to the world of Computer Science. I fell in love and I feel like a have a lot of material to cover in such a short amount of time. Most of my friends have been coding for years now, I feel like I have to hit the ground running in order to catch up.


I started programming when I was 10 years old. Profesionally it's been more like 3-5 years though. I picked 10-15 nevertheless.

Sue me.


I kind of in the same boat. Wrote html, vb4, and made a few flash apps when I was about 10 but didn't get serious and really study until the past 5 years or so. So I picked 15-20, but I also picked 3-5.

Still trust that bell curve?


I started programming around age 10 (VB, FoxPro, .NET, etc.), then switched to FOSS, have been a Rubyist since 2007.

I finished school two years ago and I'm currently looking for scholarships (undergrad level, would like to study in North America or Europe).

Currently working for ScrapingHub, doing stuff with Python :)


Started when I was 10 or lower on a Commodore 128, by the time I was in High School I was doing HTML / LISP. Used LISP to bypass the Pascal pre-req and enter a advanced C++ course. So programming off and on for more than 20 years.

Now work as a web developer. Professionally, a bit over 3 years.


1982: I bought a ZX-81 Sinclair. No hard drive, had to save stuff on an audio tape, 1kb RAM (I bought a 16kb extension), screen definition 64x44 if I remember well. I learned coding and English entirely by reading the UK weekly 'Your Computer'. A great time!


Starting with GW-BASIC in third grade... soon moved to QBASIC, which had a fancy GUI (if you can call it that). I was lucky to have a parent who knew some programming. I was the only person my age I knew who could program a computer until I was in high school.


Same here, on all accounts. QBasic's internal help was the first manual I had ever read


Learned to program as junior in high school 40 years ago on a teletype over a modem in basic and a fortran interpreter. Coding is both faster and more interesting today while simultaneously being orders of magnitude more complex and what is expected.


1964 - my dad taught me programming on IBM EAM equipment. My kids are 3rd gen programmers!


48 years, winter quarter freshman year. Fortran II, then assembler. First job was summer of 1966, again in fortran. Huge numerical analysis programming.

Many languages since then, many domains.

Still programming. Likely to never stop.


Started when I was 7 with a Commodore VIC-20, so 31 years ago. I was curious about how things worked with it, so started making my own games.

Had a couple of generic games published for the C64 in my teens though. Back of magazine fodder, nothing great.


Does logo count as programming?


I answered the question before I remembered logo. I am sure it counts, and honestly it did a lot more for me than the C class I took in high school.


Teach Yourself Visual C++ in 21 Days (1998). Still the best version of the IDE IMHO. Took intro to CS (in C) and APCS (in C++) in freshman and sophomore years of HS. The first class was mandatory at my HS.


Visual Studio 6? Still have that installed, though I haven't done C++ on Windows in over a decade. Still remember it fondly, though, especially the debugger.


I started in 1982 or 83 on a Ti 99/4A. Began programming professionally in 1994.

I left the industry entirely for ten years due to burnout after the bubble, in 2001.

burnout is harsh. take time to live your life outside of work!


I took a Fortran (not recognized by Chrome's spellcheck) class in my senior year of high school - 67/68. I really learned with the book Basic Basic in the late 70s.


30 - 50 years, damn I feel old, I only just sneak into that bracket though. TRS-80 coding in BASIC was my first machine/language combination, I was 8 at the time.


Me also! Had a hiatus on programming for this most part in university though, otherwise would be in same bracket.


My first line of code was at 14 in 1995 with Visual Basic. Thus began my journey, my love and my curiosity for computers, networking, innovation and technology.


Started with Visual Basic back in 98, switched to java around 2003 and haven't looked back. I can still remember I thought the "Obejct" in "Object Related Programming" was referring to the nice GUI-components in the Visual Studio editor.


Apple Basic, UCSD Pascal, HP-41 stack language -- all 1981.


Similar path for me -- started UCSD Pascal and HP stack programs in 1981, Basic before that (and "stealing" copies of BYTE from my godmother, until she gifted me a subscription). I repeatedly coded a flight simulator on the HP 25 during physics class. RPN was such a pleasure!


Interesting to hear. I enjoyed programming a stack based machine a lot. Of all three environments, I remember the HP with the most fondness. I think the fun of Pascal was pretty much pounded out of me when I had to use it for a large expression-evaluator and macro-expander project later, in college.


Started with Visual Basic in middle school (when I was around 13, I'm 28 now) because I wanted to build a small Pokemon battle game...oh the memories


I starting playing around when I was 14. Now I'm 24. Wow, how time flies. Of course, I have nothing on some of you old timers.


How well does this correlate to HN age surveys?


I put the amount of time I have been getting paid to program. When I think of 20 years of web development it is kind of cool.


High school BASIC course in 1981.

Professionally? Never. Programming has always been a hobby, or a tool for the pursuit of other things.


Interesting. When I wrote my first lines, I was excited by possibilities, viewing code as a means to an end. But now, after a year or two, I often identify as a programmer.

I'm not entirely proud of this. It's like a carpenter who favors his tools over the product. A hammer swinger, rather than a home builder.


I think it's OK to be proud of your abilities. The products will come along in time, you will build them, folks will enjoy them, you'll make some money, and then you'll also learn to be glad when they're obsolete and you've moved on to the next thing.

A lot of what I did, as a high school kid in 1981, was to make mistakes and then figure out how to make good of it. What happened to me is that I kinda sat out the explosion of computer science, while studying other things that I was interested in, such as math and physics. While I'm a good "lone wolf" programmer, I know none of the skills or techniques that would allow me to function in a production software development environment. I'm dependent on a real programming team for that kind of work.


Got my start with a Sinclair ZX-81 and an IBM 4341 when I was around 13. Time flies when you're having fun.


8 years counting HTML/CSS, though, I'm not sure I consider HTML/CSS programming, so 4 to 5.


For me it's about 2.5 years professionally, but I've been doing it in my own time for 10 years.


First professional job was using the Clipper language (compiled dbase)... anyone else?


I never was exposed to programming until university, and am now a Software Engineer.


Not counting an introduction to fortran in college, since 1978. Language was GP300.


35 years roughly - started in Basic on a TRS-80 Level I.


I started in 1981 - damn, that makes me feel old.


omg I now have empirical evidence that I'm old. The top of the curve is 10-15 years and I'm beyond that now. OLD!


will be 6 years in september. UNdergrad in Engineeiring, MSc in CS. Started when I started college


FORTRAN, 1965, CDC 3100 (16K)


Almost 2 years professionally


1984. Crazy. 30 years.


started at age 8, TI-994A BASIC


Not enough.




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

Search: