To Code or Not to Code?

That is a good question – and one I am increasingly being asked by parents these days.

There is a LOT more to this than a simple yes or no answer, but my opinion is that I’m not convinced that encouraging kids to become coders is a great idea, I think they should learn to code, if they’re keen, but only so they can understand it better, so they can be creative with it. You see you can employ coders, they are a dime a dozen, they’re all over the web. It’s the creative ‘big picture’ aspect that is lacking, ie what to code, not so much how.

That said… It’s hard to know what you can do if you don’t know how. Basically you don’t need to be the best coder, you need to be good enough to really know what its potential is. 

“Someday, the understanding of computational processes may be indispensable for people in all occupations. But it’s not yet clear when we’ll cross that bridge from nice-to-know to must-know.”

“But is it really crucial to be able to code? Many content producers use technology virtually every waking hour of their life, and they don’t know a variable from an identifier, or an integer from a string. Personally, I’m conflicted: I have a technical background, but for most people I just don’t see how being able to compile code is going to prove useful.”

Clearly there is no shortage of people that want to code, and those that have the predilection will. I mean, the point is it’s not hard to act on it, to make it happen, and … if you can’t, then coding is probably not an option for you.

Compare that to say ..

… learning the oboe, well that’s not quite so easy to learn if you only have a computer and an internet connection. But there are millions of people out there who do, and are honing their abilities every day, and they don’t expect to be paid as much for it as you might think. 

So – how do we learn this stuff?  

 All the people I know who are any use with IT and ICTs (yes, there is a difference) are those who basically taught themselves (including myself). It’s almost a rite of passage. My instinct tells me that the kind of kids who can code WILL code, and if they can’t find ways to teach themselves using the plethora of resources online, then, they probably haven’t got what it takes to code. Simple as that.

I have never been taught ‘IT’ but I had to teach myself HTML to design web pages, and ActionScript to create Flash animations – at its best, that is what things like coding ‘computer science’ and subjects like DT teaches kids – YOU can solve your own problems, and you can teach yourself how to do it. The WWWHWW have getting from A to B, even if it means going through D, H and X to get there. The first time.

That’s another argument for coding, not so much as a skills for the workplace, but the process, the rationale it demands, here’s a quote from a colleague who teaches IT in MS and HS, from an email exchange we had on this subject recently: This point about developing critical/analytical thinking through coding is powerful –

 “It isn’t the coding… its the critical thinking… they don’t need to code any more than they need to be able to do quadratic equations – for most people either would be redundant the minute they walk out of school. But they do need to have stretched their minds, to have made their thoughts work in a different way, which both of those will. Almost none of them need to code (or indeed use a lot of what we teach them in school – ox bow lakes for example), but the ability to problem solve is essential. It could be taught through other things, it simply isn’t in many cases… And people rarely choose to learn critical thinking unless they are an ‘IT geek’ and they are the ones that probably can already do it.

 I don’t understand why people question that this needs to be taught as people won’t be coders, while we still do teach algebra and the periodic table to kids that will not be mathematicians or chemists. Education is not about learning a set of knowledge or practical skills that you can use later, it is about teaching you to think, to think in many different ways, to play with ideas in many different ways and to have a toolbox of techniques to address puzzles or problems you meet later. Abstract, critical thinking is one of the tools…”

 So, my advice to potential coders would be learn to walk before you run, or more precisely, learn to walk (scratch) run (stencyl) jump (alice) then you can really get creative (dance) with the source code: 

 All of the the tools below are free, come with great support materials, tutorials, and communities to get you from A to B, even if you have to travel via N and X. 

  1. Start with scratch http://scratch.mit.edu/
  2. Progress to stencyl http://www.stencyl.com/
  3. Then to alice http://www.alice.org/

 By then you should be ready for the source code, this site hackerbuddies http://hackerbuddy.com/ will help with this final stage… One-on-one mentoring for startup hackers.

… but even then, which language?

C

Python

JavaScript

PHP

C++

Java

 there are many more … http://langpop.com/

But I would imagine for most kids the biggest motivator would be to create an app, using xCode. Which you can port to from Stencyl, but you have to pay $150 to enable that feature, so you can learn for free, you only need to pay when/if you’re ready to put into the market place. Clearly it is the desire to create ‘Apps’ that is driving the current resurgence in interest in coding. For more on this phenomenon, read this article.

 If your child is impatient to get going, learning Scratch and Stencyl will ensure they are more than ready for the next step.

Images:

http://whatstrending.com/wp-content/uploads/2012/01/search_engine_friendly.jpg

http://img.gawkerassets.com/img/17htag6w8mb0mjpg/original.jpg

http://www.veryicon.com/icon/png/Application/3D%20Cartoon%20Icons%20Pack%20II/Web%20Coding.png

http://bub.blicio.us/wp-content/uploads/2012/02/bub_altimetercontentking_02.jpg