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.
[+] [-] dantheta|15 years ago|reply
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|15 years ago|reply
[+] [-] kingofspain|15 years ago|reply
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|15 years ago|reply
[+] [-] dwc|15 years ago|reply
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|15 years ago|reply
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|15 years ago|reply
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|15 years ago|reply
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|15 years ago|reply
[+] [-] abosit|15 years ago|reply
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|15 years ago|reply
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|15 years ago|reply
[+] [-] haploid|15 years ago|reply
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|15 years ago|reply