Back from a conference in Spain, after a full week of internal technical sessions, my son is asking me what I do for a living (he is finishing 5th grade).
Here is the story.....
Son: " Dad, can you explain what is your work? "
Me: “You know that I work with computer and software, right?
Son: “Yes, sure, but really, what does this mean? What is your job? What are you doing while I am at school?”
Me: “Well, my job is to be the worldwide technical enablement lead for CLM….”
….blank…. No sparks in the eyes. Even my mom is not proud of me with this official title as she has no clue what it means.
Me: “Well, let me explain further. While you are at school, I spend a lot of time trying software and technologies for the cloud”. And I show him a piece of code in Bluemix DevOps Services.
Son: “No idea what you mean”. The code sounds like Greek or Klingon to him. “What is software, a video game?”
Me: “Yes, it can be, but not always. Software is something writer in a specific programming language”.
Son: “What is a programming language?”
Me: “Some language that computers understand, that tells them what to do and what to display on screen”
Son: “This is still unclear to me. Can you please explain better?”
This is when I decided to explain with a concrete example. I used Scratch, a free computer programming language for children created by the MIT. I created a first project, called “Hello Scratch World” (how original!!). I added a Sprite and then a small script.
Me: “Now look at this. You click on the cat and it says Hello. When you hit the S key, it plays a sound”
Son: “And you do this for a living? I mean, someone pay you???”
Me: (Not sure if I should be ashamed at this point) “Well yeah…but you know, sometimes things are a bit more elaborated, more complicated. Think about your school’s website, or Twitter, or video games”
Son: (excited for the first time) “Can I create a video game myself, like Little Big Planet or FIFA 15??!!”
Me: “Well, think about something simpler first. What about Angry Brid or Pong”.
And then my son worked alone and sometime with the help of his “WW Tech Enablement dad” to create the Ping Pong application.
[Screen capture from https://scratch.mit.edu/projects/60213066/]
Coding in Scratch is quite easy and intuitive for kids. With the graphical programming language, they create scripts by snapping blocks, much like LEGO bricks or puzzle pieces.
My son will turn eleven this summer (so he is Generation Z, as they call it). While trying to implement his idea, my son learned the basic of algorithmic and software design. Working on his Scratch project, he also acquired some important computational concepts such as iteration, conditionals, variables, data types, events, and processes.
And the most important part is that he had a lot of fun. He now wants to improve his app with new features. So he may fix a couple of defects and add functionalities in a near future.
My next challenge is to have him do something similar in Node.js or Java on Bluemix, with tracking and planning in Bluemix DevOps Services.
Don't forget to go to https://scratch.mit.edu/projects/60213066 and play with the PingPong.