

I was a teenage programmer before teenage programmers were cool - wagtail
http://www.zdnet.com/i-was-a-teenage-programmer-before-teenage-programmers-were-cool-7000014013/

======
georgemcbay
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
"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
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
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
High German Romanticism or not, your classmates may be proven right in the
long run.

------
cpncrunch
Teenage? I started programming when I was 9 or 10, back in the early 80s.

~~~
davidroberts
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.

~~~
walshemj
Which is how I did it back in 74 though we had to learn a assembly language
CECIL which we wrote out on coding sheets and sent off to a batch system to be
processed.

And this was the CSE stream class for those of us not considered good enough
for O levels - ironically as I was in the CSE class I wasn't allowed to take
the Computing A level in the 6th form.

------
vovafeldman
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
Teenage programmers were always cool.

------
keefe
teenage programmers define their own cool

~~~
katherineparker
Exactly my thoughts. Very well stated. :)

------
EFruit
I started circa 2007 with Visual Basic. I am anything but "cool".

~~~
klepra
From my observations, nothing from Microsoft is considered cool.

~~~
EFruit
I spent relatively little time with VB (thank god). I had been messing with
VBscript in powerpoint, then I abandoned VB for the C-flavor languages . Right
now I'm working in Go. I like it a lot.

------
Rickasaurus
Hey Hey 16K, What would that get you today?

------
VLM
"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.

~~~
colanderman
6809 is true perfection, but AVR assembly is pretty zen:
<http://www.atmel.com/images/doc0856.pdf>.

