What IS Coding? Gearing up for Computer Science Education Week & An Hour of Code

I sat at a Thanksgiving dinner table about a week and a half ago with a group of friends.  We were enjoying our feast and chatting about this and that. Since most of us at the table were either teachers, spouses of teachers, or children…you can imagine how our conversation kept drifting back to issues in education.  I started telling one friend about my goal of learning to code, and she asked a simple question:

“What IS coding anyway?”

This question provoked a little nervous tingle, as I realized this was the first time I had been asked to explain something about coding to another teacher. I had to stop, rewind my brain to just over two months ago when I started to explore this very question, and try to conceive an answer that would make sense to someone with the same background and lack of technical expertise as myself. My response was something like this:

“Coding is very basically giving your computer a set of instructions that you write in a programming language. The computer then responds by doing what you told it to do.”

I was relieved when this came out of my mouth and I realized that it largely made sense. This conversation also made me realize that could be important to spend some more time considering what that coding really is, and ponder some ways to synthesize and explain it to people who might not have any background, or might never have had any interest before. 

When I was first learning to code, I would Google things like “programming for beginners”, “what is coding?” and “learning to code”. My search efforts would return tons of great resources for people who already know a little bit about computers, and are not completely intimidated by words like “algorithm”. Many of the search results assume you know what a “console” is, are already comfortable with words like “variables” and “data types”, or what a “platform” is. If you don’t already know these things, do not worry about them! I think there is a level of beginner explanation that is just plain difficult to find. Just to be clear, I recognize that there are tons of great beginner resources out there…I just found myself wishing for an even more novice level of basic description. With this in mind, I’m going to attempt to offer my own supplement, and explain programming in a way that makes sense to me and might appeal to a broad array of non-programmers. 

This seems like a particularly relevant thing to do now, since this is Computer Science Education Week (Dec. 8 – 14). All this week, millions of children around the world will participate in “An Hour of Code“. This is a challenge to teachers, administrators, community members, and families to offer children “a one-hour introduction to computer science, designed to demystify code and show that anybody can learn the basics.” Code.org is organizing and promoting this challenge, and they offer tons of great resources on their website. 

Note: Although some argue that there are differences, I use “coding” and “programming” interchangeably throughout this post in reference to “the act of writing computer programs”. 

Keep reading if:

  • You have ever wondered about coding/programming
  • You have never wondered about coding/programming (because it is never too late to start!)
  • You have tried to look up coding and programming before, and didn’t gain a whole lot of understanding
  • You do not consider yourself very tech-savvy or computer literate
  • You are curious about how someone who meets the above criteria might explain programming
  • You are curious what children are actually learning from beginner tutorials 

Continue reading

Interest-Based Learning: Keeping it Lively!

Screen Shot 2014-10-23 at 9.59.08 PM
From “Why’s Poignant Guide to Ruby”. Click the image to see the book!

Ruby has quickly become my language of choice. There’s something about it that just draws me. It might be because I’ve started reading “Why’s Poignant Guide to Ruby”, and he agrees it’s important to submit to something that draws you.

Not familiar?  Here’s a passage:

“This world’s too big for such a a little language, I thought. Poor little thing doesn’t stand a chance. Doesn’t have legs to stand on. Doesn’t have arms to swim.”

…”So, now you’re wondering why I changed my mind about Ruby. The quick answer is: we clicked.

Like when you meet Somebody in college and they look like somebody who used to hit you in the face with paintbrushes when you were a kid. And so, impulsively, you conclude that this new Somebody is likely a non-friend. You wince at their hair. You hang up phones loudly during crucial moments in their anecdotes. You use your pogo stick right there where they are trying to walk!

Continue reading

Try Ruby

Ok, so about a week ago I decided to just start Googling how to learn to program.  Ruby is a programming language that everyone says is “really easy” (I have a suspicion that my definition of “really easy” is quite different from those who say this) But, I think I’m going to start my programming adventures by learning Ruby.  First, because of the “really easy” comments.  I figure that even if it’s super hard, it has to be less hard than other languages that are not often described as “really easy”…SEE?  I can think logically!  I’m also wanting to learn this one because my husband knows it and likes it, so he will be a good person to ask questions to when I feel stuck.

I found this super cool sounding thing called Rails for Zombies, where you learn to program by creating program like Twitter, but for zombies.  Awesome, right?  I like Zombies!  So I clicked on it, and it told me that if I was unfamiliar with Ruby, I should do an online Ruby tutorial first, and suggested tryruby.org.  I’m all for suggestions, so clicked over and started playing with it.

Screen Shot 2014-10-06 at 5.20.07 PM

The site page says: “Got 15 minutes?  Give Ruby a shot right now! Ruby is a programming language from Japan which is revolutionizing the web. The beauty of Ruby is found in the balance between simplicity and power.”

Continue reading