Why should you teach your young padawans how to code


Published on

Lightningh talk presented at Codebits VII, in April, 12th, 2014, about teaching programming to kids.

Published in: Technology, Education
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • 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.
    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.
  • Why should you teach your young padawans how to code

    1. 1. Why should you teach your young padawans how to code And why should you start with Python
    2. 2. Who am I Marco Amado Developer @ Glups http://www.dreamsincode.com mjamado@dreamsincode.com /mjamado /mjamado /mjamado /+MarcoAmado /mjamado
    3. 3. Do you know that joke?...
    4. 4. Driver's license test trick question Q: Car lights should be: a)White b)Yellow c)White and yellow d)White or yellow
    5. 5. Coding: everyday advantages ● Logical thinking; ● Problem solving – there's no problem too big; ● Spatial perception (or, at least, 2D perception).
    6. 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. 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
    8. 8. Why Python? ● Multi-paradigm; ● Easy (dynamic type, managed memory); ● Cross-platform; ● Extensive library; ● Focus on discipline.
    9. 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. 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)!