top | item 5551685

I was a teenage programmer before teenage programmers were cool

24 points| wagtail | 13 years ago |zdnet.com

24 comments

order
[+] georgemcbay|13 years ago|reply
I came a bit later than this guy, in the mid-80s (I'm 40 this year) and heavily support the idea of teaching at least basic level programming to just about everyone.

I never had a particularly good role-model in school or at home for this, my programming came out of some innate curiosity about computers and robots originally sparked by my love of Sci-Fi.

When I was about 10 I was lucky enough to get my hands on a C64 which was a very big purchase for my single-mom (of 3) to make.

My progression was roughly:

C64: MS BASIC 2.0, 6510 assembly, mostly to implement my own games

Amiga 500: 68k, AREXX, AMOS Basic, C/C++ (pirated copy of SAS/C at first -- sorry, SAS, my allowance wasn't nearly large enough, followed later by Matt Dillon's DICE)

Was an avid BBSer (starting on a 300 baud modem) on the C64 and around the time I got the Amiga I started spending more time on packet-switched networks, some random X.25s and the pre-commercial Internet. Made myself an account on some of the ai.mit.edu machines controlled by gnu (they had open guest accounts and intentionally lax security, rms had a setuid root shell in his home dir, IIRC). From there various UNIX systems (Solaris/BSD/HPUX/NeXT/AIX), more C, C++, emacs lisp, various shell scripting dialects, Perl.

We did have a Pascal course in high school but by then I was pretty far beyond the teacher (who wasn't particularly hacker-ish) on the programming scale.

Later moved to x86 PCs dual booting Windows and Linux which is pretty much still my preferred setup, though now the Linux installs are a multitude of VMs instead of dual-boot partitions. Spent quite a few years doing Win32 application programming in C/C++, lots of backend web development in many different languages and then ARM-based linux embedded devices (@chumby industries). Day job now is Java programming for Android devices, at night I prefer to code in Go (my current primary side-project which is almost all Go [since I'm the only developer and can unilaterally make such decisions] is volunteer work at a Nano Engineering Lab at UCSD writing controller code and scientist-friendly GUIs for TI DMDs, NI motion control devices, Lumenera cameras, various UV lamps and such).

For me the important spark was that my mother was forward-thinking enough to see the C64 as a useful educational purchase for a son with an innate desire to learn about computers. These days it seems like the vast majority of US families have access to computers which is awesome, but there is a tendency (across the entire socio-economic spread) to view them primarily as facebook/twitter-consumption devices, which is pretty sad (no offense to Facebook or Twitter, but early-me had visions of easy access to computers being a bit more meaningful).

I'd love to see more focus on using computers as tools as opposed to consumption devices in both elementary and high school levels.

[+] jamieb|13 years ago|reply
"For me the important spark was that my mother was forward-thinking enough to see the C64 as a useful educational purchase"

Same here, but mom and dad got me a BBC Micro. Stayed with Acorn and got an Acorn A310 when I was 18. Wrote a game in ARM assembly and self-published it in 1992. Now my day-job is Java, tying this story nicely with this other front-pager today: https://news.ycombinator.com/item?id=5551771

My school actively put me off a computer science education. I was programming colorful games in BBC Basic and 6502 assembly language using keyboard and floppy discs, while my O-Level text book was describing punch cards and tapes. I went off and got a degree in Physics instead.

So while we may be only two data points, we both share the experience of having access to a computer at a young age and being way ahead of the teachers by the time it was taught in school. I'm trying to figure out how to make her laptop as easily programmable for my youngest daughter as my BBC was for me. Hell, if I wanted to play a game on the BBC I had to type a command, so right there the reward required the first step of programming.

[+] davidf18|13 years ago|reply
In 1972 there were young teen programmers on the (then) Univ. of Illinois plasma panel graphic-based PLATO IV computer system (based on Control Data mainframes) from Univ of Illinois Laboratory High School (diagonal across the street from the computer facility). Indeed Uni-hi had two of these terminals. Springfield (IL) high students also used the system then because their high school had a terminal.

In fact in 1974 or so one student at the high school taught half the 7th grade class (12 year olds) how to program computers using PLATO.

In 1973 a then 17-year-old David Woolley (also from Uni-hi) implemented a electronic forum system on PLATO http://thinkofit.com/plato/dwplato.htm#origdev

Ray Ozzie was also a college student working on this system.

See also: http://platohistory.org/

If you want, you can try out PLATO at http://cyber1.org/

[+] zwieback|13 years ago|reply
When I was a teenage programmer in Germany I was considered the enemy by many of my classmates. The computer was one of many things Germans of that era were convinced would bring the downfall of society, destruction of the world or worse.
[+] jkldotio|13 years ago|reply
High German Romanticism or not, your classmates may be proven right in the long run.
[+] cpncrunch|13 years ago|reply
Teenage? I started programming when I was 9 or 10, back in the early 80s.
[+] davidroberts|13 years ago|reply
In the mid-Seventies, the era the OP was talking about, the only way a kid could access computers was at school, and pretty much only high schools had them available to students. The computer would typically be one single minicomputer or a timeshare terminal. His school had both (he was lucky). The teacher was the gatekeeper and decided who had access. Back then, there was no way to start programming at 9 or 10.

It took a lot of dedication to learn programming. You'd have to wait in line with a bunch of other students to submit your program on cards or paper tape, run it once, debug and fill out new cards, and repeat the next day. The output would be printed on paper (no video). I wrote a blackjack program, but the teacher wouldn't let me run it because it was too interactive. He wanted us to write batch processing programs that calculated water bills. It was a big reason why I stopped programming and didn't come back for 15 years.

[+] eCa|13 years ago|reply
Me too, but in the later 80s. Basic on C64 -> Amiga. Then a few years without much programming until late 90s. Then I discovered Perl. Sweetness.
[+] stuff4ben|13 years ago|reply
Same here. Started out on an Apple IIe in the 4th grade (around 10 yrs old), "graduated" to a Commodore Plus/4 then a 64 and then Amiga. From there it was Unix on a Sun sparcstation and the rest is history (for me anyways).
[+] danmaz74|13 years ago|reply
That's when our lives went South... :D
[+] vovafeldman|13 years ago|reply
In overall I think that there should be major changes in the education processes, specifically highly involving computers & internet as part of the program. E.g. memorizing historical events' dates is irrelevant anymore when Wiki is accessible to every kid with a mobile.
[+] ben_smith|13 years ago|reply
Teenage programmers were always cool.
[+] keefe|13 years ago|reply
teenage programmers define their own cool
[+] EFruit|13 years ago|reply
I started circa 2007 with Visual Basic. I am anything but "cool".
[+] klepra|13 years ago|reply
From my observations, nothing from Microsoft is considered cool.
[+] Rickasaurus|13 years ago|reply
Hey Hey 16K, What would that get you today?
[+] VLM|13 years ago|reply
"We had a mini-computer and it was anything but friendly."

Non computer people always talk about the IO as being "the computer" so I found it odd he went on about the IO devices and not the architecture despite being a computer guy. Probably intentionally writing to his audience of the general public about being "us" rather than writing to "us" about being "us".

The article goes on about learning assembly on the PDP-8e... I did some stuff on 8's and its important to note that its not like learning intel or motorola or PIC or BAS (from a mainframe) ... its a weird cross between being really RISC and kinda CISC. Only "about" 6 instructions makes it kinda a turing tarpit but add a layer of dozens of IOT I/O instructions and some weird features like a stretch of memory that autoincremented when you accessed it, and its really a pretty nice platform to be educated in assembly. Its useless as training of course, but pretty good as an education. DEC also had awesome manuals, at least for the time. "Programmers handbook for the -8E". I believe I still have a yellowing copy at home as a memento.

You can tell he's writing to "the general public" instead of us another way because to "us" the weirdest part about assembly on the -8 was it was octal, from the days before hex took everything over. The heathkit H8 was a 8080 machine (from memory?) you programmed traditionally in octal, but you could yank the S100 bus 8080 out and replace it with a Z80 that was almost binary compatible but that was entering the era where everyone used hex, so you had a octal box you programmed in octal which you could upgrade but then had to program in hex which I never really got over. Then I switched to motorola products and got horribly spoiled. Someday someone will make a CPU architecture as perfect as the 6809 but probably not anytime soon.

[+] greenyoda|13 years ago|reply
DEC was still using octal notation on the PDP-11s. Which is why we have Unix commands like "od" - "octal dump" - that are still around today. I remember that the switches for toggling address and data bits into the PDP-11's front panel were grouped (by color) in sets of three[1]. VAXes used hex, if I remember correctly. IBM was using hex at least as far back as the System/360 (1960s).

[1] Photo of PDP-11 panel: https://www.flickr.com/photos/complexify/4268116070/lightbox