Gamasutra: The Art & Business of Making Gamesspacer
View All     RSS
October 25, 2014
arrowPress Releases
October 25, 2014
PR Newswire
View All
View All     Submit Event

If you enjoy reading this site, you might also want to check out these UBM Tech sites:

Everyone Can Learn To Code
by Jamie Fristrom on 12/10/13 01:31:00 pm   Expert Blogs   Featured Blogs

The following blog post, unless otherwise noted, was written by a member of Gamasutra’s community.
The thoughts and opinions expressed are those of the writer and not Gamasutra or its parent company.


Hey, this hour of code thing is kind of cool. Sofia kind of lost interest after about 15 minutes. "I'm tired of making the zombie find the flower" but I told her she could stay up past her bedtime if she worked on it more and she's game.

Let me tell you, I've totally turned around on this issue. I used to be the sort of asshole who said "there are people who can grok pointers and people who can't" - using that Harvard research as my crutch, the research that said, "Here are points where people wash out of our computer science program:"

  1. just understanding that computers execute things one after the other - this is what Hour of Code seems like it will be really good at teaching
  2. pointers
  3. recursion
  4. concurrency (which is kinda the opposite of #1. funny old world)

But just because these are the points where people wash out of CS programs doesn't necessarily mean that those people were flat-out incapable of understanding these concepts. It probably just means that Harvard's sink-or-swim teaching methods kind of sucked.

New research shows that old 'fixed mindset' kind of thinging creates self-fulfilling prophecies that lmit people. It's toxic. The problem with saying, "Why are you trying to draw? You can't draw," is that people actually believe you. We have to overcome that last-century 'you must be naturally talented or don't bother' sort of thinking if we want to accomplish stuff.

Me, I'm lucky. Coming from a supportive you-can-do-it sort of family, I just enjoyed learning how to program. I got off on it. When I discovered pointers and recursion my head exploded with possibilities. Not everyone's going to be like me, and it's going to be hard work for them to grok those concepts, but I firmly believe that almost anyone can do it if they put in the effort. And the benefits are enormous - if, for example, you're a game designer or producer, and you learn to code, you're no longer beholden to other people to make things happen. You can make a game by yourself. And you can probably get a decent-paying job somewhere.

There's another sticking point besides the four I just listed above. Someone recently told me that they've tried to learn to code, and they can work through tutorials and whatnot, but when it comes time to create something original they don't know where to begin.

Well, most coders avoid creating something original. We run a code wizard that generates our windowing app for us, or use someone else's engine, or cut and paste some code off the internet. The swinging-and-wallrunning character code in Energy Hook started with the Unity character controller as a base. Eventually you'll find you've replaced the handle and you've replaced the blade and you've got a knife that's totally yours. No shame in that. (Though there may be a few dick-swinging coders out there who do try to shame you for it. Try to ignore them.) Coders are allowed to plagiarize away their blank-page-syndrome in a way that novelists aren't.

Jake the Dog time:

Going beyond Jake the Dog, there's been research that shows people are usually overconfident when they first try to learn something. There's this curve where they think they're good, then they train some more and realize how far they have to go and think they suck, and then they actually get good and they think they're good again.

So, if you think you suck at something, you may be halfway to getting sorta good at it.

Related Jobs

Red 5 Studios
Red 5 Studios — Orange County, California, United States

Graphics Programmer
Red 5 Studios
Red 5 Studios — Orange County, California, United States

Gameplay Programmer
Gearbox Software
Gearbox Software — Plano, Texas, United States

Server Programmer
Forio — San Francisco, California, United States

Web Application Developer Team Lead


Chris Challis
profile image
The hour of code is a great programme, as you rightly point out, traditional CS wasn't working. It inspired me to write so it's great to see this on the national agenda!

Michael Joseph
profile image
Thanks Jamie, that is an important lesson. Any skill can be developed. The only real requirement is desire to learn and improve. But what we think of as "desire" in this context and which manifests itself as good work ethic is actually a skill too. That particular skill is crafted from confidence which in turn is crafted from experience. That is why it's so important for very young children to learn by doing (jigsaw puzzles, building blocks, etc). "Doing" consciously and with focus develops the experience of being able to create, to literally change reality, and that is empowering and develops confidence and curiosity.

Of course confidence in one's ability to prosper in various aspects of life (art, crafting, fitness & health, relationships, etc) all need to be developed separately. But I think when we think of child development in terms of skills development, then it's a lot easier to look at certain situations and recognize them as being very detrimental to skill development - racism, bullying, abuse & neglect, poverty (indirectly) to name a few because these things attack the development of the core skill of confidence to which all other skill development hinges.

It may also help parents by being less ambiguous to think of "raising a child" as synonymous with 24\365 development of their child's life skills. And a socially responsible media and games industry would help to change the archaic notions of what constitutes raising a child (eg feed them, cloth them, send them outside to play, "hang out" with them and send them to school.) We produce so much mediocrity it's tragic.

Kenneth Barber
profile image
The only real requirements are attention to detail, being willing to eat bitter and not giving up on yourself. Believe it or not failure is your friend, we learn more from failure than success...

Thomas Young
profile image
As a programmer with children, the teaching programming to children side of this is quite interesting to me, specifically, but I find that teaching anything to children can be complicated (since they have to be interested, for one thing!).

I read a blog post somewhere that suggested starting children off on _assembly language_, because that gets rid of a bunch of abstractions that we may not be so aware of ourselves (as programmers who have already learnt all that stuff) but which can be tricky to people who are starting out.

I'm not sure what I think.
The idea of reducing abstractions seems like it makes a lot of sense, but it's got to help if you can work on something that is actually interesting to you, and that would then kind of suggest some kind of higher level framework.

Any thought on this?

Based on the two ideas above, perhaps the best setup would be a very non abstract language that operates on a high level or interesting _domain_ (e.g. for automating some kind of social networking stuff, or for doing something in minecraft)...