If you want to become a lawyer, you go to law school. If you want to become a doctor, you go to med school. So if you want to be a programmer, you go to… programming school? Meaning, you get a computer science degree or two, right?
Well, not so much. It’s a little more complicated than that.
In this post, we’ll take a detailed look at the paths to becoming a programmer, focusing on what education you need, how much of it, and where to get it.
What Education Is Needed to Become a Programmer? The Short Answer
The question of programmer education is a relatively complicated one. But the answer to the question, “what education is needed to become a programmer” is actually kind of simple.
Shortest answer: none.
The second shortest one, long enough not to be flippant is this: unlike many other knowledge work vocations, programming requires no special certification or credentials. Because of that and because programmers are in such high demand, there are no specific educational requirements. If you can demonstrate an ability to program, you can get a job as a programmer.
So, as you can see, there’s a short answer, but not necessarily a simple one.
No Specific Education Requirements Doesn’t Mean No Education
If you have no programming background whatsoever, you obviously can’t just wander on down to Apple Headquarters and request a six-figure programming gig. Incidentally, if you do try this, please record a video of the proceedings on your phone, because I imagine it’ll be pretty amusing.
So some minimum requirements exist. They have to.
And they do. It’s just that they’re situational and somewhat objective. Whereas a medical license is your only (legal) path to being a doctor, a computer science degree is just one path to being a programmer. Some companies may require it. Others might not, and instead will hire people with degrees in other things or with a lot of previous work experience.
For the purposes of this post, I’m going to break down the path of a programming career into a few “buckets.” This might not cover every human being that has ever programmed for a living. But it will cover most of them, and it’ll give you an idea of your options.
So let’s look at the different paths to professional programming and what education you need.
High School Degree, Self-Taught
Let’s start off with the least amount of education that will probably work: a high school degree. Now, you might occasionally find a programmer without even a high school diploma. But remember what I said—we’re covering most cases. And most of the time, lacking a high school degree disqualifies people from knowledge work jobs.
Armed with only a high school diploma, you could teach yourself to program. This might happen in a variety of ways, or some combination.
- You just hack around, experiment, and figure it out.
- You buy a lot of books and put yourself on your own self-directed program.
- Or maybe you prefer videos and take advantage of material from sources like Pluralsight or Udemy.
- Perhaps it’s a few courses at a local community college or some such, which amounts to learning, but not “an education,” per se.
Or maybe you go some other route entirely. Whatever the case, though, you somehow, by hook or by crook, learn to program.
All set, right?
Well, not really. Knowing how to program and receiving a salary for it are two different things. Once you know it, you’re going to have to work your way into the role professionally since companies tend not to hire people with no programming work experience and no training.
So people following this path tend to get non-programming jobs within companies and then look opportunistically for changes to showcase their programming skills and take on little projects. Eventually, doing enough of these, they work their way into a formal programming role.
High School Degree/College Degree and Bootcamp
In more recent years, a new trend has emerged in the programming world. I’m talking about the so-called “coding bootcamp.”
Historically, you had college degree programs and then you had shorter, more focused, vocational programs. So you go to school for four years and get a degree in Economics or whatever. Or, instead, you spend a year in culinary or beauty school.
Programming bootcamps are shorter than that. Way shorter.
I believe a typical one aims to turn you into a professional programmer in something like three months. Did I mention that demand for programmers is insane? That’s why you can find companies willing to take a flyer on hires after such a relatively short stint learning the trade.
And they work. Coding bootcamp graduates do find jobs, often with the help of the bootcamp organization’s placement arm. Beware, though. They’re not for the faint of heart in that they cram a LOT of stuff into such a short period of time. You’ll work really hard.
And then you’ll get that first programming job, but you’ll have a relatively limited subset of gigs from which to choose. Many organizations don’t hire bootcamp graduates, and many of the ones that do will make them “apprentice,” “junior,” or “probationary” hires. If you go the bootcamp route, you’ll have more dues-paying to do upon entering the field.
College Degree in Something Non-Programming-Related
Leaving aside the people who teach themselves at home and the ones who reboot their careers with a bootcamp, we now have a much different path. Here, I’m talking about people that sort of wander into programming during the course of their careers.
As anyone with more than a decade of standard corporate experience can attest, careers tend to drift in surprising ways. Look at me, for instance. I started off as a programmer, later became a manager, executive, consultant, and trainer, all in the tech world. So I now naturally run a marketing agency.
And just as I floated out of a programming role due to circumstances, other people float in. Folks with degrees in business, finance, design, and other disciplines graduate and get jobs doing what they learned to do. But maybe, as they do those jobs, they start doing a little programming here and there to help themselves out.
For instance, imagine someone that starts out in finance or accounting. There are a lot of spreadsheets in that line of work. So maybe they graduate from complex formulas to macros and eventually VBA, which is a little programming language you can use to make spreadsheets more spreadsheet-y.
Now, nobody at this point would consider our erstwhile accountant to be a “real” programmer. But this person is programming. And over the months and years, they might gradually start doing more and more of it. Eventually, people in other groups start depending on this automation, making feature requests, and causing the person to spend more time programming and less time finance-ing.
Once that happens, assuming the person likes the work, a “programmer” job title is only a matter of time.
College Degree in Computer Science or Similar
Last, but not least (but easiest to explain), is the “standard” path of the college degree. I did this (bachelors and masters), so I can speak from a great deal of experience here. You spend four years earning a degree, and then you graduate with a very reasonable expectation of a programming career soon out of college.
Now, in college, you don’t really learn applied programming skills in the way everyone so far does. Instead, you learn some of that, but you also learn a lot of math, a lot of computer theory, and a lot of background. This helps to make you a more well-rounded generalist, but it takes longer and does tend to fill your head with a lot of stuff you’ll never have occasion to use.
The upside here is the relative lack of friction once you enter the workforce. Every education-level “bucket” we’ve looked at so far has a LOT of proving and dues-paying to do. And while this is still true of entry-level CS graduates, they have by far the least trouble establishing themselves in careers. In fact, a large number of destination employers and Silicon Valley companies will take only CS graduates or else people with a LOT of programming experience.
There Are Many Paths, But Which is the Right One?
I’ll close by offering some thoughts on this question since the post would feel incomplete without it. But I must warn you, I’m not just going to say “oh, get a CS degree” or anything that simple.
I went the CS degree route, starting about two decades ago. Degrees were expensive back then. They are WAY MORE expensive now. Like, diminishing-returns expensive. You can go get yourself a $200,000 CS degree if you want, and it will make it easier for you to land that first job, no doubt about it.
But is that easiness worth $200,000?
What if you just saved the money, taught yourself for two years for free, and paid your dues for a few years? You’d avoid the debt and start with a salary not much below your CS counterpart. That might be the financially wiser choice, frankly. And then there’s always the bootcamp option or an associates degree to kind of split the difference.
I wish I could give you a simple answer, but it doesn’t exist. You have to evaluate your own situation. But I will tell you that you have a lot of options, and you don’t need that CS degree to become a programmer.
So what education is needed to become a programmer? Whatever combination of learning and professional experience gets you that programming job.