An Hour of Code with Young Friends, Part 1: Hacking and Open Source

I recently completed with my first Hour of Code experiment with a young friend. I intentionally did not explore too much beforehand, wanting to experience the learning process alongside the girl (I will call her Z). I was curious what I would learn by watching a young digital native engage with coding.

Zen

Z is 10 years old, and currently a fourth grader at a Waldorf school. Waldorf schools discourage children’s use of technology at school and home. Her family takes an inspiring approach to this recommendation. They choose to not completely swear off technology, but rather to have regular conversations about when and why technology can be appropriate. Thus, Z does not use computers or watch media at school, but she engages in these things very minimally and very mindfully at home. This provides an interesting context for coding with her: She is technically a digital native, but does not actually engage with digital media herself very often. Here’s a little bit more about her:

  • She loves animals, and wants to be a vet when she grows up.
  • She is endlessly creative and self-motivated, loves art, theater and making all different types of things.
  • She insists on solving real world math problems in her head when they present themselves (before adults can tell her the answer).
  • She is compassionate and thoughtful. As long as I’ve known her, she has used gift-getting holidays as opportunities to raise money for animal charities.
  • She loves reading, and has been known to read a novel per day.

We began by watching the Hour of Code Video Introduction together, which got her excited about being one of “10 million” students to try “An Hour of Code” (and the number is currently much higher).

Continue reading

Which Language to Learn?

I signed up for Code Academy about a week ago to access tutorials for JavaScript and Ruby, and I like how they email me little messages every once in a while.  The funny thing is, I’m not usually a fan of this.  I can’t stand arbitrary marketing emails, and with the November election coming up, my political affiliations are trying my patience!  Anyway, I actually enjoy the little messages from Zach Simms, CEO of Codecademy.

I have been questioning which language to focus my novice coding energy on, and have concluded that I need to figure out a couple things:

  1. Which language feels easiest to me
  2. Which will help me do the things I want to do

Yesterday, I decided my mission is to figure out something I want to do in order to address the second question. Well, it’s like Zach psychically picked up on my thoughts, (and I know that’s what internet marketers everywhere want me to think), because I awoke to find a very helpful little message in my inbox this morning, and thought I would share!


Via Zach Simms, CEO of Code Academy:

People often ask me what programming language they should learn, and I always say the same thing: “It depends.”

Want to be more web savvy, or build a website? — start with Web Fundamentals. This covers all the basic HTML and CSS you’ll need to know to understand the web.

Want to make a game or app? — give JavaScript a try. This dynamic language will let you create interactive apps that you can use on a smartphone.

Want to process data or explore databases?Ruby or Python are your best bet. 


tumblr_ma1be7hL9G1r9cfv8 effective-internet-marketing

Psychic energy or internet marketing?  Does it really matter?

Ruby or JavaScript?

81868090

Which Programming Language to choose to learn first?  As I said in this post, I’ve received opposing advice from more knowledgeable peers about which might be easier and why.  I need to figure out which language is easier for me, and start there.

I thought it might be helpful to break down what I know about each so far.  I can not boast feeling very knowledgeable about either, but I have done some pieces of tutorials for both.  So far, it’s not too confusing to do both at the same time.  In fact, it’s helpful!  Both tutorials contain the same vocabulary, for example Math, Strings, and Functions. Those are some of the things that you can write using JavaScript or Ruby.  Learning about those and other basic components of coding in two different languages is actually helping me feel like I can understand them more deeply.  Each tutorial explains them differently, so each new explanation provides a little more depth to my thinking.

I can’t yet say which I think will be easier to continue with, but I can simply say that I’m understanding more, making coding in general feel easier.

Here’s a snapshot of some differences, thanks to resources from Github, Codecademy, and TryRuby.org.


Math is probably the most basic thing you can do with programming, so possibly the easiest to understand for complete beginners or non-code types:

Ruby                                                                                              JavaScript

Screen Shot 2014-10-12 at 1.36.30 PM


Continue reading

Coding? Easy? If Only!

Java Script or Ruby?  This is a conundrum.  

Earlier this week, I was convinced that Ruby was a good place for me to start in my quest to learn how to code.   This is based on people telling me that “it’s easy”, and reading similar things.  I had spent some time tinkering with a “15-minute” Ruby tutorial, and felt like I kind of understood a few basic concepts and vocabulary (very basic!!)

A conversation that I had a my first “Learn to Code” Meetup made me question my course of action.  I more knowledgeable person where I should start, and he recommended Java Script.  He said it was a pretty universal and popular programming language to know about, and recommended Codecademy‘s tutorial as a good place to start.  I told him that Ruby had been recommended because it was “easy”, and he offered a really interesting challenge to this logic.  

Ruby, he explained, uses a lot of commands that are written like English, which is why people like it and think it’s easy.  (Yes, that sounds good to me…) Java Script uses a lot more symbols and characters that look “kind of weird”.  Because of this, you are learning a little bit more about the fundamentals of coding.  Ruby might be a little easier to learn, but beginners might understand a little less about what they are actually doing.  Thus, it could be harder to get good at, and harder to apply to other languages.

This intrigued me! I like to know fundamentals and to understand the “why” in things, and I couldn’t help but feel a pang of worry that my journey with coding could have a similar outcome to my journey with math. I have never been crazy about math. It always seemed hard and tedious.  I remember learning Algebra in high school.  For a while, I understood how to do it and why I was doing it.  Then, at a certain point, I stopped understanding the “why”.  I can remember the details of the high school classroom, and even where I was sitting when I stopped understanding, but I have no idea what type of problem we were on.  I could still figure out how to DO what the course was asking me to do and I did ok (but not great).  I felt disengaged because I like to know the point of what I’m doing, and be connected to it emotionally.  It got really boring and stayed that way. I could still memorize how to do the problems, but they did not seem to have any real-world application, so my interest completely faded.  I took as much math in high school as I had to, and as soon as the requirements were met, I started taking more art and other “fun” classes. 

confused1What a missed opportunity!  Every once in a while, situations pop up in my life now when algebra is necessary (modifying recipes, for example). I always wish that I had known the right questions to ask in high school so I would retain some type of understanding, but at least Google tends to work well in those moments.  However, I don’t want the same thing to happen with coding!  I want to know how to do it and want to understand the “why” as much as the “how”.  

So what do I do? Java Script or Ruby? Which advice do I take? I don’t want to choose the wrong path, and end up bored and disengaged, which is a realistic possibility with both languages, but which one is better?  

I’ve analyzed this quite a bit…probably too much.  I talked with a teacher friend tonight, and presented this quandary.  She reminded me of a TED talk that I love by Kristen Wheeler on finding your native genius.  This talk has nothing to do with either coding or teaching.  Rather, it speaks to motivation and potential.  Kristen’s makes the point that if you start learning about something that you are already good at or naturally feels “easy”, then you flourish.  If you start learning about something that is naturally hard for you, it’s not impossible but the process will be slower and clunkier.   Continue reading