Evaluate Weigh the pros and cons of technologies, products and projects you are considering.

Is a college degree required for computer programming?

Is computer programming becoming a trade? Technically speaking, you can skip college, go to coding school and land a good job. Here's why that's a bad idea.

Is computer programming becoming a trade? By at least one account, it is.

An article published in the Wall Street Journal claims that would-be programmers can skip college, go to coding school and land a job. In "Computer Programming Is a Trade; Let's Act Like It," Christopher Mims says that a computer science degree is no longer a prerequisite for getting hired as a software developer. The evidence he offers to build his case is that coding schools -- Codecademy, Code Fellows and others -- teach students basic computer programming skills over the course of a couple of months and are turning out non-degreed graduates who get hired.

Skipping college and jumping into the work world after a couple months of coding school is certainly plausible given the high demand for computer programmers, but it's a bad idea. In this edition of Quality Time, I explore why the argument that computer programming is a trade makes no sense. 

Harder than it looks

The idea that computer programming is a trade assumes that coding is a fixed skill set, but it's not. Languages and frameworks change all the time, and new ones emerge constantly. A skilled software developer, trained in algorithms and other computer programming concepts, can move among them with relative ease. It's not as easy if you haven't had extensive training.

A team sport

What troubles me most about the "programming is a trade" argument is that it completely ignores the context in which software is planned, coded, tested and maintained today. It assumes that writing software is a solo activity -- the lone cowboy coder in a back room, interpreting requirements however he or she wants -- but that is precisely the approach that often failed to produce software of value for businesses and has given software pros such a bad rap. All of the current thinking about software development -- the Agile methodology, for example -- can be seen as a shift away from that mentality. In other words, a coder works alone, but software development is a team sport.

Collaboration skills are key

Under the current, whole team approach to software development, essential skills go way beyond just coding or testing. You need the ability to interact and collaborate effectively with others and the willingness to take on tasks that may initially fall outside your comfort zone. That includes testers coding scripts for automation projects, developers crafting unit tests to check their codes before they write the code itself. Both developers and testers must work with business stakeholders to effectively elicit the right requirements for the project.

Most [software professionals] stand to benefit greatly from a four-year degree.

Traditional computer science degree programs don't teach collaboration skills, per se. (They should, but that's a whole other column.) However, beyond basic knowledge, college teaches us a million things that prepare us for the workplace. It teaches us how to think, how to argue our case before a group or through the written word. Mastering these activities instills confidence that carries over into the work place, making us better team players and better software professionals. And there is a no way a couple of months of coding school can teach us that.

Yes, I know, Mark Zuckerberg didn't finish college -- nor did Bill Gates, or countless other highly successful people in the software business. But most of us stand to benefit greatly from a four-year degree.  A couple of months of trade school may work for some professions, but not ours.

Next Steps

Learn more about programming definitions

Has Computer Programming Really Changed Much?

Still No Answers to Address Gender Inequity in Programming and Development

Dig Deeper on Topics Archive

Join the conversation


Send me notifications when other members comment.

Please create a username to comment.

Do you think software professionals can move up the ranks without a four-year degree?
You will only be able to move so far. In my opinion unless you have the 4 year degree minimum you will never get into a management position of an IT department.
I personally know folks in other industries who were told by their boss something along the lines of "I want you for this new management position, but I can't put you there without the piece of paper." One friend's boss flat out told him to get the quickest cheapest bachelor's degree he could get online. I assume it would be the same for folks in application development. Even when the boss knows you're the right woman for the job, if HR says the job candidate must have a bachelor's degree, that's a hoop you have to jump through. 
I am a bit biased, but having a computer science degree from a solid four-year program tells me (when hiring) that you can handle the concepts and realities of all types of software development situations, code in almost any environment i put in front of you, optimize, manage, and understand the planning, coding, testing, releasing, iterating processes involved in any project.   

Not having that raises a lot of questions about your breadth....are you a one trick (language) pony who read a few books? That's great, but your potential is less in most work environments.

Specialization and experience, examples of successes with a particular environment can be a great addition to those types of credentials, but if they are on their own, that candidate is going to have to do a whole lot more convincing to get an enterprise level job.  

An entrepreneurial venture that had successes or experience can cure a lot of ills for more modern companies that don't 'care' about your university experience....but you'll have to search hard for those jobs, probably find them through networking or personal introductions.

If you don't have a solid CS degree, don't have a lot of experience, and find a company willing to give you a shot,  you'll be fighting an uphill battle, have to prove yourself quickly and starting from a much lower place unless you are an exception or in a special situation.
As far as upward mobility goes, your mileage may vary -- I wish more businesses were merit-based, but the reality is that the stigma could hold you back
At what point does experience make up for the degree? 
I have a 2 year degree earned back in the early 80's. I have 30 years of exp in IT starting back in the days of Cobol,Fortran and RPG I and RPG II. Those were just mere blips in the past. I have worked with RPG for more than 25 years. A few years ago I had the opportunity to make a career change at 50 years of age. I switched over to the VB .Net world and am writing web services for legacy RPG/ILE systems. The only reason I did not finish my degree (I tried a few classes) is the schooling got boring for me. I will never need another computer language course to get the degree. It's just more senseless academics in my opinion.
With the economy the way it is and me being this late in life, it may not justify the expense.
Todd, your background and experience speaks for itself and your ability to transition careers should impress any hiring manager as well as your current employer.  Anyone denying you a management or higher job or upward mobility in any of your areas over your educational background needs an examination/demotion of their own ;) (imo).

In most merit-based environments, promotions and increases happen blind to educational experience but when transferring jobs to achieve a higher  position you'll often bring in outsourced HR, detached HR, screening, recruiters or otherwise where folks are measured on hitting a certain 'qual' .    you'd hope they'd look beyond it, but you put the power in their hands....and those hands might rather package up a set of candidates that hit a spec and move on to the next job req.

Yes University and College teach you how to think analytically which is very important in software development, coding is just a part of this but is not all, Programmers  at least need basic knowledge of many areas is not just coding and that's it, sometimes you must be prepared to do your own analysis.  
But best of all you need degree and Experience, they both go hand by hand. I agree with Jcoyle someone with a degree and a little of experience at least tell me very clear that If I give any piece of code to  this person he/she can handle the concepts and realities of my needs. I will not be babysitting this person every time I have a problem. 
A lot depends on the future employer. Some won't even give an interview unless you have a college degree. More and more want a 4 year degree nowadays. Back in the 80's a 2 year degree was sufficient.
It also depends on the environment. There are still places that work in a "black box" style. The coder doesn't know anything except if he gets this input, he does this output. All of the decisions are made in a higher layer. But there isn't a lot of advancement potential .
I'm not a programmer, and I've realized I won't become one just by taking a few classes. As Jennifer notes, there's much more to being a successful programmer than just learning the technical essentials. Of course, for some employers (and employees), those basic skills may be enough - it just isn't the most flexible way to create a flexible, adaptable development team.