Ask HN: When did you realize your passion for programming?

I'm wondering because it seems to have a considerable barrier to entry, at least compared to other less intellectually rigorous fields.

So what was the turning point that made you realize that you had a passion for the hacker lifestyle? Or was there no distinct point in time, just a gradual increase of interest?

  • I started as a cracker. I cracked sharewares and games for all the kids in school and was somewhat sought after. I ruled the schools' Novell LAN with an iron-fist and a well-stocked boot floppy. Sure, I was mostly more talk than walk, bragged a lot; but on several occasions, I was able to pull off some stunts before a thankful audience of "cool kids" (you're welcome, Imran ;-)

    But as I got better at reversing, I needed more sophisticated tools, and I needed to write them myself.

    I usually did my cracking on request, cobbled up something quickly before class or early in the evening, and took floppies of keygens and patches with me to school in the morning. I wasn't exactly a jock, but I was cool; had gelled hair, baggy jeans, a walkman, wore sunglasses in class, etc. Pretty much riding on Neo's coat-tails, thanks to the then new movie, The Matrix.

    But I distinctly remember one winter when I didn't give a shit anymore. I was developing my own x86 disassembler and had hand-written opcode tables on my wall. I remember waking up later and later for school, not bothering to dress, avoiding friends, and refusing to take crack requests.

    I pretty quickly out-grew all my familiar tools and techniques. The official Microsoft and Intel documentation wasn't cutting it. I was fedup with crap "popular opinion" in the assembly-programming fora. I realized all the crackers and black-hats were mostly full of shit and didn't know what they were talking about. I "felt" my tools were primitive, and there was more to life than mastering the quirks of crappy compilers and assemblers from MS or Borland. I had just watched my treasured knowledge of MS DOS go obsolete, none of the old tricks worked.

    So I bought myself a bootleg, Xerox copy of the Dragon Book. Soon after, Tanenbaum's OSD&I.

    Boy met theory, and boy had to grow up fast.

    I realized I loved programming when I no longer did anything else :-P

  • For me the turning point was when I realized that programming gave me a nearly infinite budget in terms of logic components that I could re-use without desoldering the circuit boards again. Before then it was all 74 series logic ICs and lots of scratching to break traces on pre-etched boards or routing my own boards with tape. Software is so much less messy, and you get to improve the end result without having to turn that neat board in to an ugly one, when it's done you can't tell how much it was 'refactored'.

    It also saved a lot of money in parts, and when you're on pocket money and in to electronics a computer is actually cheaper in the long run (even if the up-front was substantial for me at the time, from my news paper route).

  • In 2-3 grade, my tiny little school had a single computer. It was a DOS-system (circa 1989) and although it was cool, we were only allowed a few minutes of strictly monitored time on it and even then, it was pretty limited.

    The next year, I switched to a much larger school and was enrolled in Gifted class - where they had a Mac with HYPERCARD.

    The whole Mac + HyperCard experience was mind blowing. Technology went from something of limited use that I was afraid of, to this amazing thing you create with (back then, even changing the desktop icons was a creative art).

    The Gifted teacher let me take the 500-page HyperCard manual home and that's pretty much where I lived for the next few months. A few times a week she would come get me from normal class where I would then, after sludging through her regular assignments, get 10-15 minutes to type out my experiments and ideas.

    Til this day, I'm still just that little kid pounding on a keyboard. :D

  • When I entered high-school at the age of 12 (15 years ago) someone in class showed me how to draw circles on a screen with QBASIC. I was instantly hooked.

        SCREEN 12
        CLS
        CIRCLE (320, 240), 100, 15

  • In high school I programmed a 1337-speak translator, a hardy-weinburg equilibrium simulator, and a spaceship game. I really loved building things.

    But then in college I stopped programming for whatever reason. I guess I didn't think it would make a good 'career'. This was a huge mistake. I got a lot of advice near the end of my education to get a job that I was passionate about, where what I would be doing was something that I would do if left alone.

    I looked back at my life and one of the biggest things I enjoyed doing was programming those little applications in high school. All of that programming was entirely on my own and it was one of my favorite things in school.

    So, about 3 months ago, I decided to get back into programming and have been working a few really fun projects, including an API for the Stanford Parser http://nlp.naturalparsing.com

    Lessons learned:

    1) go after what you are passionate about (obvious)

    2) its not always too late to pursue your passion and learn new things (not always obvious)

  • My passion for programming peaked in middle school. I'd pull all nighters building cool little apps in Visual Basic. I was just amazed I could build real apps that kinda behaved like other commercial apps.

    Few months into high school, I started getting requests for contract work on RentACoder, a site launched by code sharing site planet-source-code(where I had a lot of submissions). I still loved programming. But overtime, I became a lot more conscious of the $ amount and optimizing for making a business versus learning programming.

    Nothing bad, but my passion just diverged significantly. I went from being the guy who told his first dozen clients he didn't care for the money and probably worked at a dollar an hour for many of the initial contract projects...to a guy who was hiring full-time dudes offshore so I could maximize rev.

  • When I was 8 or so I found a book in my school's library about making computer games with BASIC. I tried some of what I learned from the book on our home computer, and after running into some problems, I asked my brother for help, and soon discovered that all of my brothers and my father had done the same thing, and they were all anxious to teach me what they knew. We emigrated and bought a new computer, and my new school didn't have any books on programming and our new computer didn't come with BASIC, and so for my birthday I got a set of C/C++ compilers and some books. Now it's my career!

  • I tried to recreate SimCity and ActRaiser in BASIC using ASCII graphics when I was a kid. My parents bought us a good computer, but would almost never buy us games. (I played these two games at a friend's house.)

    Trying to recreate SimCity was the perfect thing for a 13 year old to do because it really gets your brain around modeling complex systems -- and sets the stage for OOP -- even when you fail miserably. :-)

    Later my interest was rekindled in college when I tried to create a neural network in Java from scratch. Again -- failing miserably and enjoying every second of it.

  • When I was 12 someone gave me a very old Z-80 machine. The only disk I had for it with a programming language on it was dBASE II which supported scripts, but the computer also came with a very thin, informally written dBASE II programming introduction. Although for a proprietary database script language, the author of the book (alas, I cannot remember the author's name) did a remarkable job of introducing basic structured programming concepts like loops and select statements.

    I did not so much learn from the book as experience a cascade of Earth shaking revelations from it; it was as if each concept were something already wired into my brain, and the words from the book activated mental subroutines that were waiting to be awakened. (This makes more sense if I point out that I had spent every waking moment since about age 6 up to age 12 obsessively trying to work out in my head how computers and programming worked without actually having access to a machine (my family was too poor to afford a computer in the 80's) and so reading the book was a process of discovering vindication of things I'd only been able to speculate about.)

  • My neighbor got a Comodore PET around Christmas of 1979. I was 11, and I knew the minute I saw it that I wanted to know everything about it. When my neighbor wasn't home, I would sneak into their house via a basement window, and teach myself BASIC by typing in programs from various magazines. A few years later, I convinced my parents to buy me a Comodore 64 for about $600. This was a ton of money back in the day, it was more than our family's color TV cost.

    When I got to college, I wanted to be a Electrical Engineer, just like my neighbor, but I didn't do well my first semester. I switched to computer science because it was easier. 3 years later I was porting VAX Fortran to a Cray YMP and couldn't believe that people were paying me to do it. I would have happily done it for nothing, just for the chance to run code on a Cray.

  • I was interested in computers around age 17 (when I attended a vocational electronics school in the mid-80s), we made simple circuits and a few simple programs in Basic.

    I got more interested in my early twenties, a friend of mine was a programmer and the computers an individual could afford became more powerful. (I was never very interested in Commodore 64 and its ilk, they seemed too constrained to be useful.)

    I started programming in my late twenties, when I attended university and got a CS degree.

    I'm not still not entirely sure that I have a passion for the hacker lifestyle. My view today is the same as when I was a teen - computers and programming can be very useful tools, but I find tools interesting only to the extent that they can help me solve an interesting problem.

  • When I started writing VBA macros for excel spreadsheets at work. The gratifying thing was that dozens of people were immediately using the things I built and productivity was measurably increasing - while not having to worry about rigorous testing or anything like that. Someone on an excel help forum had told me I'd need to use VBA to do what I was originally asking, and when I did I seemed to... Excel myself.

    I'd been primed by some brief previous experience programming in one year of highschool and when I was a kid with a ZX Spectrum. Not sure why I didn't get 'the bug' earlier. Probably lack of extrinsic motivation.

  • I would say that it was in 1969, although I wrote my first program in 1964 or 1965.

    When I was a soldier in the USArmy I spent the latter part of my enlistment as an assembler programmer on a UNIVAC 1005 computer (4K memory, 80 column cards, ...). At some time during that experience I decided that when I got out of the Army (in 1971) I would go to school on the GI Bill and study computer science. That's exactly what I did.

    I have been programming professionally since I graduated from UMASS, Amherst in 1974. If I have my way I will never stop programming.

  • When I was a kid I played with lego's. I followed the instructions line by line, never missing a step and making an exact replica that was on the box :) Programming in it's simplest form.

  • In typical girl style I'll say that I never realized I had a passion for the hacker lifestyle. In fact, if I think about it explicitly, I eschew it. It's rather that I've fallen into it by being good at programming, enjoying building something out of nothing and solving problems and also like making good money. So I code all day and code all night to accomplish these unrelated goals and fancy myself the unhacker hacker.

  • A TI-83+ silver edition was my first programming experience in 8th grade. All I knew was TI-basic with its 2 character labels for goto and one character variables. I tried to program a game and filled up a page with notes on what the code at the 100 different labels did... you can imagine my shock when I first saw functions and arrays in C!

  • In high school. Actually not in school because school didn't have any computers.

    There was a business machines store with a Commodore PET in the window, and a Radio Shack with a TRS-80 Model 1 on display. I was allowed to sit and program on them in return for answering any questions the customers asked of me.

  • I loved playing video games and I wanted to write my own. When I was 9 I learned HTML and took an online C class (which both got me hooked), then I tried Java and was scared away by the look of the "public static void main" of all things, so I went with C++.

    Yes, I realize how utterly backwards that is.

  • In high school. I joined an online community and started building a (hideous) website related to it on Angelfire. Went from HTML to Javascript to Perl to the Wonderful World of Linux, all within a year or so. Now I'm primarily a PHP dev but I tinker in everything from Python to Ruby to plain ol' C

  • High school, TI-89 graphing calculator. Made some games using the built-in BASIC, then moved on to C. Twiddling bits to read input registers and write framebuffers was incredibly educational; that calculator taught me more about programming than math.

  • 1981 at age 9. I finished a computer summer camp curriculum in the first week, then audited college computer classes for 3 years. I still remember late nights sitting at a giant VAX terminal working on my algorithms homework at age 10.

  • This did it for me:

      10 PRINT "DAMON"
      20 GOTO 10
    
    I think it was 2nd grade at the school library. Both computers constantly had some witty phrase infinitely looping down their screens...

  • It seems that everyone here started programming at the age of 7, reverse-engineering at 12 and hacking banks by High school

    Anybody who started late, and still like it?

  • After I started working :) (i.e. after I got my job).

  • I created some AOL "progs" in VB6 that did stupid stuff like scroll in the chat and faded your text different colors.

  • I ran out of games on my C+4, when I was six. My father helped me write a simple BASIC program, and I was hooked.

  • HyperCard