How to Get into Software Engineering without a Degree

I have a major in Latin and a minor in Greek. Oh, and my backup plan in case that didn’t work out: I got the equivalent of a minor in Fine Arts and Ceramics.

Since it’s relatively widely known that I’ve been building software and engineering teams for 22 years without actually getting an engineering degree, it is with some frequency that I get questions like this:

How does someone who doesn’t have a computer science degree get the attention of your HR hiring folks?

The short answer that many of them don’t want to hear is: you don’t. You don’t get anyone’s attention because 1. you’re not qualified and 2. you’re nothing like what they’re looking for.

If you want a job writing software and don’t have a degree in Computer Science or years of experience successfully delivering software products, you’ve got a loooooooong road ahead of you. It’s like getting from Chicago to Milwaukee by way of London: you can do it, but there’s going to be a lot of tears, a lot of sleep deprivation, and, somewhere along the way, United’s going to lose your luggage.

Sometimes they press me for details on what they can do to get past this. I don’t know what they can do, but I do know what worked for me:

You start by writing a lot of code in your spare time until a local designer you know from the local Mac BBS who’s desperate for a programmer hires you to do a contract gig even though you don’t know what the fuck you’re doing. It helps here if you’re overconfident too, and then you panic and learn a bunch of stuff really quickly and puke out reams of crappy code because you’re in over your head but you eventually get the job done even though you’re only billing one hour out of every three you work since you still have no idea what you’re doing. You learn some more and then parlay that into a junior sysadmin job at an 8 person company where you’re basically the computer equivalent of the company garbage man. Work 80–100 hour weeks for a year or two and automate as much of your job as possible so you can spend more time writing software for actual clients (which makes you twice as much per hour as the internal sysadmin work even though you’re only billing one hour out of every two because you still have no idea what you’re doing). Then help build the development team, lead it, and manage a ton of work. Be sure to deliver things on time even if it means working 7 days a week all summer. And fall. And winter and spring. But keep at it because you’re obsessed with building things. Get involved in open source software because it’s interesting and you learn a ton from many great mentors and only later discover that you’re now part of an incredible network of programmers who work all around the world at companies that are desperate to hire more great engineers. Then, since you started doing some NeXTSTEP development and met some Apple engineers at a local user group, luck into a job at Apple and successfully deliver a huge project there that gets your entire division a big fat bonus that you and your team should have gotten alone. Oh, be sure to write a software reference book to kick off your “platform” and name on the internet. Leave Apple for a startup that turns out to be a non-profit (even though they don’t seem to know it), but make enough connections that you get the attention of Google. Get a job at Google and build and ship numerous products. Learn how to stop burning yourself out after burning yourself out. Twice. Then start a movement like The Data Liberation Front and do multiple press tours to tell everyone about it. Keep working and launching new products so that half the industry knows who you are by writing two more books and giving hundreds of talks. Then leave Google and start your own company.

It’s just that easy — that will get the attention of hiring folks for sure!