Is Learning 'How to Code' Still Worth It?
Pexels

Is Learning 'How to Code' Still Worth It?

NOTE: This article was originally published in FORBES Under Forbes Under 30. See original here.

I’m starting up to solve a problem I care deeply about…. Should I learn how to code to build out a prototype? Should I outsource development initially? Should I study computer science? These are questions that every first-time entrepreneur asks. Back in 2014, my vehement answer in an article called “Should We Require Computer Science Classes?” was to learn computer science or at least be able to program yourself. The basic premise has been echoed throughout mass media with everyone from Bill Gates to the New York Times to the Estonian Government pushing more students to learn how to code.

And perhaps in the age when cloud computing made it possible for twenty-somethings with an internet connection to create Facebook, this was a good idea. For the past ten years, software really has eaten the world as Andreessen Horowitz and Netscape founder Marc Andreessen proclaimed in 2011: today we call our taxis from Uber, we stream movies on Netflix, and we order food through DoorDash.

Four out of five of the largest companies in America (by market cap) are software driven tech companies and for the past ten or so years, it seemed like studying computer science or at least “learning how to code” was like an El Dorado to becoming “the next Mark Zuckerberg.”

Or if the whole “start up and change the world thing” didn’t work out, there was a relatively paved and uncertain path to a plush six-figure software engineering gig right out of college at a Silicon Valley tech company (Glassdoor reported the average Silicon Valley software engineer’s salary was ~$110k as of July 2017).

What’s to lose?

Coding bootcamps like Flatiron SchoolGeneral Assembly, and Make School arose soon and seemed to promise the impossible -- bypass a four-year computer science education to covet a software engineering role in San Francisco after only a few months. Plus with the deluge of venture dollars being deployed into startups (2015 saw $47.2 billion invested), there was always an excess demand for software engineers at high-tech companies.

But now it seems like the very fact that these coding bootcamps even exist prove that software engineering as we know it is quickly becoming commoditized….After all, if a non-engineer can learn software engineering in three months, why can’t that work be offshored or even automated? 

It seems like the tech world is going through some fundamental changes. According to AOL Founder Steve Case in The Third Wave, the “second wave of technology” of the 2000s and 2010s characterized by social networks like Facebook, search engines like Google, and SaaS companies like Salesforce is giving way to problems that can’t just be solved using only “code” (i.e., programmable software). These novel problems will create a new wave of startups that are driven primarily by information, heavily regulated by the government, rooted in the physical world, and around entrenched industries like agriculture, education, and finance.  

The result of this transformation may be what Jason Tanz posits as “the end of code” in his May 2016 WIRED article "Soon We Won't Program Computers. We'll Train Them Like Dogs." His argument is that with the rise of machine learning (ML) -- a type of artificial intelligence in which you feed a machine massive amounts of data and an algorithm “learns”  how to do things like identify objects, send you the most relevant information on your Facebook newsfeed, or even self-drive a car -- even the smartest engineers don’t know how their program actually works. As Android creator Andy Rubin says, “after a neural network [the cutting edge of machine learning] learns how to do speech recognition, a programmer can't go in and look at it and see how that happened. It's just like your brain. You can't cut your head off and see what you're thinking.”

Already we’re seeing the decline of software engineering jobs. According to computer scientist Martin Ford, the author of The Rise of the Robots, there’s currently around a 50% excess supply for full-time software engineering jobs (many successful coding bootcamps are closing). Software developers are taking jobs that they are overqualified for or are freelancing and in doing so are competing with the millions of freelancers offshore.

After all, when you just need someone to make the initial prototype of your iOS marketplace app (before you have traction to really build out an in-house team) where all that needs to be done is to simply follow a series of instructions available online in tutorials or mash together a series of APIs to write the app, why pay $100k to a developer in Silicon Valley when there are hundreds of people on sites like Freelancer begging to make your app for $15k in India? According to Ford, offshoring is just a precursor to automation.

Today, the reason Silicon Valley companies pay engineers big bucks is because when you have complex architectures in mammoth programs, "coding" is less important than the problem solving, breaking down problems into smaller ones, thinking about security, thinking about how to scale the solution to millions of users, and thinking about systems (which takes the bulk of the time and comprises much of computer science). 

Of course these problems will not magically go away because of ML and there will always be a demand for engineers who can solve them, but it seems like with rise and proliferation of machine learning, “coding”--the act of banging your hands onto the keyboard--will probably matter a lot less than finding the best data, pruning it, and then training an algorithm with it.

All of this begs a question: is it still worth it to “learn how to code” for young people and entrepreneurs? There’s a lot of layers to this question; while coding will always be necessary in some regard (after all ML can’t replace everything--you don’t need it to derive the amount of payroll to pay for example), simply being able to program up an Android app doesn't earn you much competitive edge over anyone else or give you the ability to build something substantial in a super-saturated tech world where every software idea has already been done by ten entrepreneurs before you. Still, from an education perspective, is it important for students to understand the basics of how programmable software works to understand how the world works? Absolutely. 

Nevertheless, perhaps to get ahead of the curve (not only in terms of opportunities to build a lasting business but also from a job perspective), it might be more useful to learn coding and algorithms as soon as possible to have a grassroots understanding and then spend the bulk of time studying the computer science of ML (which is interestingly rooted in the mathematics of probability, calculus, and linear algebra). 

In other words, learning machine learning--and computer science more generally which is of course quite broader than just "programming" or "coding"--might make more sense from a futurist perspective than spending non-renewable time learning how to make a web-app (unless you’re willing to compete with millions of developers offshore and want to risk being automated within a decade). Now one could argue that learning how to code will still teach a lot of problem solving and sheer perseverance; this may be true, but I’d argue that you can get the same benefits by learning ML or computer science more broadly. 

Who knows--it already seems like some day soon building machine learning algorithms will also become automated with AIs that build AIs. But for now, it seems like it may be a path worth pursuing.

Caleb Dunwell

Software Engineer at TechnologyOne

6y

I strongly believe that to get into any industry that involve coding you really should have other kills to contribute as any one can copy and past blocks of code.

Like
Reply
Berke Arslan

Software Engineer at Atlassian

6y

Who knows it --maybe you are spreading bullshit everywhere, as being self-producing automated bullshiy-spreader.

Gardy Rosius

Deputy CIO - Architecture Engineering Technology & Innovation (Acting) at U.S. Department of Energy (DOE)

6y

Yes. But it will eventually become a thinkless job...

Like
Reply
Scott A. Miller, P.E.

Senior Staff Engineer at Seno Medical

6y

Saying that "coding is less important than ... problem solving, breaking down problems into smaller ones" in a system with software is like saying that understanding how to turn a wrench is less important than being a mechanic. It may not be as complicated, but it's a crucial building block for working with large systems with software.

To view or add a comment, sign in

Insights from the community

Others also viewed

Explore topics