6. The (worst case scenario) future
A vast majority of the kids won't keep
programming. And that's just fine.
They'll remember how frustrating it can get
sometimes, but will also remember how rewarding
it can be.
7. How can I teach my young padawan?
From age 6: MIT Media Lab's Scratch
In English, online and offline:
http://scratch.mit.edu/
In Portuguese, offline:
http://kids.sapo.pt/scratch/
From ages 8 to 10: Python
9. Thank you for listening
Marco Amado
Developer @ Glups
http://www.dreamsincode.com
mjamado@dreamsincode.com
/mjamado
/mjamado
/mjamado
/+MarcoAmado
/mjamado
And keep on coding (and teaching)!
10. Thank you for listening
Marco Amado
Developer @ Glups
http://www.dreamsincode.com
mjamado@dreamsincode.com
/mjamado
/mjamado
/mjamado
/+MarcoAmado
/mjamado
And keep on coding (and teaching)!
Editor's Notes
My name is Marco Amado and I'm a developer at Glups.
Among many other things, we're the developers of cloud invoicing solution Moloni.
You can find me at the usual places – yes, including Google Plus.
Do you know that joke about the programmer who had a child?
When met by a friend a few days latter, he – or she – is asked: “So, did you have a boy or a girl”.
The programmer just answers: “Yes”.
What most people think: 10 guy.
What we really know what's going on: Dwight.
Irrealistic? Maybe... What about this one?...
A few years ago, this trick question appeared on every other driver's license written test:
Car ligths should be: white, yellow, white AND yelloy, white OR yellow.
The amount of people answering “white AND yellow” was very high.
Of course, one doesn't need to know programming – after all, logic is a common topic on Phylosophy which almost everyone has in highschool.
But programmers DO tend to keep this in mind at all times.
These two examples show the most important advantage a programmer has: logical thinking.
Another advantage is the capability of divide and conquer. If a problem seems too big, let's break it down. Let's make a flowchart, an algorithm, a pseudo-code rundown of the steps. One step is still too complicated? Let's break it down again.
Spatial perception. Sooner or later, the little programmer will want to draw stuff. C'mon, command line input and output is kinda boring. Moving things around, on the other hand...
Can I fit this 40 pixel circle inside that 60 pixel square? Should I move this image from x 0, y 0 to x 400, y 200?
But there's an even bigger advantage.
Awareness.
Sure, not every kid will keep programming. We know the vast majority won't. Bu that's ok.
We know they'll know how hard things can get. We know they'll value it, and they'll value the professionals they'll meet on the future.
And they'll remember that it's fun and rewarding too. And maybe, just maybe, they'll come back someday.
So, how and what can I teach my son or daughter, my brother or sister?
Well, it depends.
As soon as your young padawan can barely read – around 5 or 6 years old – you can introduce him to Scratch.
Scratch is a LEGO-like event-driven authoring tool. You build programs by joining blocks, which range from keyboard and mouse input to sprite movement, audio playing, control structures... almost everything you'd find on a full-fledged programming language.
You can find online and offline versions in English at MIT's original page, and an offline-only portuguese version at Sapo Kids.
As soon as the youngling has a few more skills, you can introduce him to a more serious language – and by that, I mean Python.
And why do I recommend Python?
I'll be honest with you: I don't even use Python, neither professionally nor personally, besides teaching my older daughter.
However, I recognize a few characteristics on Python that make it, in my opinion, the best teaching programming language for kids.
First, it's multi-paradigm. Whether you choose to take the procedural, object oriented or functional route, Python has you covered.
It's really easy. It has no strict typing; it has no memory shenanigans to be worried about.
It's wildly cross-platform. There's an interpreter for pretty much every platform out there.
It has an incredible comprehensive standard library, and modules for more stuff than you can possible think of.
But most of all – and this is my number 1 reason to choose Python – it has an immense focus on discipline. Remember, in Python, there's no brackets, so whitespace do matter. This forces young programmer to start of by paying special attention to perfect code indentation. If they keep programming in the future, this lesson will be invaluable to them.
Thank you all for staying with me.
Keep up the good work, and never pass on the opportunity to introduce your children or your siblings to this wonderful world.
You'll spend more time with your loved ones, and they'll be more prepared to the challenges of years to come.
And you, too, might even learn a thing or two.
Feel free to contact me around here or through social media for sharing ideas, problems or sugestions.