This week marks the anniversary of the Hour of Code, a global movement aimed at celebrating computer science and getting kids excited about coding. It’s a one-hour introduction designed to demystify “code” and to show that anybody can learn the basics. It’s also an opportunity to expose students to the field of computer science—and while they won’t walk away with a homework-completing, garbage-emptying robot, students who participate in Hour of Code will no doubt get that small “tickle” of thinking about problems in a different way.
The problem-solving mindset involved in coding may be just the beginning for many of these students, including my own son who has doggedly pursued an Osmo Coding kit for Christmas this year (and yes, I admit I can’t wait to play with it myself!). Of course he doesn’t know that with each magnetic snap of the blocks he’s creating a command string using basic coding language. He just knows that he wants the monster to walk forward three steps, jump over the rock, and eat the strawberry so he can advance to the next level and beat his sister. This way of thinking and problem solving is a gift to any student, and it goes far beyond an Hour of Code.
And so when thinking about Hour of Code this week, I found myself asking, What does it mean to not just learn how to code, but how to think like a coder? What’s it like inside the mind of a programmer and what could I learn that would help me approach my own work with a unique perspective on problem solving, logic, and creativity?
I work in the esteemed company of some great programmers and I know that I could learn a lot from simply being a fly on the wall during one of their brainstorming sessions. As it turns out, the creative problem-solving approach used by the most successful programmers has relevance to many fields of study.
And so, in honor of the Hour of Code movement, I decided to spend an hour learning more about how to think like a programmer. Here are a few takeaways that I learned about the developer mindset:
Perseverance. Learn to dig in and not stop until the job is done, because coding is an exercise in patience. You have to be willing to be methodical and exercise many attempts before you get the result that you want.
Teamwork. The best programmers understand that everyone needs help, and they reach out to help one another with coding challenges.
Organization. Good programmers seem to be able to organize their thoughts and develop strategies to tackle particular types of problems, which is more efficient than tackling every problem head-on with a unique strategy.
Problem Definition. Programmers understand that specifically defining the problem first is key to the way that you decide to solve it. In some instances, how you solve the problem is just as important as solving the problem itself.
Creativity. Programmers know that there is more than one way to solve most programming tasks, and there is great value in being able to think outside of any problem to come up with the not-so-obvious solution.
Attention to Detail. It takes a very logical, analytical, and detail-oriented mindset to be a programmer. I’m that annoying person that will find a missed comma in a twenty-page document, so in that regard I’m already on my way to being a great programmer.
As educators, it’s important to structure open-ended learning experiences, like coding, that require logical and creative problem solving. And while I do believe that every student should be exposed to coding, I think that the value goes beyond the Hour of Code when students learn how to think more like a programmer.