My sister is a bright, self-motivated, girl that has taught herself HTML and CSS, but hasn't learned a real programming language yet. She still doesn't grasp the concept of a function, which is understandable at her age. There's lots of books on CS that I'd love to give her, but that she's too young for. Any suggestions?
Try to explain programs as a to do list for computers. This might be hard since her fist exposure to computers is HTML/CSS. kind of sad actually. How did that happen? Just curious...<p>Maybe show her that she can put dots of any colors on screen using html canvas and javascript. Show her how to draw lines. How to draw circles and color them. Show her how to move them....That should be enough to get her off from Html/Css and move to real computer programs...<p>May be just leave her alone..encourage her to spend less time with computers and go out and play with other kids..She is 10 year old, right?
Not sure if this is going to work, but instead of trying to explain what a function is at a theoretical level - which <i>is</i> a difficult concept to grasp at that age - why not show her the code without too much theory?<p>I'm not a programmer by profession, so take everything I say with a grain of salt, why not trying to <i>show</i> what a ruby add/multiply function looks like:<p><pre><code> #!/usr/bin/env ruby
def add(x,y)
b = x + y
return b # could be just "b" or omitted but I consider verbosity a *virtue* here
end
</code></pre>
Of something like:<p><pre><code> #!/usr/bin/env ruby
def hello(name)
puts "Good morning, #{name}"
end
</code></pre>
I believe Ruby is a better choice than Python because it <i>can</i> be more verbose, closer to English and doesn't rely on indentation. Javascript might be another option, but explaining the difference between class and function in JS to a novice might be problematic.<p>There's this book which is rather playful: <a href="http://poignant.guide/book/chapter-1.html" rel="nofollow">http://poignant.guide/book/chapter-1.html</a>
What about "hardware"? I bought to my daughter a Snap Circuit kit, but she was younger. <a href="https://www.google.com.ar/search?q=snap+circuit&tbm=isch" rel="nofollow">https://www.google.com.ar/search?q=snap+circuit&tbm=isch</a>
I purchased a BitsBox subscription for my nieces/nephews, and they love it.
<a href="https://bitsbox.com/" rel="nofollow">https://bitsbox.com/</a><p>It's not cheap, but I'm a big believer in encouraging this kind of learning, and I feel like it's been worth it. They range from 7-13 yrs.
Get her a decent hacker's keyboard. She will treasure it always. <a href="https://elitekeyboards.com/products.php?sub=pfu_keyboards" rel="nofollow">https://elitekeyboards.com/products.php?sub=pfu_keyboards</a>
If she likes games - <a href="https://getchip.com/pages/pocketchip" rel="nofollow">https://getchip.com/pages/pocketchip</a>