
Will successful Self-Taught Programmers please stand up? - loboman
I'm sure John Carmack and a few other famous programmers are not the only cases of self-taught programmers that have been successful (whatever the degree). Please tell us how it is being a self-taught programmer. Do you have a startup? Do you work for Google / Facebook / Apple / ...? Do you work on your own, or in someone else's company, and are as successful and acknowledgeable than your CS colleagues?<p>Please tell us your story.
======
dantheta
I'm self-taught, starting with C on MS-DOS at age 9 (I'm now 32). I moved onto
Visual Basic (ugh) at 12 because my C compiler wouldn't do windows programs,
and later moved to Borland C++ on Windows. I did later do a BTEC course in
computer studies, but that was just to hedge my bets.

I Switched to Linux in 1995/96, and have spent the last 15 years alternating
between systems administration and development roles. I've worked for large
online retailers, government departments, multinational manufacturers as well
as smaller content portal websites, and I'm currently at a search startup in
Cambridge, UK. I can program in C, Perl, and PHP, but the language I love most
is Python. I also love relational databases (PostGreSQL in particular), and
have quite a strong DBA-streak.

I've never really noticed much tension between the CS-taught and self-taught
programmers that I've known. I've often considered that a team is stronger for
having both types represented. The self-taught programmers, if they started
early, often have an additional 5-6 years commercial experience over the
degree-holders (for their age), but it all balances out in the end.

In terms of success, I'm gainfully employed, I'm well regarded by my peers
(it's one of the things that motivates me), I can still learn things, I can
still teach things and I'm not in management. Win.

I hope that's a useful response for someone!

~~~
mindfulbee
I'm in college, 20 years old. I've just started teaching myself ruby and
python. Do you think I would be able to develop crude prototypes of apps by
the time I graduate college? (in about 2 years?) I've been dedicating around
6-10 hours ever week so far and plan to dedicate more once summer starts.

~~~
dantheta
I would certainly think so (the two languages you've mentioned are both
regarded as being quite easy to get started with), but everyone is different
and is interested in different things. If the demo app you're writing (and the
framework you're using, if any) allows you to try something and see the
results quite quickly, that's a good way to avoid getting discouraged.

Although frameworks (Rails, Django etc) are a good way to avoid writing boring
or non-unique stuff, they do add to the amount of up-front learning you have
to do before you can write _your_ programs (since you have to learn the
language _and_ the framework at the same time). Trying out some noddy programs
that just use stdin/stdout is a good way to learn the language features first
and then the framework can follow afterwards.

Early code in any language is always horrible when you look back at it a few
months later, don't beat yourself up :)

------
kingofspain
I'm a self-taught programmer without a degree of any kind. I also code PHP on
a Windows box. As far as fellow developers are concerned, I'm lower than scum
:)

I'm successful in the way that I'm now earning a good living working for
myself, have happy clients and get lots of referrals. Let's just say it moved
me... to a bigger house.

~~~
Jem
Hello from a fellow self-taught, PHP-on-Windows developer. And I'm a girl,
which automatically makes me special ;)

------
dwc
I'm self-taught, without a single credit hour of college. In high school a
friend took a programming class and showed me a bit on a demo machine at radio
shack, and that hooked me completely.

I've worked mostly for smallish companies, and did consulting for a while. A
couple of years ago I had quit my job to work on my own project (a way too
ambitious startup idea), but almost immediately I got an interview for my
current job, which was too cool to pass up (space exploration). There's more
than one way to make a difference in the world. Now I head up the dev team
here.

Over the years I have spent a lot of time and money on books, and continue to
do so. There's always something to learn, and many people way smarter than me
continually creating/discovering new things to learn. If I had earned my
degree in the normal time frame that would have graduated in the late 80s, and
my education would now be woefully out of date, so I'd _still_ have to
continually learn.

Am I recommending _not_ going to college? No. It's probably better to go. But
certainly you _can_ have a career without it. But either way, get used to
learning and pushing yourself.

------
ncash
I'm primarily self-taught, and at the age of 21 I'm comfortable listing 8+
years of C/C++ development on my resume. I built my first web site when I was
11, and I started learning C when I was 13 so that I could add features to a
multiplayer text-based game (MUD).

I spent a few years running a MUD, doing some coding competitions, taking on
small freelance projects, and learning about data structures, networking,
graphics, and other things. When I was 15 I created a full Win32-based 2D game
engine for a school project. It even had a terribly designed scripting
language for defining levels and game behavior. After that project I vowed to
never touch Win32 development again.

When I was 16 they allowed me to take CS courses at our local university, and
I thought I'd found my home. Unfortunately I realized most college students at
our university don't really care about programming and are just there for the
degree. We had no hacker culture, and I tutored several seniors who couldn't
fix their own syntax errors.

I've been happily employed since I was 16. I've done freelance, small projects
at our university, computer technician work, and embedded systems software
development. When I was 19 I got recruited by Lockheed Martin to write flight
control software for the FAA for a summer. It was amazing, but I didn't want
to work at a big company in the long run, so I turned down the offer to
return.

Last March I dropped my job and began working on my startup full time :) I
should also note that I'm in college part-time as a CS/Economics double major.

I have to admit that most epic programmers I know didn't get a formal
education in CS. Some have degrees in other fields, and some have no degree at
all. I think passion for software and building things takes people further
than a degree. However, most of the programmers I've worked with that had CS
degrees did quality work and had a good understanding of CS concepts. They
just rarely seem to be coding demons.

------
aptsurdist
I took one java class in college, but that was about it when I started
learning javascript 3 years ago (along with html, and css). I carried around
the OReilly javascript book for the summer - read it on the bus, on the beach,
wherever.

For the last couple years, I have worked as a freelance web designer and
front-end developer. Now I'm pleased to have just gotten a job with the title
webmaster (for a section of a major news organization.)

I wouldn't call myself a JS ninja, but I'd say I can make a browser do some
cool stuff with some pretty clean code. And I'm getting paid pretty well for
it. And 3 years ago, I didn't know HTML. So, for anyone who wants to learn to
code from scratch, Go for it! Go to your library's programming section,
checkout something that looks 'elegant, yet friendly', and take it to the
beach. Or if you want something right now, this should probably do nicely:
<http://jqfundamentals.com/book/index.html>

Along the way: Listened to a couple podcast lectures, read a couple books,
read hacker news every day (thank you!), fell in love with jQuery, picked up a
little python, real a little about lisp, and found some start-up partners in
New York to start hacking on some fun stuff.

------
geebee
Self taught is a little difficult to define. I was a math major and took a few
CS courses: intro, data structures and algorithms, and then math classes with
a programming component (that often counted for elective credit toward CS):
graph theory, numerical analysis, linear programming.

That said, I pretty much consider myself a "self taught" programmer, because I
didn't take most of what I would consider the core of CS.

Can we define "self taught" as someone who didn't take a formal course in:

algorithms and data structures compilers operating systems ( _)

(_) must include a low enough level language that you are manipulating memory

By that standard, I'm self taught, as I'm missing the second two. I promise
myself I'll get the book and read them carefully, but I still haven't done it.

That said, I suspect that someone who did take the entire full "core" would be
pretty much as "self taught" where it comes to most professional programming.
However, I still think they'd be better prepared than I was for a programming
career, as compilers and operating systems is more relevant to professional
programming than real analysis and abstract algebra.

------
jhowell
Primarily self taught. Started in sales. Since becoming a programmer I have
received training from various companies that I've work for. I am working on
my own projects and have been employed as a developer for just over a decade.
So far, I've survived a few layoffs and the "all software will be developed
off-short" panic. If I had to do it over again though, I'd probably be a CS
major just to have had the earlier exposure to my peer group that has since
gone on to do some pretty cool stuff. I live in the Bay Area, so I'm spoiled
in that I have proximity exposure to some of the most active minds in software
is often readily available through meetups and other venues.

------
abosit
I started playing around with programming around the age of 13, but never
anything too serious. After getting a degree in mechanical engineering, I
applied for jobs in booth mechanical engineering and software development.

The software development jobs just seem like more fun and I went that
direction.

I have been a software developer for 9 years now, the last 2 years as a
successful freelancer and at the moment partial owner of a software consulting
firm (couple of employees, but growing fast)

The lack of a CS degree never has been a problem. All the developers I work
with value a person by knowledge and skill, degree is not that important.

------
clueless123
1\. Define self-taught. By the time I got to college I had already been
programing for five+ years. With respect to coding in general, college was
mostly a waste of time, but it did forced me to look at things I would had
never look at otherwise. (I got a Math/Comp Sci degree)

2\. Define successful. If it is about money, most IT workers in the US are
already on the top 90% money earners in the planet, plus (in my experience)
the more boring and un-challenging the job, the most it paid.

Maybe you mean famous? Lots of open source rock stars are not to rich in money
terms.. are they successful?

------
ScottWhigham
Does "successful" mean that you passed an interview and got a job as a
programmer? Or something else? I guess I don't quite understand what you mean.

------
haploid
I am primarily self taught( with some minor help from my father, when I was a
child ). I don't work for any of the "cool" places you mentioned, but I do
have a reasonably successful ecommerce business.

I did go to school, but I began programming tiny asm programs at ~8 years old
out of my dad's 8086 book and my obsession with software expanded from there.

------
portentint
If 'successful' means 'can code an application more secure than Windows', I
guess I'm in there. Self-taught ColdFusion (go ahead, laugh), PHP and Python
(my favorite). My staff uses the tools I've written to do their jobs. And
we're still in business. Woo hoo!

