

Ask HN: How did you get into programming? - matt2000

I get the sense that most programmers are self motivated and largely self taught, at least when getting started. I got started with Logo on an Apple II. How did you get started? Did your school play a role at all?
======
bennyg
I almost feel as though it was a kind of Steve Jobs's "Connect The Dots" thing
for me. [1]

Let's see, I can say that the earliest I was ever exposed to programming was
when I was 12 years old. The online game Neopets was huge between a few
friends and I, and I wanted more Neopoints (currency) than them. So, through
tooling around on the internet I found a message board with a small user-base
that wrote programs to take advantage of Neopets and the way their HTTP
handling was done (that's how the game worked back then, this is circa
2002/2003). But, by just joining and registering you weren't given full access
to some of the best programs, specifically one known as an autobuyer. This
autobuyer would refresh the marketplace shops and, through a text file of
known high-value objects, refresh and buy those items that you could resell
for up to 10,000x markup. But the only programs I had access to were low-
hanging fruit ones - ones that let you play some of the games without opening
your browser. The only way to access the coveted autobuyer was through
contributing to the community, both through posts and your own programs. So I
downloaded Visual Basic and wrote a program that went to several pages within
Neopets, that just by going and submitting an HTTP request returned Neopoints,
sometimes netting in randomly high amounts. I called it "Dailies." By doing
this I was granted access to the holy grail of Neopets cheating. Needless to
say I abused the autobuyer, and a few months later my accounts were banned, I
started to hit puberty, and stopped caring.

Fast forward a few years, and I'm making websites for myself and friends.
These weren't great, I just used Macromedia Fireworks in the same vain that
people use Adobe Photoshop today for the graphics (that's right, Fireworks
wasn't an Adobe product back then), slicing up pages and "coding" them up
using HTML. This led to making some phpBB forums for people/myself so I
naturally learned about graphic assets and the modularity of them as it
applied to the web. Then I stopped creating them, and started posting through
various bulletin boards around the web. No more coding again.

Let's jump again (a short hop really) to high school. In my Junior year, I
took a C programming class, and I don't really remember liking it too much. It
was mostly int, string, ++ and x+=2 syntax, and a the beginning of loops. It
was fairly boring then, so after I got a B in the class - I stopped again.

Now, fast forward to a year and a half ago - my second senior year of college.
A couple friends and I enjoy going out to get drinks, and wonder why there's
no app that tells the best specials in our area, let alone any specials. We
decided to make it, and I started really LEARNING programming. I started from
the basics again - I knew what if,else was and what the most basic types were.
I had to google the type that took decimal numbers. 3 months later, I coded
the app up and we had it in the App store. This was what really got me into
programming. My work. My creation. It was in the hands of thousands of college
students at my University.

From there, I haven't stopped programming. I have 6 apps on the app store, 6
more in various level of completion. Some won't see the light of day - and
hopefully some will blow the doors down on other similar apps in their market.
I have a full-time job developing iOS apps at a research group through the
College of Engineering at my University - and the only person with a BA in Art
hired there. I like to think my idle creations are more extensions of my art
than anything else - explorations through curiosity.

Pardon the long story, but that's how I _became_ a programmer. And that's
where I am today.

\-------

[1] <https://www.youtube.com/watch?v=UF8uR6Z6KLc>

------
amykyta
In highschool I remember changing HTML markup and seeing how that changed how
the page was rendered. That entertained me. I've always loved picking things
apart and figuring out how they work.

I studied economics in college (practically no programming was part of that
education). After college I worked in sales/client support for a large
financial software company for a couple of years. I like to learn on my own so
I studied the financial derivatives markets. That got redirected into learning
some more math.

After working on a few projects with software developers I decided that I may
actually enjoy their work more than what I was doing at the time (helping
sales people position our product and training clients how to use our
product). Until this point in time, my only experience with code was getting
through levels on pythonchallenge.com and projecteuler.net, and recording and
tweaking Excel VBA macros. I approached my company's R&D recruiters and asked
to be interviewed for an entry level position as a software developer. After a
few rounds of interviews and many questions "Why do you want to do this?", I
earned a spot in our entry level training program. I was advised that if I
wanted to make it through this program, I would need to be up to speed on C,
basic algorithms and data structures and vim. I listened and in 3-6 months I
worked my way through a book on C and Tim Roughgarden's class on coursera.org.
I finished that training program successfully a few months ago and am now a
freshly minted entry level software developer.

It's pretty refreshing to be a novice in a field that's interested me for such
a long time. So far I am significantly less stressed at work and really enjoy
what I am doing. It's also fun being a 'new employee' after already working at
the company for a few years. Sometimes I feel like a spy. Some people doubted
whether I'd be able to make the switch so I am pretty happy that it's working
out so far. I like being able to prove people wrong.

------
ciaron
I started out with a Dragon 32 at around age 14, typing in programs from
computer magazines. When I went to university (in 1989), I studied
Aeronautical Engineering, which had no computer science or programming at all.
I chose a final year project to write a propeller performance tool in Pascal.
When I look back at it, I realise what an awful program it was. I was just
learning as I went along.

After the engineering degree, I did a "conversion" Masters degree in computer
science, though it was rather theoretical and placed great emphasis on formal
methods, the management of software projects and being able to write essays
comparing OO with non-OO programming. Most of the practical IT/CS skills I got
from that time were through my part-time job on the university's computer
services help desk.

My current skill set is almost entirely unrelated to my CS degree - I taught
myself Python, learned C and my way around Linux through pair-programming with
a colleague.

I'm still teaching myself - functional programming in Haskell, using web
frameworks to do some nice webapps, and dipping into new languages and
technologies that get mentioned on HN and other places.

So I guess that I'm a programmer in spite of my CS degree rather than because
of it. I love what I do, so much that it rarely feels like a real job. I'm
very lucky.

------
johncoltrane
I'm a graphic designer by training and by trade. In 1998, I co-founded a small
company where I took care of all the design/publishing. After a few months we
decided that we needed a website and I was the one who had to build it.

I was _scared to death_. The whole "coding" stuff seemed so freaking abstract
to me… But I did it, with the help of Dreamweaver 3's wysiwig mode because I
didn't want to become crazy.

But one day, we saw a cool trick on some website (and I can't remember which
trick or which site) that we wanted to have on our site. It was a JS trick and
I had to take a dive into that website's code, copy their JS function and
adapt it to our needs. It was surprisingly easy and it made me understand that
it was actually very close to how I did my design/layout.

After that, my life has been a neverending downward spiral for me.

------
alok-g
My father bought me a used Sinclair ZX Spectrum+ from someone who couldn't
figure what to do with it, when I was 11. The succinctly written manual that
came with it had I all need to master BASIC, followed by learning to program
in machine code straight (no assembler!) by age 14.

It would be hard to say what would have been if this had not happened. This
machine had me figure several things well ahead of my age, including
coordinate geometry, computer graphics and animation, compilers and
interpreters, computer architecture and basic logic design, et al. One thing I
could not figure from the manual was the meaning of functions "sin" and "cos"!
The latter was pretty much the only area where school helped. :-)

I still have the machine, and sometimes miss that 16 kB of ROM'ed machine code
that could do so much for its size.

------
imwhimsical
Got dumped by my girlfriend. Had to take my mind of things. (Hey, c'mon, just
being honest here!)

------
mrlyc
Almost thirty years ago, I wrote a bulletin board for my Commodore Vic-20. It
had public and private rooms (message areas), private mail and an online game.
Users could create a room and make it public or private. The room topics
ranged from string theory to general messages. The board was very popular with
each user spending an average of 65 minutes on it.

One of my users said "Anyone who can write a BBS for a Vic-20 can program!"
and hired me as a programmer.

I went on, much later, to write safety-critical software for medical equipment
and an air traffic control system. The guy who hired me is now working at
Google.

------
rpackard
Started in highschool with visual basic and created a aol instant messenger
punting program.

No classes in HS. In college was chem engineer and learned matlab and fortran
for scientific computing and data analysis. Linux admin and bash scripting.

Finally, quit my job at a large consumer packaged goods company. And have
spent the last few months learning ruby and ruby on rails to try and build my
first business.

So no cs degree. Just a math heavy background and curiosity.

------
pents90
Started with C=64, but was in a small town and didn't really have access to
any books or guidance. Moved on to PC and wrote some text-based games. It was
enough to get me interested in CS for college. This was the mid-90s and I got
really interested in Internet. I wrote a simple risk-style RTS game and ran
the server directly on the CS department's web server! Incredible that this
was allowed at that time.

------
onlyup
Started with free message board forums that I'd set up on a free host and then
add various extensions. This meant following a guide and going into the code
and replacing certain lines with lines in the code (PHP). I never "learnt"
what anything was though (e.g. for loops, if statements etc)

Then did a CS degree.

------
orangethirty
C64 my parents got me and my brothers. Then moved on to, uh, learning the
intricacies of computer security. My school did not play a role at all. Only
my parents, and my older brother (whose floppy disks I would erase in order to
save my Print "Your feet stink" program).

------
cdvonstinkpot
Was an old TRS-80 in junior high school, wrote simple stuff on it in BASIC.
Forgot about programming until I discovered HN, then enjoyed reading what you
people were reading so much that eventually I decided to start on Codecademy &
pick it up again.

------
shrt
Hung out on an IRC channel with game developers and wanted to do what they
did.

------
caladan
Was a sysadmin, started with shell scripting. Then Perl. Then C/C++

------
robodale
Programming class featuring the Commodore PET. 1983.

------
speeder
I started at 6, my father is a civil engineer that loves to code (he is civil
engineer because that was the only engineering degree available to him,
otherwise he would have taken electrical), his dream is that I would be a
computer engineer and that I would invent great things.

He started to try to teach me how to code when I was 6, without much success,
since I hated typing.

Then he showed to me that I could make my own games... This was enough to keep
me learning for a while.

When I was 9 I asked to learn C (a thing my dad had offered before), he was
really happy and thought I wanted to help him in one of his inventions.

I learned, helped him a bit, and then wandered off to mod Dink Smallwood (that
use C inspired "C-script" as internal scripting language).

When my dad found out he was a bit sad, he thought that I finally was wanting
to make systems.

The same happened when I started to fiddle with ASM, he thought I was going to
do something great, then my "great" thing was a crap attempt in making one
game engine faster :P

My dad is still not really happy, sometimes when I am talking about computer
engineering he pouts and remembers me that I had a game design degree instead
of computer engineering, but he is now more supportive and gave up in trying
to convince me to not code games :P

