Is Learning to Code Overrated? Not If You Couple it w/ These 3 Skills

GE is great at a lot of things: wind turbines, medical equipment, engines, finance, software development, even advertising as can be evidenced by the “What’s the Matter with Owen?” videos produced by Madison Avenue powerhouse BBDO.

But GE brings up a serious topic in these brilliantly hilarious commercials: what is software development?

The best of the series of three videos is the one where Owen discusses his new software development job at GE at a backyard barbecue, but he’s one-upped by a friend who also just got a coding job at fictional company Zazzies creating apps that puts fruit hats on cats. This scene shows a battle between frivolous software and world-changing software.

And recently, Stack Overflow founder, coder and blogger Jeff Atwood, writing in the New York Daily News, brought this dilemma to our attention in his article Learning to code is overrated: An accomplished programmer would rather his kids learn to read and reason.

In essence, what Atwood argues is that in our breathless declaration that all kids should be taught to code (New York Mayor Bill De Blasio promised that within 10 years all city schools will teach software programming to kids), we might be teaching kids lower-level vocational skills.

Atwood declares: “I worry that we are effectively teaching our children the art of automobile repair.” I agree with Atwood to an extent. If all we’re telling our kids is that after taking a 10 hour course on coding, they can go out and create the next billion dollar startup, then we’re filling them with illusions.

But I take issue with Atwood’s statement about computer science. Atwood again: “Computer science is less an intellectual discipline than a narrow vocational skill.”

We don’t need anymore frivolous apps of cats wearing fruit baskets on their heads. But we do need kids who can deliver life-changing software like our beloved Owen does at GE, and this requires knowledge of math; written commnication so you can turn a business vision into working software; and communication and collaboration skills to work in a team environment.

Know Math

Kids really need to know how math works. There is a correlation between understanding mathematics and being able to "think algorithmically." That is, to be able to think abstractly about quantity, processes, relationships and proof. Developers need to understand variables, for loops, goto statements and basic co-ordinate geometry to put graphics on the screen.

Written Communication

The most challenging aspect of building software is transforming customer requirements (or problems) into functional software (a solution). This requires the type of thinking that can change an idea or need into something tangible - so to speak - but there is a lot of work in the process, and documenting this process is key. An Image says more than a thousand words they say.

how-to-clean-a-fish-tankA quick story to illustrate my point. Last weekend I was cleaning the fish tank with my 6-year old daughter, and all of a sudden she took a piece of paper and started to write down step-by-step instructions on how to clean the fish tank. I was like, “Wow, really?” And she responded: “Yeah you have the tank here, you need to take the water here, take the fish out, clean the rocks, etc.”

She mapped out the whole process!

And I laughed because I realized, that’s not coding, but IT IS a core task of computer science! My daughter stated the problem and outlined all the things we had to do to clean the tank.

Working in Teams

Emotional intelligence, communications and working collaboratively are not just interesting interview questions – they’re real skills you need if you want to coordinate a software project with a lot of moving parts when those “parts” happen to be people.

And to paraphrase Atwood on his own ‘about page’, coding is people.

Conclusion

So while I laud Atwood’s attempt to keep kids from a life of drudgery, coding as a lower-level vocational skill, I need to counter his claim that computer science is a “less than intellectual discipline.”

You need to know how to think abstractly - math is critical here. You need to translate requirements into working software with written communicaton to map out how you’ll get there. And you need real people skills – not just the kind of people skills you lie about on job interviews.

Because software can “transform the way the world works,” as our earnest friend Owen from GE’s latest commercials states. And I want my daughter to be able to change the world. Don’t you?

Since you got this far, you may be interested in related content - check out this e-book!

eBook - Software Delivery in the Digital Era, for the Now Economy