Oh my god. Someone is wrong on the internet, and of all people, it’s Jeff Atwood, aka CodingHorror. His article unfortunately makes a lot of wrong assumtions on why people like us would like to see more people learning to write code and not less.
I’m not going to re-iterate on these wrongly made assumtions and, instead, tell you why I really, really love to teach people how to write code.
You see, my first computer was a Commodore C64. No, actually, it was the Sharp PC-1403 pocket calculator of my father, programmable in glorious basic. The most important thing with both computers: When you switched them on, they begged you to program them:
And I obliged. Happily. Never got rid of that “I need to program this” feeling my whole life. But, from machine to machine, programming got harder. While, on my Mac, Perl, PHP, Ruby, Python and C are just a few keystrokes away, a modern desktop computer, and even less a mobile computer such as an iPad or an mobile Phone, don’t really want you to program them.
That’s actually a good thing. Except when it isn’t.
You see, when I grew up, the boys (sadly, it was mostly boys…) who toyed with computers were the nerds. The outsiders. Most of us had some programming experience the moment we entered the CompSci classes in 9th grade or so. We had taken our machines apart (sometimes quite literally, but mostly by peeking and poking into every conceivable bit of memory) and we were afraid of nothing. And I mean that. We broke things, but we knew that most of the stuff was easily fixable. We tried to play games. My venture into hacking was when I programmed a shim for the DOS machines’ Novell-Login we had at school, so that peeps typed in their login and password and my shim would write it to disk somewhere and log itself out, so that peeps thought they typed in the wrong pasword. My teacher didn’t like it but saw what I did there. Security policies were changed. Well. What I try to portrait is that we, the nerds, the insiders, the outsiders, we literally had no respect for those machines. We knew how they worked (or at least we thought so. I am still baffled every time I see a simple microprocessor design and try to understand how it all works with just a few logic arrays and a clock), and we commanded them.
These days the kids grow up using a computer to use Facebook and most of the candidates I interviewed for mindmatters throughout the last years actually never programmed a computer before entering the University to study frickin’ computer science. And we end up with a youth that knows how to turn on a computer, but how it all works, well, that’s a nerd thing. Only that nerds these days tend to play computer games. Of course I’m unfair here - There are still tons of young peeps that are curious how to program these machines and teach themselves how to build an iPhone app and get rich by their 16th birthday. But what I’m trying to say: Just because you got a computer for your 14th birthday, you haven’t automatically written your first line of code before your 15th birthday anymore. And that’s a problem because it creates this distance between the user and the machine. It’s this thing where I can start a browser and then it loads facebook. It’s just a medium. Okay, it’s also a musical instrument, a video cutting machine and a typewriter, but it’s not this thing that does “whatever you imagine”. And all of that typewriterish, video-cutting, music-playing stuff is powered by higher magick. There’s no way a 16 year old in 2012 sees Ableton Live or iMovie or even Microsoft Word and says “I could totally write that, too”.
This is not only a problem because we have way to few programmers right now (which we do). This is also a problem because it widens the gap between “those who use computers, reluctantly” and “those who know how computers work”. In my experience, people, when they first encounter computers, they are massively afraid to break things, as if they’ve been sat into the pilot seat of a flying 747 with 300 people on board, right above the atlantic ocean and told to “fly the dame home”. Part of that is that we still suck at building userfriendly interfaces. We do. Trust me. But part of it also is the radiation of inherent complexity that’s been emitted by computers.
Being able to write code and tell a computer to do something completely changes this relationship. It puts you into the pilot seat, but this time on the ground and actually, if your teacher is clever, in a simulator. You can tell the plane, sorry, the computer to do stuff for you, even if it’s just painting beautiful pictures for starters. You don’t have to be able to program a full fledged web application or a 3D game or a music generator or a crypto processor to get that feeling. Some simple programs that do something that amazes you while you’re still fully in control (and we all know THAT feeling, right?) are enough.
Thats why you should learn coding.
And if you’ve lost your angst about computers and you found fun in programming them, you can start to work really, really hard for a few years and you’ll become a software developer. It’s a glorious thing. Or at least lucrative, so I’m told. But that’s not what’s important.
Thanks. <3 <3 <3