Ask HN: Gift for a 11-year-old hacker
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... 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... 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 is a difficult concept to grasp at that age - why not show her the code without too much theory? I'm not a programmer by profession, so take everything I say with a grain of salt, why not trying to show what a ruby add/multiply function looks like: There's this book which is rather playful: http://poignant.guide/book/chapter-1.html What about "hardware"? I bought to my daughter a Snap Circuit kit, but she was younger. https://www.google.com.ar/search?q=snap+circuit&tbm=isch I purchased a BitsBox subscription for my nieces/nephews, and they love it.
https://bitsbox.com/ 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. https://elitekeyboards.com/products.php?sub=pfu_keyboards $225? Only 60 keys? No mention of Linux support? LOL. Why? What are the advantages over the multitude of other mechanical keyboards out there these days? If she likes games - https://getchip.com/pages/pocketchip
Of something like: #!/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
I believe Ruby is a better choice than Python because it can 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. #!/usr/bin/env ruby
def hello(name)
puts "Good morning, #{name}"
end