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.
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.
Learn more about programming definitions
Has Computer Programming Really Changed Much?
Still No Answers to Address Gender Inequity in Programming and Development