Coding As a Trade

This may be my weirdest piece of Photoshopped blog accompaniment yet.

One of my coworkers recently left an interesting Wall Street Journal article on my desk - it was a short piece by Christopher Mims about how programming should be thought of as a trade, more akin to welding or woodworking than, say, structural engineering (Side note: the article is behind the WSJ's paywall. Sorry!). Mainly, he thinks that a computer science degree shouldn't be the only thing that can get you into the field.

Mim's argument is that more and more people who work as programmers don't have a computer science degree - or sometimes any college degree at all. This is partially because there's a tremendous shortage of people to fill programming jobs, making employers more willing to substitute experience for diplomas, and that's because there's just so many things that need to be programmed. He claims that 67% of the programming jobs in the U.S. aren't in tech companies - they're in health care or machining, all the places where the equipment they now use day to day needs people to program the computers that run them. The other thing fueling this switch is the abundance of non-traditional resources people can use to teach themselves.

"Computer-science degrees teach theory and help the best engineers advance the state of the art, but we've entered an age in which demanding that every programmer has a degree is like asking every bricklayer to have background in architectural engineering."

While there is a bit of the usual breathless technology messianism in the article, it does seem that this shift could have some great consequences. Enrollment in alternative education opportunities tends to have better representation from people of color and women, and, given how many people in the U.S. are currently under, or unemployed, a shift to hiring people without requiring a CS degree could change the face of the tech industry for the better.

Mims is certainly right about the wealth of resources available to people who want to learn: sites like Codecademy or Treehouse or Code School, as well as MOOC hosts like Kahn Academy and edX, have opened up possibilities for anyone who has the time, interest, and dedication to learn how to code (or just about anything else that you'd care to learn). I, for example, am currently taking a computer science course at Harvard and polishing up my JavaScript in my spare time.

While online resources are great, supplementing them with in-person contact is always better. If you're interested in learning to code, you can always drop by our Learn to Code meetup (every Monday, 6-8 p.m. in the ideaLAB) or try our Intro to JavaScript classes, which will be starting in September.

Are you learning to code? What resources do you use? Are you planning on making it a career or are you just curious?

Comments

I think this Wall Street Journal article is one out of many attempts to encourage people to program so there will be an abundant supply of programmers. It is, however, not a fact that professional programming is a skill that just anyone can learn to do. It takes a very intelligent person with a specific kind of intelligence, and although there's some crossover between math and programming they don't require the exact same kinds of thinking. The author of this WSJ article is either knowingly lying or is too naive to understand how difficult programming really is. I say this as a successful computer programmer who started programming at age 6.

And keep in mind that there is a HUGE difference between simple programs that non-professional or non-college programmers usually write and the kinds of things programmers are expected to code at work or in college.This applies to most college projects beyond introductory courses and most projects programmed by professionals. It doesn't matter if it's web, mobile, microcontroller, or desktop/laptop - if you're talking professional or college programming, most people will not be able to succeed no matter how much training they have had. So having a degree in computer science is useful in the fact that it proves you're smart enough to program. But even if you're somewhat smart but may doubt your intelligence, there's still a possibility that you have that certain type of mental capacity to be a good programmer. To find out, do what I did. Start with super easy programs like printing characters on the screen and work your way up. And remember, getting errors is natural, and debugging those errors is part of the process, even for highly skilWSJled programmers.

Btw, keep in mind programmers may sometimes have to deal with nightmarish tasks like inheriting a huge program written by someone who left the company and is not there to explain the code. Now this may not be so bad if the code is commented, but many times there are few to no comments, which makes this task quite daunting and, well, difficult. Any programmer who has had to go through this knows what I mean here. Or dealing with bosses who have no clue what a reasonable time frame to develop an application is, and who say "it must be done by x date". This is one reason so many programmers have to work long overtime hours. Another reason deadlines are missed. Not all bosses are this unreasonable, but many are. But even just programming and debugging normal applications in the first place is a difficult task, which the author of the WSJ article doesn't seem to grasp. Now you can't blame him for initially not understanding if programming is really difficult as he clearly isn't a programmer, but one has to wonder if this article was screened by professional programmers for accuracy before being published.

Great blog Nate, just love the information you share and teach. I think I'll try out some of those free online courses just to see if it is something I could do/like.

programming (not coding, per se) is a trade, sure, but it's a fallacy that a trades can be taught in a few weeks; some universities (i went to one) also think of writing as a "trade", but i don't think you'd expect a few intensive weeks would produce a competent writer …

and what's the point of this article anyway? to whom exactly is it it surprising that intellectual craftwork may be done by those without a college degree? certainly not to the founders of several of the largest tech companies in the US; i think the article is essentially an advertisement, pretends this is news in order to promote online schools

30+ years experience, working with dozens of other programmers, has taught me that becoming a good programmer requires long-term, real-world skills development; few schools, regardless of format, can give that kind of experience

also, please be careful with terms like "coding": see http://scripting.com/2014/08/27/whatCoderMeansToMe.html

I wasn't arguing - nor, I think, was the article - that programming can be fully taught in a couple weeks. But you can certainly learn enough JavaScript or Ruby in a couple weeks to create something neat. Whether it was elegantly done, or whether you understand the principles enough to be able to apply what you learned to another project or language? Probably not.

As you say, mastering anything requires long-term, real-world experience. But that first experience, the apprenticeship that shows you how to weld or the components of a well-crafted story or how to build a simple app from the Google Maps JavaScript API - which won't teach you how to masterfully join two odd-shaped pieces of metal or write a compelling story yourself or make a completely original app - that first experience makes that skill less opaque. It makes it less like magic and moves it into the realm of the possible. And there's a sudden boom of widely-available, free, interactive tools that enable people to have that experience with programming languages. That's exciting.

Thanks for reading! And commenting!

I worked as a programmer for about 20 years. I had a college degree, but not in computers. To get a job, I did precisely as the article indicates -- went to a trade school. It served me quite well. With the huge cost of college education, and with too much of an emphasis by colleges and universities (I fear) on "credentialing," the case for trade schools is strong.

One thing that college and the trade school both overlooked is the relevance of critical thinking and the ability to pick up knowledge of the applications you're working on. This isn't to trivialize the need for technical knowledge, but there's more to it than that. If you're working on mobile phone billing, you need to be able to understand the business end of what you're building (or maintaining). Obviously neither college nor technical schools can impart every possible application, beyond communication skills and "basic smarts."

If I was an employer I'd look for someone with a generalist background, willing to pick up technical details on the fly, and ability to communicate well. This isn't to say that employers are looking for these skills -- they aren't always any smarter than anyone else these days. But that's what is needed to do the job well. So actually, college CAN be helpful here, but in communication and thinking skills more than in acquiring technical skills.

This is fantastic. Great information that I've just shared with a friend--thanks!

Glad to hear it. Thanks for reading!

Here at GVR last year I introduced some eager kids to basic coding using this site http://code.org/learn I was amazed at how they persevered and completed the tasks!

Post new comment