The tech news world functions much like a sine curve. Certain topics will gain a lot of publicity and then quickly die down, only to restart the process three months later. This happens with a plethora of tech genres, and one that seems to be on the rise right now is "Programming for the Everyman". Essentially, the idea that everyone can - and should - learn how to code. It's a topic that comes with a lot of passion, but also a lot of debate on either side. Some people say that
coding is worthless to the average person, while others thing it is
absolutely essential. Personally, I fall somewhere in the middle - I think that there is value for everyone learning to code. If not for the ability to simply speed up mundane tasks you may do at your day job, at the very least learning to program gives you a different perspective on how to approach problem solving.
The real question that needs to be answered around this debate is
how should we learn to program. I don't think that anyone would argue that it would be bad if everyone knew how to code - I think they just argue that the amount of work required to teach programming isn't worth the gain. We've seen tons of startups come up to fill this space.
Cloud9IDE lets anyone code from anywhere;
CodeCademy makes it easy to start learning; and tons of other startups are
providing resources for learning to code.
The issue, though, is that all of those solutions require me to personally commit to learning something. This resonates with me as a self-taught programmer, but what about your Mom? Is she going to one day decide she needs to learn to code and head over to CodeCademy? I don't know your Mom (probably), but I can certainly say that mine isn't. Not just because our Moms aren't tech savvy - mine is, by the way - but because none of them care about learning to program. So, much like any other topic that no one cares about, but society has deemed important ( see: History ), if we want universal proficiency in programming, then it needs to be part of formal education.
A new startup,
CodeHS, agrees. They're working to put the necessary tools into educators hands in order to teach our kids how to program. Long story short, they've got online courses to get teachers up to speed on programming, and then provide online curriculum and resources for teaching intro to programming classes.
Unfortunately, I don't think this is enough. I had the great privilege of going to a high school that offered intro programming courses. Our teacher apparently used to work at Sun, and was some sort of big shot on pushing out Solaris. These credentials assured me that she was certainly proficient enough to teach a beginners programming course. Long story short, she was not - and this is the issue. Programming is a rapidly changing field - it is always evolving, and the best practices of yesterday are grossly deprecated today. The idea of taking a crash course in a subject and then teaching it to high schoolers may work in other subjects (probably not...), but it is impractical in Computer Science.
To effectively teach programming in a high school setting, educators need a deep understanding of programming, and need to be keeping up with the evolution of the field. I know what you're thinking -
that's impossible. If someone meets the criteria of what's necessary to teach programming, they're not going to teach programming. I can think of little reason that someone would choose to teach bratty high schoolers how to program for a
$40,000 salary, when they could easily get a programming job that promises a fun work environment and an $80,000 starting salary.
The fact of the matter is that programming for the everyman is just something that isn't attainable in our current education system. I think that most of these startups get that, but haven't directly attacked the problem. In reality, CodeCademy and CodeHS aren't making it easier for our education system to teach programming - they're really providing alternative forms of education. Platforms like that are what have allowed me to bypass college and go directly into my career. Platforms like that
are education reform. And that makes sense - the skills that are important to teach our children today can't be taught the same way they were taught 50, or 10, or 5 years ago. Education needs to function like a startup, because - although it may be unfortunate - the skills needed by the everyman today change so quickly.