
Ask HN: How did you learn coding - applecrazy
HN seems to have a pretty interesting community of professionals and self-taught coders, so how did you learn?<p>Suggested topics:
- Medium of learning: classroom, textbook, etc. 
- Age you started
- Whether you taught yourself
- What kept you coding
======
dmerrick
I learned how to program on a TI-83 graphing calculator. I was bored in class
and I made a simple text-based blackjack game.

Later my friends and I would use the link cable to share programs between our
calculators, and I would pour over the source code and try to understand
everything. There was an ASCII fighting game I loved and I added new moves and
characters.

Once I learned how to "view source" a website I started doing that everywhere
and figuring out how the Web worked. That, plus a Linux install disk and an
old, case-less desktop got me on the road to where I am today (supporting a
SaaS company as an Infrastructure Engineer).

~~~
sixstringtheory
Same for me, had a TI-85 when I was 13 (which now I wish I hadn't sold, it's a
collector's item! Never giving up my 89!) Friend and I wrote a Drug Wars clone
and a bunch of math solvers. Then we got into websites in the same way. Also
had an old Windows machine, on which I pored through every DOS man page
(didn't turn onto *nix till way later).

Took AP CS in high school on a whim just for the credit and haven't looked
back since, been at it for 18 years now. Thinking about a sabbatical though as
of late.

~~~
applecrazy
I've heard a lot of people who have gotten interesting in coding through a
graphing calculator...but in 2016 doesn't anyone think that they're a bit
outdated?

People started writing programs for graphing calculators because the needed
these devices for school, so somebody should introduce kids to Raspberry Pis
and Python.

It's a shame that in the US there is a lack of proper CS education in most
schools. Not only is programming well-paying (most of the time) but it also
helps students break down difficult tasks into simpler ones.

------
rdpennington
I started in the late '70s when I built a processor technology sol-20 from
tubes of ICs, a circuit board, and parts for a case. The damn thing didn't
work when I powered it up. I was crushed. I took it in to the Milwaukee
Computer Store and the tech guy (I wish I could remember his name) pointed out
that one of the EEPROM pins had bent underneath the chip. He straightened it
and boom! I learned to program the Intel 8080 based Sol from the "intel 8080
Microcomputer System's User's Manual", September 1975.

In what must have been an early example of software piracy, I dumped a hex
dump of my University's Intel development system's macro assembler and typed
it in by hand. I hand edited the code in hex to use the Sol's cassette tape
drive instead of the paper tape, Cool stuff: Load assembler from tape, load
assembler sourec from tape, rewind, load again for pass two.

UCSD Pascal came out around that time, but it required more than the Sol's
available 48K of memory. I disassembled the Sol's monitor and moved it from
0xc000 up to 0xf800 (I think) and, Hey Presto! I had a Pascal development
environment. I think I wrote one or two Pascal programs before I met... C.

I first used Small C on the 8080 and then decided I needed a processor with
better addressing modes. I switched to the 6809, wrote the Introl-C compiler,
and almost lived happily ever after. :-)

------
cyberferret
I am pretty much self taught since the age of 14 (back in the early 80's).
Started using BASIC on an old TRS-80 and then a Vic-20 after that before
moving to an IBM PC/XT.

I bought a copy of Turbo Pascal when it first came out and that was really my
first foray into the world of 'real' programming. I think I made my first $$
from a software sale from a Turbo Pascal simple point of sale system I wrote
for a pharmacy.

Since then, I've pretty much taught myself several other languages over the
years. I find books and video courses to be of low value (NOTE: To ME, others
may find opposite results). Latest work is in Ruby and Javascript etc. using
SQL backends.

I've found the best way for me to really get to grips with any language is to
start building small 'real world' projects with it and experience all the
triumphs and pitfalls along the way.

Having said that, I do struggle with some new concepts these days. NoSQL still
baffles me, and I never got the hang of Ruby on Rails (my latest web app is
25,000+ lines of Ruby but in a Sinatra based framework).

So, no formal software development training, but I have the love for creating
stuff out of code that keeps me motivated to constantly learn.

------
pault
I spent about five years working as a graphic designer (both parents were
designers with home offices that they encouraged me to use as a teenager)
before I realized it was a relatively difficult and unappreciated profession
considering the average salary. At the time (I was about 24, 2004-ish) I was
working closely with a team of java developers and I knew I was capable of
doing what they did, so I just eavesdropped on all of their technical
conversation and looked up the terms I couldn't understand. I had to do some
flash work as part of my job, so I picked up some actionscript, read a bunch
of materials on OOP freely available from Sun Microsystems at the time (not
very high quality compared to what is available today). I stopped drinking,
stopped going out on the town, and started coming home every day after work
and reading everything I could find on actionscript and javascript, and
building portfolio apps. I kept telling everyone I worked with that I was
learning programming and eventually someone referred me to a small design
agency that was looking for a junior developer. They ended up growing fairly
rapidly with a lot of clients in the Seattle startup community, and that
exposed me to the network that I still get my work from today. My first year
there was hellish and I often had to sleep under my desk as I tried to keep up
with client deadlines while learning on the job, but I eventually gained some
proficiency and the rest is history. It has been my life's passion ever since,
and I shudder to think how my life would have turned out if I hadn't taken
that leap. I hope that I can have children and teach them everything I know
about computers some day.

Edit: I probably wouldn't have been exposed to half of the stuff I now know if
it weren't for HN, which I consider one of the treasures of the internet.

------
idid
I've tried teaching myself C at age 10-11 in order to do embark on creating a
Heroes of Might and Magic clone with Incas, _because_. Never got besides the
paper planning. Didn't have a computer yet then, had to time-share on my dad's
from his office. Was getting in late to try things.

In high school I was extremely lucky to have an amazing teacher that taught us
C++ by throwing away the standard state-provided manual (this was Romania) and
using her own methods, problems and curricula.

Next, coding interactive visualisations kept me going (there were cool enough
to attract attention of well, umm... girls. I was a teenager, mind you). My
high school graduation project was a 3d engine coded up from scratch in
actionscript.

I took a break for two years while studying architecture, but then discovered
all the amazing things you can do with space, geometry, networks and code. I
am still discovering new avenues. I'm am a fully licensed architect (read
buildings, not software) yet I now find myself coding all the time.

------
dorfuss
I was 13 when learned HTML by reading source code, playing, and a very good
tutorial (no longer around), then CSS. I tried different languages, C++ with
Borland compiler, but I could not understand how the basic syntax can be
translated into a game - this is what I really wanted to do. I wanted
graphics. JavaScript did not make sense at all, I found it too complicated, I
did not understand the difference between client and server.

Then I learned PHP to run a website of our school class, I used PHP to
automatically generate a gallery of pictures located in a folder. Saved me
tens of hours of time.

Then I started playing with Flash and ActionScript and I was shocked to
discover that different shapes - triangles, circles and rectangels are objects
that share methods (resize, fill colour etc.) and that was the Object Oriented
revelation.

Years passed. I got a job in IT where I had to learn the internal scripting
language and do a lot of SQL - so I've learned that. The product did not allow
you to do certain things and they had to be "hard hacked" in JavaScript, so I
had to learn that, and I realised it's no longer difficult. I learned C++
finally when for a short time I enrolled into University (software
engineering). Then I got a new job where the product was made in Java and in
order to make any extensions they had to be coded in Java, so I learned Java
(Head First Java). In the process I realised what are the unit tests and how
to first write a test and then your object. Somewhere along the way I learned
about Design Patterns, but I cannot say I really can use them effectively. I
also learned C.

I no longer work in IT, coding is just a weekend hobby.

Now what I still have to learn is to make bigger things that would make sense
for others, both in therms of usability and code readibility (I write heinous-
ugly code). I am ignorant of MVC model. I don't know much about linux
administration or scalability and functional paradigm. I hate myself for not
knowing math beyond highschool level.

Still a long long way to go :)

------
d--b
Ti calculator age 14. C using the C programming language book. Then caml at
school. Lisp, c++, Java at uni. and all that for ending up doing data science
in Excel!

------
bananicorn
I made my first attempts at coding at around 13-14, maybe sooner, when trying
to change config file of the game clonk planet[0], but quickly gave up on
changing anything significant. Didn't really touch another line of code for
several years, it wasn't even in my focus, when I began reading XKCD and
thought to myself - maybe LISP is for me... At that time I was around 18, and
didn't even make the whole tutorial (the one provided by DrRacket) - it did
introduce me to some general programming concepts though, which would prove
helpful later on. It didn't help that I didn't visit the right school for it -
there I learned mostly languages and didn't pay attention in Maths, which
proved to be a really stupid move. In the year after my "Matura" exam which is
probably the italian high school diploma (I might be mistaken), I frequented a
year-long course on web development - in the End we should have been able to
call ourselves "Webmasters". There we were taught the very basics of html and
css in two weeks and javascript in another two-week block, as well as some
tinkering with our own virtual server writing simple bash scripts and
generally trying out Debian.

Now I'm in a secure but not very well-paid job as webdeveloper, where I have
to code in classic ASP and mostly just do boring-as-hell copy-paste work.

[0][http://www.clonk.de/](http://www.clonk.de/)

------
stickerboy
I think I was about 13 or 14, my dad had been saying to me for a while that I
should start learning HTML. He was fascinated at the introduction of Java
around that time. So one day he came home and launched a 2 inch thick HTML
book at me, thus my introduction to programming. Started off mostly in simple
web development, moved on to PHP when I found phpBB and started fixing broken
forums (well, mostly ones that I broke haha) and creating mods. I worked for
them for a while on their styles and moderation teams.

I spent a year at college learning C++, was supposed to be a 2 year course but
they changed the framework and kicked everyone off the last year. Didn't go
back to uni until a few years later and studied Web Systems - learning
ASP.net, C#, more PHP, working with SQLite, a little bit of Java and Direct X
and more general web dev stuff (built a custom PHP framework with a
classmate).

Most of the stuff I've done has been self taught - web docs and stack overflow
:) Over the past few years I've moved more into PHP again (customising
WordPress plugins and themes), tinkering with Ruby a little (building an IRC
bot and using it to solve puzzles), working with SharePoint 2013, Workflows
and InfoPath forms. Hoping to get back to C# a bit more over the next year.

Like most, this used to be a hobby. Crazy that I've managed to make a career
out of it

------
m48
Started screwing around with a limited version of Visual Basic 6 when I was 8
or 9. I had always liked the visual design of computer programs, so the
programming was sort of a means to an end to make cool GUIs.

This limited Visual Basic had most of the features of the professional
edition, except you couldn't distribute compiled programs (only run them in
the editor), and they took out all the help files for some reason. I got
pretty used to having to forage on my own to find decent documentation for
anything, relying on computer manuals from local libraries and tutorials from
random sites to fill in the blanks. I'm not really sure why I had the patience
to put up with that, to be honest. I think I just assumed everyone learned
programming like that. I pretty much never met another person who knew
anything about computer programming face-to-face until I went to college.

When I got tired of not being able to compile anything, I ended up
experimenting with Visual Basic.net in a beta of Visual Studio 2005 a relative
gave me, had a bad experience with that, and started looking for alternatives.
Eventually, I basically settled on Python.

I still think Visual Basic 6 is one of the best programming environments ever
made. It started in seconds, the GUI designer just worked, and the
autocomplete was perfect. It even opened up with a blank project you could
start screwing around with without even saving anything, encouraging a lot of
experimentation with the widgets and language. It was QBasic for a different
generation. :(

------
pesfandiar
The first language I learned was BASIC at the age of 12 (in the 90s). We
didn't have a PC at home, so I just learned it by reading a book. That was the
main reason my family was convinced to buy a PC after all.

After that, I kept coding because I really liked solving puzzles and building
things. To me, libraries and APIs were like pieces of LEGO that you could use
to create your own contraption. Probably the most exciting coding moment was
when I figured out how to use interrupt 33h to add mouse functionality to my
games!

------
pcsanwald
I started coding because I like to make useful things. I took vocational
electronics in high school, and I REALLY liked digital circuit design, so my
teacher recommended I take a programming class. Programming was taught in
turbo pascal on machines that had no hard drives, only large floppy disks
('94).

I picked it up very quickly, and made my mom (a teacher herself) a grading
program she could use to manage student's grades, wrote a couple of
screensavers, all in turbo pascal.

I then delved into C++, and started learning unix, and learned to write system
utilities and scripts as well as basic sysadmin stuff.

I took some time off of school to work as a touring musician, but when I went
back to college (as a CS major), I needed a job, so I got a job at Glaxo
Wellcome because I was a capable sysadmin who could manage the DEC boxes they
used for development, and I could also code. I did a bunch of things for them
in C, then perl, then finally java after it was out.

I'm coming up on 20 years of working as a professional programmer, and I still
love to code as much as I did back in high school. I've had various executive
roles over the past 8 years, but I've never moved away from coding. It's one
of the great joys of my life.

------
BWStearns
I learned HTML and extremely basic JS in lower school to make basic web pages
and kinda-sorta knew how to use browser tools to look into network requests
(i.e. cheat on addictinggames type sites) and view page source etc.

I started intentionally learning when I got an office job in college and
realized that a lot of the boring stuff I was doing would be trivial to
automate. After excel formulae stopped being enough for what I wanted to do I
went and learned python. VBA would have been the next logical step but after
some investigation I found that was a good way to get shanghaied into terrible
work forever.

I learned initially through Udacity's intro to programming Python course
(their original search engine one), and then Norvig's follow on course. After
that I started getting better at learning from the documentation and looking
up the math and data structures I needed.

After I got sick of the office job I was at I did a dev bootcamp to get some
kind of credential and to get some webdev experience (all my previous code was
data munging, web crawlers, really terrible home grown templating solutions
etc).

When all you have is a hammer everything looks like a nail, but code is one
hell of a hammer, so I kept coding because there was always more crap I didn't
want to do repeatedly.

The thing that struck me though was how no one else in that office (filled
with quite intelligent people) seemed to see the opportunity before then. This
is one of the reasons I wish everyone at least had exposure to coding. It
seems rather unfair that previous experience as an addle-brained 8 year making
a Pokemon or snowboarding website should have seeded such a relative
advantage.

------
alex_wang
I roughly browsed most of the comments and noticed that most people who taught
themselves programming started earlier than their 20s, which, frankly
speaking, surprised me a lot.

I started learning programming when I was in college, which wasn't some
serious learning but merely required courses of my major. After I got my
bachelor in engineering. I continued to study in a research institute and got
a master degree in geosciences. Later on, I started to teach English the
moment I graduated.

Right in the beginning of this year, I realized that teaching bored me to
death. I still wanted to do something technical. So, I began teaching myself
coding in Objective-C. Three month later, I became an iOS programmer.

I don't think I am particularly smart or anything. But, when I worked with
people who had one or two more years of programming experience than me (I only
I had six month or so doing real programming), their code was just fucking too
messy: no comments, using pinyin to spell variables, having no idea what MVC
is ...

All I thought was guys you should really take this seriously. Or, you'd better
consider doing something that's your strong suit.

------
e19293001
This book[0] enlightened me in a lot of ways. Check out the book review, I
would testify that almost of what the reviewers said are true.

By reading this book, I've developed my skills in programming with C/C++,
assembly language and also learning computer architecture all at the same
time. This book contains lots of low level stuffs like designing a cpu core,
translate a C++ program to assembly, write an assembler, and many more. The
explanation starts with a very simple concepts like translating y = x + 1; to
assembly language equivalent until translating an object oriented code to its
equivalent assembly language code. It has been a lot of fun learning the
relationship of cpu, operating system and the compiler. The exercises are easy
enough and had really sharpen my skills. Although the target machine is
theoretical, I was able to switch easily into the real machine.

[0] - [https://www.amazon.com/Assembly-Language-Computer-
Architectu...](https://www.amazon.com/Assembly-Language-Computer-Architecture-
JavaTM/dp/0534405274)

------
MaulingMonkey
Some self-taught BASIC via computer books and what I believe was an Apple 2
Manual, an intro level C++ class around 12 or so (my "for beginners" C game
programming books before then weren't actually for beginners - assumed you
knew hexadecimal, grokked pointers, etc.), and then a ton more reading online
coupled with forums and IRC channel trolling. Learned a lot through "osmosis"
\- just listening and trying to understand people talking about programming
subjects I hadn't known about before. If one spends some time in Japan to
practice getting really fluent in Japanese, I spent a lot of time in
programming circles getting fluent in Programming.

First I was curious as to how computers could possibly work, then I wanted to
build things for computers, and then people wanted to pay me to build things
for computers. It's worked out pretty well for me so far.

------
westoncb
Phase 1: HTML and modifying other people's javascripts to add terrible
animated cursors etc. to my personal page.

Phase 2: took a class in high school on Visual Basic and learned more on the
side so that I could make games with it. Made a couple games with it.

Phase 3: took essentially Java Programming 101 at a local community college
concurrently with high school, and started to get serious about making games.

Phase 4: made about 30 projects in Java—just whatever I felt like working on
at the time—games, game engines, an emulator, 3D model
loading/animating/rendering library, tools for making content for games.
Almost none of these were completely finished but I learned a ton with each,
and sort of climbed a ladder with it, trying progressively more difficult
things all the time. This lasted ~3 years.

Phase 5: got a repetitive strain injury from typing/mousing too much and
stopped coding (not completely, but nearly) for several years. Studied
mathematics and language more deeply than what school prompted me to
previously, somewhat hoping this knowledge would come in handy if I could
return to coding some day.

Phase 6: decided to work on a major project that I believed would allow me to
efficiently write code with motion sensors (thereby avoiding the injury). This
ended up being a pretty deep, difficult project that was actually doing
something sort of novel in software for the first time, and I learned tons
working on it over the next year and a half, primarily about programming
languages and architecture
([http://westoncb.com/projects/tiledtext](http://westoncb.com/projects/tiledtext)).

Phase 7: I've been writing software professionally off and on for a few years
now, still occasionally returning to side projects. I still retain an
awareness for areas I can improve, but it's more about using than developing
skills now. I've returned to html/javascript after all these years. It's
interesting.

------
Kapura
I'm another member of the TI-83 club. Shoutouts to the little L who made it
all possible.

Initially I used it in math to avoid having to do the rote computations, but
eventually I started building other stuff. I built a simple game that had you
navigating an ASCII character to collect the pi while another ASCII character
chased you. Frames would advance on input, sort of like a rogue-like.

Eventually I made a text-based RPG combat game, where you would select enemies
to battle, and gain XP to increase your stats which would allow you to fight
higher level enemies, etc. The final boss's selection code was '666' and he
was orders of magnitude more difficult than the next-hardest enemy.

I also had a book about learning to program in C++, it was p bare bones and I
didn't learn very much from it.

------
sampl
Played with QBasic when I was a kid, took a Java course, hacked on
HTML/CSS/jQuery for my radio station and got a job writing code at a web shop
after college.

What really got me "over the hump" was deciding one weekend that I needed to
focus if I was going to be able to bring my ideas to life (www.sampl.us). I
got Javascript, The Good Parts on Amazon and just hammered on the basics of
the language over the course of a few weekends. I kept at it over the next few
weeks, and I've come back to it in bursts ever since. Never fails to be one of
the most rewarding and frustrating parts of my week.

Five years later, I'm still a pretty mediocre programmer. But now when I can
have an idea, I get to watch it become real. It's a good feeling :)

------
sushisource
My dad and I used to build those Radio Shack kits where you could make a
simple radio with a breadboard. This was probably when I was 5 or 6?

It was clear that I enjoyed that, and I enjoyed the old DOS games at the time,
and my dad had a bit of an IS background at the time, so he encouraged me and
together we did some BASIC programming together. I also eventually got one of
those Lego Mindstorms kits as one of the other commenters mentioned when they
came out, which probably would've been around age 7 or 8.

I just took off by myself after that. Playing around more with basic,
eventually learning some basic frontend stuff so I could show off webpages to
my friends, and then moving on to some Java after that.

It's been a passion ever since.

------
hprotagonist
I started on LOGO and Q-BASIC. (IBM PS/2, baby).

Everything I actually know about coding came about during my undergraduate
engineering education, where a minimal amount of Matlab was needed for labs. I
got super into it, then I installed linux, then I started writing my problem
sets in LaTeX ...

Several years later, my second job made me into an actual developer for
scientific computation, and that learning curve consisted of three years of
pair-programming with a guy who has 30 years in the game. You learn quickly
that way, and I had enough a foundation under me of my own making so that I
didn't drown -- but not too much that all my bad habits were too hard to undo.

~~~
cyberferret
Ahhh... the IBM PS/2 - probably one of my favourite ever computers to use. I
had a Model 50 and a model 70 for years.

------
nidx
1996 - age 14. I had just gotten a computer at home I could use. I took
computer science class in summer school (extra credit. Summers without school
suck). Watcom basic. A year and a half later my professor gave up and gave me
the wbasic manual so I could play with non ascii which he did not understand.
I was 99% sure I would be working in pure math before then. I always loved
solving problems or puzzles. Computers seemed to give me more options. Played
with Linux/BeOS/Visual Basic. (And a very little java/Delphi). Got my BsC, now
I lead a team of 5+ and work in any language/framework I want.

------
teilo
At the age of 12, I learned BASIC on a TRS-80 Color Computer 2, using the
books that came with the machine. When I was 16, I ditched GOTO and GOSUB by
learning QuickBasic on a PC. QuickBasic was essentially the DOS equivalent of
VisualBasic, and compiled to executables. It came with its own IDE. I made a
decent amount of money selling a kiosk-style menu system using it. QBasic,
which came later, was an interpreted version of QuickBasic, so I never
bothered with it. That was 27 years ago.

These days I'm doing Python/Django mostly, but am getting into Elixir/Phoenix.
I have yet to take a formal programming course.

------
JamesBarney
Making hacks for Jedi Knight.

Really enjoyed it so I started going to summer camps for coding. Then took
classes in highschool, and college. But eventually senior year of college as a
C.S. major with high marks on projects and tests I realized I had no idea how
to code after a failed internship.

Then sorted stackoverflow by votes and read and tried to understand the first
1000 questions.[0] By the end the change in my coding style was like night or
day.

0 - This was before stackoverflow decided to cripple it's usefulness by
eliminating open ended questions, so you can't repeat this today.

------
wrs
I started by borrowing my mom's login for the HP2000 at the local college when
I was 9 (that's 1976). Amazingly, the college let me take Fortran and PL/I
classes for real. Other than that, was self-taught through high school, then
got a CS degree at CMU and paid attention to at least _some_ of the classes.

As for why...what on earth is more fun than coding?!

(edit: I see there's an HP _laptop_ called the HP 2000. I mean _this_ one:
[http://www.hpmuseum.net/display_item.php?hw=411](http://www.hpmuseum.net/display_item.php?hw=411))

------
antod
In the early 80s at around 10yrs old I taught myself BASIC from books/manuals
on a TRS-80 model III at my fathers office and my own ZX Spectrum at home that
I'd saved up for.

Totally failed at teaching myself Z80 machine code on the Spectrum though.
Part of that failure was probably something to do with manually assembling the
code and POKEing it into memory (ie crap tools).

Did more AmigaBASIC on an Amiga 500 in the late 80s. Totally failed at
teaching myself C on the Amiga too (crap tools also played a part here - using
a really buggy C compiler I found on a Fred Fish disk).

------
mcs_
In many cases. Telling others... yes! I can learn how to do that.

At 17 a friend of mine asked me some help to port an old (and probably still
working) COBOL app. Project wasn't really financed and absolutely not intended
to be a production ready solution.

At 20 I was still working on that project. At that time in production and at
least with the budget for us.

Year after year I can tell that my knowledge was totally community driven.
Than.. I understood Unix (yes Microsoft was everything for 10 years). And I
definitely understood how to code looking at other's code.

Btw. Thanks everyone for the open source.

------
bcheung
Self taught. Started programming at the age of 7. It was a programming book
designed for kids. It taught BASIC on the Commodore 64. I later went to learn
assembly at age 11 because I was interested in video game development and
assembly was the only way to get access to additional functionality /
performance. Moved on to C and x86 Assembly in my early teenage years (again
motivated by making video games). Moved more to general purpose / web
technologies once the Internet started becoming more popular. PHP, Java,
Rails, Node.

------
Joeboy
My parents bought the family a ZX Spectrum, which came with a BASIC manual and
a summary of machine code instructions. I was 12 years old and it was the
1980s and there wasn't anything better to do.

~~~
jesuslop
whoa i'm also you in this. Angulo spanish Z80 asm book then. Local cs amateur
club, "folks do you have the complete rom dissasembly?" (of the spectrum),
answer: yeaaahhh... no. More childlier at my granpa's he had that cheesy
computing magazine with few lines of basic. I was out of myself. woa, this is
like math, but moving. Nobody cared but so what. Maths moved.

------
leighflix
Back in 7th grade - about 5 years ago - I first found python. I had no idea
what programming was, but i saw a game that I wanted to create and it said
this is how.

I read the elusive documentation (to a 12 year old me, very elusive) word for
word and just went with it.

At the time, I didnt't know what a compiler or an interpreter was so I just
wrote it all down on paper and did the calculations/instructions in my head
and wrote down the results. (I couldn't tell if I had an error or not)

After about 2-3 weeks, I quit. I couldn't understand anything really. I had no
idea what a class was or what a method did. About a year later, I heard of
minecraft and started playing that. I heard it was made with java so I went on
youtube (which I recently found existed) and watched java game development
tutorials.

Needless to say, it was hard and I didn't udnerstand anything. I didn't know
java or anything.

After about 2 months or so of frustration, I found the official tutorial on
oracle and started learning from that. It was hard and I did not learn
anything.

in 9th grade - 3 years ago - I took computer science as a math elective class.
I learn java a bit slowly but I understand almost everything due to my past
failed attemps giving me _some_ foundation.

During the summer after 9th grade, I started learning python again. I got all
the way up to classes and such and stopped because I couldn't understand OOP
in python because noone could even begin to teach OOP with python. I felt
inadequate so I temporary stopped (quit).

During 10th grade, I started to really learn java. I bought tons of books and
used the official tutorial with various other websites, and after all of my
hard work. I understand the basics of java.

Skip to now - 12th grade - I'm learning extensive OOP programming concepts
with java and learn how to create GUI applications with awt and swing (holding
off javafx for now).

I'm mostly self-taught despite going to classes for 2 years of computer
science in highschool.

I just really want to say, through all of my 4-5 years of experience on and
off of learning programming: If you don't understand something, come back to
it later.

~~~
applecrazy
It's not just you- I've been using Python for fun for 3 years and I still find
the docs elusive! :)

------
nevster
My brother went to a computer camp and brought back a folder with an
introduction to BASIC printed using that purple ink tech they had before
photocopiers. (What's that called again?)

We didn't have a computer but I read that and loved it. A friend had an Apple
II and I got to try out some of the stuff round at his house. Later on when I
was in year 9 (1985) I got my first computer ,an Apple //c and I did more
BASIC and some assembler. Then uni in 1989 where we learnt Miranda, Modula-2,
etc etc. Made the transition to Java in 1997.

------
jdeisenberg
Age 16 or so, Boy Scout explorer post at the local bank in 1969. The person
teaching us (a programmer at the bank) gave us a brief intro to the RPG
(Report Program Generator) language, then said "Now, think of something you'd
like the computer to do, and write a program to do it. Here are the manuals,
and I'm here to answer any questions you might have." First "real" experience
was at Univ. of Illinois, CS 101, with PL/I as the language.

------
veddox
In tenth grade in high school Java programming came up in IT class.
Unfortunately, our teacher didn't have much of a clue herself... However,
programming was something I'd been wanting to learn for a long time, so I
downloaded all the example source code from the school system, borrowed a
couple of books from our local library and dug in. Using that, I taught myself
Java over the next year, then moved on to other languages.

------
pixelmonkey
I'm a startup CTO with 10+ years of coding experience and I wrote a 7,000 word
post on this topic entitled "My Long Journey to Knowing Software Sorta Well".

Still have yet to publish it elsewhere as I had planned to edit it
extensively. I welcome feedback on this draft from HN readers, though!

[http://simp.ly/publish/gsqMKl](http://simp.ly/publish/gsqMKl)

------
rboyd
5 and 6 years old, my brother and I played Zork on a neighbor's computer. NES,
Atari. One day he comes home from the library with a book about BASIC. Not
owning a computer, we spent all summer with pen-to-paper writing our own text
adventure. Not sure if it would have run or not.

5 or 6 years later we finally get a Packard Bell from Walmart. Discover BBS.
Warez a copy of Turbo Pascal 6. Rest is history.

------
king_magic
First coded on my Dad's Commodore 64 when I was maybe 9-10, and never stopped
programming/building software (now 33). I guarantee I was the only one in my
school district who received a copy of Visual C++ 4.0 for Christmas the year
it came out. Kept at it through middle/high school, then a 4yr BS in CS. 10
years later and it's still my favorite thing to do.

------
R_haterade
Saw that people I was working with were doing cool things in VBA in my early
20s, so I started using the macro recorder and then backing into things from
there.

Now I'm okay-ish with c++, python, and a little bit of matlab. I need to do
some serious work with learning design patterns and study more algorithms
before I'd really consider myself a good programmer.

------
endswapper
I'm posting because I appear to be in the minority here.

I started at about 34 and I taught myself.

Having an objective kept me coding. I am building something that has a
specific business need where I have significant domain experience.

Additionally, I was surprised to find out how much I enjoy programming and
learning new languages. That too will keep you going.

------
vsviridov
First was BASIC built into a Soviet ZX Spectrum clone. Then, a bunch of years
later, i tried pirated copy of Borland Delphi 4, since it was all mostly drag
and drop. Some years after I got free clan page hosting from planetunreal.ru
(I was playing a lot of UT at the time), which offered PHP/MySQL combo.

------
willempienaar
QBasic when I was 10 (on my own). Then I did some VB tinkering after that.
Java in high school. In university the floodgates opened. C# / Python / C /
C++ / JS / HTML & CSS.

It's always been about creating something.

------
JohnLeTigre
Started at 10 on a trash-80 then a pc clone... Like most people at the time, I
started with BASIC but quickly switched to Pascal then assembly then C, etc.
Never stopped coding since.

------
Rainymood
1\. Want to create games as a naive kid

2\. Fail horribly, make some crude pong and snake clones

3\. Dabble in Python automating little pain points in my life

That's where I'm at right now.

------
DrNuke
Apple IIc in the mid '80s as a kid then a teenager... DOS, Integer BASIC and
Instant Pascal. Never good with Assemblers though.

------
bluenose69
Fortran, early 1970s; dozens of other languages from books until 10y ago,
thereafter from web

------
codyb
Project euler! What a blast I had solving those problems in middle and high
schools and uni.

------
discordance
Extending on this... Are universities the best place to get a CS education
these days?

~~~
steven777400
A CS education maybe, a programming education probably not. A lot of it
depends on how self-motivated and auto-didactic you are. I've taught CS at
universities and programming as well.

I taught full time at a community college for half a decade in a vocational
programming degree. I tried to slip as much useful theory into the courses as
I could, but ultimately they were terminal voc-tech degrees like welding and
auto mechanic that enabled the graduates to go to work at entry level
developers at local employers (primarily state government).

I often wondered "what is it that we do here?" since everything I would teach
was available online, and more, and better, and free! But many students just
need someone to be there and guide them through things (this is why the online
courses our department tried to do were a disaster). For a self motivated
independent learner, they would no doubt go crazy in the on-the-rails
structured courses.

For computer science, the science part, where you primarily investigate
computational-related mathematics, I think a formal education from a
university is invaluable. But only a small fraction of software development
jobs (if that's what you want to do) need that level of rigor.

------
meira
mIRC Scripting/regex/bots of Dragon Ball Z fight systems at age of 10, then
HTML and CSS for a DBZ website.

------
rjeli
MIT's Scratch in elementary school.

------
Vanit
Got my start in RPG Maker 2000 :)

------
psyc
BASIC and library books. Age 12.

------
btian
Lego Mindstorms at 11 or 12.

------
steanne
compute! magazine

