I don’t have a computer science (CS) nor engineering degree. I didn’t drop out of college or skip it all together because I was buried in lines of code working away as a developer. It’s the reality of my background.
As a result, I’m certain there are important technical aspects of software development that I don’t understand. In fact, I would bet there are technical aspects of computers and programming that I don’t even yet realize that I don’t know about.
And the truth is that I’m okay with it. After starting to program, thoughts of being in over my head crept in. How could I possibly get my programming abilities to be equivalent to an entry-level developer? But that’s no longer the case. I’ve come to terms with the fact that I’m a non-CS degree web programmer.
Are College Degrees All Hype?
There has been lots of noise the last few years about college debt and people bucking the college trend (“college is for suckers”). So you might think I’m better off. Well, don’t take these stories as the almighty truth; in fact, you can chalk up the uncollege movement to PR fluff.
I’m not saying that this movement doesn’t have valid arguments and dedicated, intelligent individuals working to disrupt an educational industry desperately in need of it. But, if you want to gain professional employment as a developer today, every job description will mention requirement of a CS degree or equivalent experience (EE). Perhaps employers in the future will catch up to speed with the trend away from college degrees, but not yet.
Interestingly, spending four years in school doesn’t necessarily prepare you as a programmer on Day 1. The degree is often used as a ‘stamp of approval’ to indicate you’re capable of learning new, complex material. Ultimately, your skills at development boil down to time invested in honing the craft.
Succeeding Without The CS Degree
A computer science degree will make it much easier to get your foot in the door with employers, but you can still do it without one. If you’re in the same boat as me and a CS degree is not an option, you’ve got to take other avenues in order to gain more experience.
If You Build It, They Will Come
Nothing speaks louder about your abilities as developer than demonstrating the code you’ve created. Create your own apps and contribute to open source. It will enhance your abilities and open doors within the developer community.
Or you can go the route that Bryan Helmig and the other Zapier cofounders took. None of these guys have a CS degree, but they’ve built a budding SaaS business, gained customers, and were accepted and successfully completed YCombinator. Bryan’s own words on the experience are worth the quick read.
Ignore Formal Job Descriptions
If running your own company is not your fit, there are still many great opportunities. If you’re a self-taught programmer, than you’re incredibly self-motivated and driven.To find an employer to hire you and give you experience, you’re going to have to harness that same spirit.
Take that same drive and apply it to convincing a person to hire you. You’re not going to woo anyone on paper with your resume; you’re going to do it in person. Look for companies that are hiring entry-level engineers (<2 years experience) and network with their current engineers using LinkedIn or better yet at local meetups. Also, look for companies with multiple open engineering positions; companies in need of talent will be more likely to place a bet on hiring you on the cheap in order to develop your skills further.
Non-CS Majors Learning to Program Conclusion
Whether you have a computer science degree or not, learning to program requires much hard work, determination, and perseverance. Be prepared that if you don’t travel a traditional route, you’ll need to hustle a little bit harder to create your career path.
UPDATE: Join the discussion on Hacker News.