I was wondering what first interested you all in programming.<p>For me? My cousin showed me how to use AOL Press back in the day and I started making random fan/rom/emulator websites. It was on from there and I haven't closed notepad since. =P<p>How about you?
Shortly after my parents bought a new Macintosh, I found a program on it called Hypercard. It was a RAD tool that included a scripting language with flexible, English-like (verbose!) syntax. I starting digging around in the source code of the demo apps, and it kind of snowballed from there.<p>I took quite a while off after being taught that "real programming" meant C or C++ ,and later Java. The thought of trying to write interesting applications in those languages was unappealing. I discovered PHP when I needed server-side processing on a web page, but didn't find it very satisfying.<p>A few years ago, I heard that some guy had created a spam filter that actually worked. I read some other articles on his site, and he kept talking about a programming language called Lisp. I had heard of it, but thought it was dead. I decided to give it a try, and I haven't turned back since.
A big influence on me was the hacker culture on AOL. This was around the time AOL 2.6 or 2.7 was current, and there were many ways to modify the AOL software to do very cool things.<p>After AOL released version 3 of the AOL client (which closed a lot of the hooks for illegal addons), I wrote what might be the world's first searchbox for web browsers. This was when I was a teenager and AltaVista was still the largest search engine. The program I wrote was a small AppleScript application that registered an "av" protocol with Netscape Navigator and Internet Explorer so you could type "av:knitting patterns" in the Location bar and have that string sent to the AppleScript applet. The script received the string, looked for what came after the "av:" and computed a full URL to send it back to the web browser. The whole process was invisible to the user, as long as the AppleScript applet was running in the background.<p>It was a very simple script and I released it as shareware. I later built a search plugin architecture so users could add their favorite search engines, and the whole experience was a huge lesson in programming, testing, documentation, distribution, customer support and marketing, and I was suddenly buried in work.<p>Then Apple developed a plugin architecture for Sherlock and I started getting fewer and fewer shareware registrations. That's what essentially killed my shareware product, but the entire experience was very exciting. I was hooked and have been hacking ever since.
I was six years old and sitting in my father's lap reading while my mother video-taped. At some point I playfully smacked my dad, he playfully smacked back and I began to cry. Afterwards, my mom said something about editing the video. In my mind, I understood her to mean she could somehow alter the video... you know, change my crying into smiles, laughs and lollipops. I still can't get over how much influence that single misconception has had on my life.<p><i> Cut to three years later. </i><p>A good family friend gave me an old Apple IIe in 1994 (I was 9). I would break it, and then watch him fix it. It was fascinating, and I finally had my chance to figure out how to make machines do what I wanted.
I started on computers since before my earliest memory -- my parents got me SimCity and I played it every chance that I could. My inner hacker spawned in stages, though, I'm not sure there was a specific event. There were more general things, like loving to read, but there were also situations where I had to figure out how to let the library let me have an adult card. It's these that make the better anecdotes.<p>Here are some examples. I used the computer so much as a kid that my parents used to try to stop me. First they put a password on the boot-up. I read everything I could until I learned to flash the BIOS. Next they installed this enuff computer time restricting system, which I spent a ton of time breaking. Over a period of two or so years, my actions provided the first line of bug testing for the Enuff programmers. Boy were they furious. Eventually I built a keystroke recorder, and that stopped that for a while. They couldn't keep me out.<p>Other hackerly things I liked to do included turning the scripting languages in games into other games. I wrote a really cool RPG in Starcraft, for example. I also learned how to automate tasks in 3DSMax, which was really fun.<p>At some point I hacked college entry, and I was in there way earlier than authorities thought that I should have been. By this point a 'hacker' identity was already written for me, but most of the interests started way, way earlier.
It's Bill Gates' fault.<p>I had an Atari ST. It had a simple, elegant GUI desktop and there was no reason for me to ever stop playing Uninvited or drawing in DeluxePaint. I would have been about 9. I'd save up my pocket money and buy $20 imported ST Format magazines with headlines like 'ATARI VS AMIGA: WHO WILL INHERIT THE FUTURE OF COMPUTING', and read about MIDI and DTP.<p>Everything worked so I had nothing to fix.<p>Alas the ST broke. And it turned out neither Atari nor Amiga inherited the future of computing - nobody made games for Atari ST anymore. I got a 286 12 running DOS 3 from my mum, and was plunged into boot disk hell trying to free that precious 640K of RAM for my games. I started editing batch files and using 'errorlevel' to make little menus so I could use less floppies (they were expensive). Then I had a 386 where the video card slipped out all the time. So I opened the case and slipped it back in. I eventually got a feel for hardware.<p>The computer teachers at high school were terrible. I didn't like logo, as I couldn't see anything practical. We learnt Pascal later, but the teacher was always away, so we learnt from the internet and another kid who showed us. <p>I read a lot of computer magazines. I wanted to write for computer magazines.<p>I finished high school and did a certificate in business management the same year. I did an MCSE at 17, got into tweaking a lot, then found Linux, the tweakers dream. Tweaking lead to scripting, scripting leads to hacking. <p>I'm actually really glad I got into Linux then, and I'm glad I stuck with it. At that time, everybody was talking about Win32 and Visual Studio. It seemed like you had to have an MSDN subscription to make software that was considered desirable by the masses. Now the internet is considered the biggest part of computing, and more often or not it's based on OSS toolsets and languages. <p>PS. Atari rocks all over Amiga. :^P
When I was two years old my dad bought an 8086 and installed ChessBase on it. I loved pushing the arrows keys and watching the pieces move. Then the summer after kindergarten my mom bought me a QBASIC book. I had only recently learned to read so it had to be read aloud to me at first, but I understood it. I pretty much didn't get up from my terminal all summer. By the time I started first grade I was comfortable with nested loops. I still have a friend whom I met in fourth grade who started programming as early as I did, but in REXX. I don't put much stock in Piaget :-)<p>It wasn't until around 1999, though, that I was really able to start becoming a hacker. That was when I finally got my own computer rather than sharing one with the family, and immediately put Linux on it.
When I was a kid I loved playing Dark Castle. It was a game for the Mac written by Jonathan Gay (I still vividly remember the splash screen). A friend of the family noticed my growing interest in computers and showed me how to decompile the game. After giving me a few glimpses of the source code he recompiled the game and then left the room.<p>I think he was fully aware how fascinated I was and anticipated what I'd do next. It was probably what every kid would have done in my shoes: I decompiled the game, made a few changes, recompiled it and was exremely pleased to see "Dark Castle - programmed by: John K" on the splash screen. <p>
I took some computer classes in junior high school (BASIC with numbered lines, flow charts, etc.), but it never really grabbed me. My teacher's dream job was to be a mainframe programmer for IBM. Imagine a fat guy that sounded like Ben Stein (and wore an actual pocket protector!) dreaming of IBM mainframes...we called him Mr. Excitement. I just didn't see the attraction. The teacher told me programs were like executable math, which turned me off even more. I hated math.<p>Then I became somewhat of a science geek...Westinghouse, ISEF, etc. At the science competitions, there was a large number of stereotypical nerds (socially awkward, overly interested in grades, suck-ups, etc.) and a small group of people that were into 'hacks.' The smaller group tried to outdo each other with 'applied science pranks.' They always had informal competitions and awards programs that ran alongside the actual competition events. I wanted to compete, so I started learning how to program and how to do some chemistry-oriented pranks. I was goal-oriented.<p>My first year at one of the international competitions, I won my event at the real awards program, and then I won the 'hacker' competition. (I programed all the hallway, elevator, and atrium lights in our hotel and convention center to strobe. It was the largest hotel in the city, so it was...noticeable. It made the evening news on all the local channels, and one of their national channels had a human interest piece about "What happens when you put a couple hundred science geeks in a single hotel.") I was hooked.
Thinking about it, I may not be a hacker in any sense of the word, except obsessive focus on solving a problem; computing for computing's sake was burned out of me within a year of my starting, but what got me going was:<p>The mystique of this computer programming stuff done by other high school scientists in a NSF Summer Science Training Program (SSTP) in the summer of 1977.<p>Coming back home to a high school computer programming course (punched card "FORTRAN IV" on an IBM 1130 (numeric IFs, but, hey, it fit in 8KB and didn't require a disk)) taught by ... a coach.<p>A coach who gave us a not in the book no notes that I remember blackboard lecture on two's complement representation and arithmetic that I now realize was <i>invaluable</i>, even though I've never written a line of assembler in my life (useful for debugging (especially before dbx :-), but the wrong level of abstraction for me).<p>And the above by then a decade obsolete computing environment sending me straight to the library stacks to e.g. learn about Structured Programming, which was all the rage then.<p>What truly set the hook was Harvard Summer School in 1978: a PDP-11/70 running a very well hacked up V6 (command name and argument completion and hinting!) which was a rich environment with the good Peter Langston games of the time (except Empire) and of course Adventure.<p>Buying a DECTAPE then because it was cool. Learning "rm -rf" and being very glad I had bought it ^_^ (to this day I'm a fanatic about backups).<p>And then getting introduced to MULTICS, ITS (including Zork) and Lisp Machines---and wondering whey UNIX was winning and MULTICS was all but dead, leading to a life long study the determinants of success in the area discussed by The Rise of Worse Is Better. Even as a serious scientist (chemist) who can't play games any more due to mild RSI, this stuff is just too damned fun to ignore.
I wanted to resolve the 'Einstein' or 'Cabins' puzzle so I got an Aim65. I went through Pet, CPM, bubble memory, Forth, Dr Jobs, Turbo C, Smalltalk and was very near to a solution with microProlog (it came as an 8"floppy). Then Winston and Mellish ruined it for me. It's done even better now with amb and monads but life has never been quite the same.
Acorn BBC Micro and Sinclair Spectrum. BASIC. Various Usbourne books. I wrote a text editor on my Spectrum in BASIC. It was too slow at keeping up with your typing, so I figured out enough about Z80 assembly to write a little routine to speed up the slow bit.
Later I made a sort of GUI front-end for my Spectrum, inspired by the Macs at school.
I thought programming was a way to understand how these neat machines worked, so like many other 10 year olds, I tried programming BASIC on an 8 bit (Atari 600XL with the awe-inspiring (not) GTIA chip).<p>But my first real taste of hacking came in grade 7: understanding and implementing a 1-99 counter using seven segment LED displays, a 555, and some 7447 BCD->7 segment LED driver was lots of fun.<p>
And then in high school, it was all about understanding the Amiga.<p>Looking over the Amiga schematics in the Hardware Reference Manual and figuring out how the low pass filter circuitry worked was fun.<p>Writing my first 68k asm program to do sine waves and programming the Amiga's coprocessor chip to do on the fly scanline colour changes was really cool too. <p>PS - for all you Atari ST lovers, here's 25 cents - buy yourself a real os :)
I was playing with my dads IBM 5150 PC back in 1988 when I was 6 yrs old, I remember that. I was too young to do much though, mainly just play a spelling game.<p>My introduction to hacking was in 1992 when my dad purchased a 486DX2 PC. I was writing batch file menus in DOS to load files, etc. It didn't take very long before I started trying to overclock it and stuff. <p>Looking back on it, I'm very surprised my dad trusted me to mess around with his computers like that, given how much they cost back then... Honestly, I dont think he had a clue as to what I was doing. But I'm grateful at the same time as I learned a lot. I think kids need that freedom to experiment when it comes to hacking.
Discovering how Phish tapes were being shared through the internet was my first hacker experience. I was 15 when I got into this scene thanks to an AOL account my parents had. This was pre-napster and it was the only way to get a copy of live music that was not available in the record store. Learning about the whole process of taping a show and distributing it with trees of people who made copies of the show for people underneath. A lot of it was social networking since the tapes were sent through the mail, but it was all coordinated over a newsgroup and email.
I wanted to draw the Mandelbrot set -- as fast as possible. This led to an interest in code optimization, which led to an interest in numerical algorithms, which led to an interest in parallel computing, which led to an interest in computer security, which led to an interest in string matching and data compression algorithms.<p>I haven't done much in the way of code optimization lately -- I pretty much gave up once the P6 core came along and started aggressively pessimizing my code by executing instructions out-of-order -- but I'm still quite interested in all of the rest.
I always liked taking things apart, putting things together, and putting things together to make them do things they weren't originally intended to do. I liked to draw, paint, make stuff.<p>When I discovered programming, I saw it as the much the same thing, only better; being digital, you have fewer arbitrary constraints than the Real World. Imagination was the only real limit. <p>Software is opinionated reality, the ultimate playground and toy chest. I'm still surprised that more people don't find it intrinsically fascinating. Go figure. :)
Being given a Sharp PC-1500 pocket computer at age 6, and messing with it enough to learn BASIC via "brute force". A few months later being given a manual that filled in some of the blanks.
Initially? Learning Basic from a really motivated teacher who said in 20 years that everyone would need to know at least basic programming since everyone would be working on a computer for their job. He wasn't that far off.<p>What crushed my inner hacker? University computer science where everything was very strict and restraining, or perhaps it was my focus.<p>What re-sparked it? Lisp briefly for inspiring me to code in a better way. Then Python :)
I read a lot of science-fiction as a kid. For me and my brother computers were just as fascinating (and unattainable) as space travel and aliens. When it actually became possible for ordinary people to buy a computer (the ZX81!), of course we saved up for it. When we got the computer, of course we had to learn how to program it, since it didn't have any software.
I always thought about hacking as breaking into other peoples computers.<p>It had to be one of these two:<p>the AOL Homepage maker(the wysiwyg) or <p>the homestead pages(ex:whateveryouwant.homestead.com). <p>I made a homestead page about the origin of mankind for my History class in the 7th grade. This made me think that almost anything could be done on the web, and it has become a reality since then.
Having access to a computer (a DEC Rainbow). It's strange, but as a kid it's quite difficult _not_ to be drawn to hacking if you've got the environment and tools for experimenting. By the time I was 15 I've already done some Logo, Prolog, Basic and Pascal .. from there it was impossible to stop.
Writing calculator games on a ti83 during freshman math courses. I still remember that my programs all used single letter variable names -- I think there was a technical reason, but maybe I was just incompetent -- and I had a piece of paper for each program that tracked which meant what :)
Wow, do I feel old. <p>Using the DOS command line with my Dad's Compaq luggable with <i>dual</i> 5-1/4" floppies, baby!<p>The first true coding that I did was making a graphics program in basic. I thought it looked like Star Wars hyperspace scene. No one else agreed with me, though.
When the physics department got their own computer, a DEC VAX/VMS. I was a post-graduate with more-or-less unlimited access. It was love at first sight.