I believe everyone should learn to code. I've written about this topic before and hold myself up as an example: if an art major can learn to code and find success in technology land, why can't everyone do it?
I don't feel particularly well designed for coding and I didn't come from a place where I was encouraged to get into STEM. Plus, I'm not a unique example. Silicon Valley and Silicon Alley are teaming with coders from non-tech backgrounds who got interested in tech, and found happiness. David Byttow is a great example. In his blog post, "ABC: Always Be Coding," he writes:
"I don't have a college degree. I started programming professionally at the age of 19 after leaving Chicago for Southern California. Everything I owned fit in my car ... That was 12 years ago ... Since then I've worked at Double Helix, Namco Bandai, Google, Obvious and Square."
(You should read his full blog post for great tips on how to prepare for a technical interview. He is spot on. Here's another link to it so you don't have to scroll up.)
Let's agree that it can be done. That non-technical people can learn to code, which will open doors to better jobs and a richer understanding of the rapidly changing world around us, where computer chips and software are finding their way into every aspect of our lives.
The real question is how does one become a David Byttow? Does coding, like being a lawyer or doctor, require years of intense study and academic training? Do you have to be young? Do you need to invest thousands of dollars in your future?
Perhaps it's cruel, or naive, to recommend that everyone, all 7.086 billion of us, learn to code when expensive schooling and the thousands of hours required are just unavailable to most of us. Even with all that, there is no guarantee of becoming a great coder with a great job at the end of this process.
To find the answer I sat down with Avi Fombaum, co-founder and Dean of The Flatiron School, an innovative program that is tackling these very issues. Like Hacker School, General Assembly, and Codecademy, The Flatiron School is a trade school for coding. Each of these institutions have their own unique approach. I've met with all these schools while looking for coders to hire (hiring is a huge problem in technology land since there are not enough great coders to meet the demand -- America just doesn't create enough of them).
Business Insider calls The Flatiron School the "Harvard Business School of coding... Only 10 percent of applicants are admitted, but 100 percent of its students secured jobs..." That's a pretty good track record for a program that takes 12 weeks and costs $10,000. The secret seems to be in the student selection process and innovative approach to teaching software development that Avi has pioneered. In speaking with Avi, I found a man with a philosophy that is available and open to everyone. Visit The Flatiron School prework website for a practical taste of what Avi and his faculty have put together. Heck, if all our interview candidates were solid on the basics presented on this page the HuffPost Tech interview process would have a much higher hit rate.
One question I had for Avi was this: Why do we need so many coders?
Avi pointed out that in today's world every business is run by computers and automated by software. As we add more manufacturing, medical, defense, and even food service jobs to the general economy, we need to add even more coding jobs to create and manage all the technology that runs our supply chains, cash registers, and benefit plans. Avi noted this "software crisis" was predicted years ago by one of the fathers of computer science, Edsger Dijkstra: "... the electronic industry has not solved a single problem, it has only created them, it has created the problem of using its products."
Avi believes that coding is a "human activity, not something machines do." Computers read and run the code we write but they don't write the code themselves (at least, not yet). Avi explained that coding is very similar to making a list of things to do or writing a recipe. I believe this as well. Strip out all the details of the clients, servers, configurations, and data models, and every computer program is just a list of steps that must be executed in a particular order.
If Avi and I are right, why aren't more people jumping on the coding bandwagon? Why is it perceived as something really hard to do and, let's face it, not hip and sexy? Avi says the problem lies in the way computer science is taught. In traditional computer science programs there is an emphasis on higher math, algorithm analysis, scientific jargon, nerdy trivia questions, and testosterone-driven competition which all lead to an aggressive and antagonistic culture. This is another point that Avi and I agree on. A great example is the typical tech interview process: hours spent answering brain teasers, hand-writing half-remembered sorting algorithms, and responding to random technical questions out of the blue. It's more a test of stamina and tribal affiliation than the measure of how good a coder a candidate is or will become.
Ellen Ullman, in her New York Times opinion piece, "How to be a 'Woman Programmer'," describes why one group of people, women, are not enthusiastically becoming coders. In order to succeed she's had to ignore the negative elements of coder culture and its built-in sexism:
"Yet I could see that, at the deeper reaches, it was as if some plague had specialized in the killing of females. I looked around and wondered, 'Where are all the other women?' We women found ourselves nearly alone, outsiders in a culture that was sometimes boyishly puerile, sometimes rigorously hierarchical, occasionally friendly and welcoming."
The one point that Avi and I don't exactly see eye-to-eye on is the question of how long it takes to become a coder. It took me years and I'm pretty sure it took Avi years as well. Avi likes to think that you are coder "when you start writing your first program" but that's an aspirational statement to me. A jogger is not a marathon runner. Avi does agree that it takes time for the "abstractions to click" and that you're not going to be the best coder after only a few weeks. But you can be employable.
I remember the exact moment in 1990 when I fully understood what a pointer was and a pointer to pointer (a powerful abstraction in C and C++ programming). I remember whom I was with, what I was wearing, and the time of day. I ran up to the other programmers babbling incoherently about beauty and joy of it. An enormous power was now at my beck and call. It was like I had found a secret door that led to the inner workings of the universe. Prior to that day I had been laboriously copying and pasting code, taking it on faith that it would work if I followed the recipe correctly. After that day I could explain why the code worked. I was no longer blindly typing, I was coding.
There is absolutely no reason why you can't join Avi Fombaum, David Byttow, Ellen Ullman (who has a degree in English), and John Pavley on the road to coding. The skill of coding is no different from the skill of reading and writing English or any human language. For thousands of years literacy belonged to the rich, the powerful, and their administrators. We now understand that literacy is a right that belongs to every human being. In the same way, we live in a coding illiterate world where the skill of programming computers belongs to a priesthood. The Flatiron School, Hacker School, General Assembly, and Codecademy are here to break that priesthood and let us in.