Hacker News new | past | comments | ask | show | jobs | submit login
Will successful Self-Taught Programmers please stand up?
17 points by loboman on Apr 6, 2011 | hide | past | web | favorite | 15 comments
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?

Please tell us your story.




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!


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.


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 :)


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.


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


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.


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.


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.


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.


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.


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.


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?


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.


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.


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!




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: