Wow, I have to commend you on your keen sense of observation. I really did not notice that. I was looking for a clean picture with a light background, but I know what I'm looking for next time I search for a picture of someone typing :) Thanks for reading though, I do appreciate it.
HN user
idancali
I'm a software developer, a husband and a father of four. My superpower is asking and exploring difficult questions about life, love and work.
Lol, I agree, pretty horrible stock photo, I do play chess - somewhat - and you're right, I should've used a better photo :)
Thanks for the comment, you're right the subtitle kinda sucks, I actually hesitated when I wrote it but I eventually left it.
I know what you're saying, and the funny thing is that when I wrote that, I actually paused and thought about the proper way of referring to LEGO. So if you google "playing with legos" there's a ton of articles that use that expression, such as this one on HuffPost for example: http://www.huffingtonpost.com/2014/01/28/google-legos_n_4681...
So kids 'playing with their legos' is valid given the fact that LEGO has become a household name and LEGO can refer to the brand, the game itself, while Legos, or legos can refer to the LEGO blocks themselves. It's sort of like using Google as a verb (http://en.wikipedia.org/wiki/Google_(verb))
Thanks for reading btw
PS. English is my third language so a grammatical error here and there wouldn't be that bad anyways :)
Yeah it'd be interesting for me too to explore this further. Stay in touch via my twitter @idancali and I'll post stuff as soon as I get a chance. Until then, check out this post I wrote recently: http://dancali.io/blog/you-too-can-become-a-computer-program...
It's about how I decided to pursue coding as a career when I was in high-school.
I think the main thing is to tell younger kids that coding is an art just like drawing and that there is no right or wrong way of doing stuff. They should not be afraid to break things and experiment and they should absolutely have fun building things, seeing things come to life. That's what got me into coding in the first place and I think that's what makes a world of difference. The rest, the variables and things like that are secondary.
Awesome, let me know how that works out :)
Cool thread, I just started a thread about teaching my own daughter how to code a few hours ago :) First off, congrats on the intention. I believe code literacy is going to be a key educational principle in the 21st century so good for you on taking a step towards that so early.
For me teaching my kids (I've got 3) is not so much about getting their brains stuffed with algorithms and technical stuff, but it's more about giving them access to a world where they can create art. I personally believe coding is more like painting than it is building a bridge. It's a creative process , where things like inspiration make a world of difference.
So the first thing I'd recommend is getting your daughter used to creative activities like drawing, Legos, building stuff, number games, word games, stuff like that. See how she likes it. Then try more advanced things. I started teaching my daughter math early on, since she was about two. We started with counting, then moved up to counting by 2s then backwards, just to see how her mind worked and how she would respond to creative problem solving.
It turned out she loved it and to this day she loves solving problems like those games where you have to almost identical pictures and you have to spot the differences, etc. She also likes playing match-3 type games on the iPhone and playing word games.
So get her started with that. If she sees math as fun, I think that's the first and probably the biggest win.
yeah I wondered about string myself, I don't see how a child could get "strings". I think they would get "letters" or "words" or even "text". That's why I just didn't get into strings, I just let them type stuff and see the result of what they were typing in the simulator which was thrilling. And when it came to teaching variables I went with int's. Even that was a long shot. I just went with "it's just a number" and I think that should be sufficient for lesson #1 :)
yeah that's a good point; I really wonder about conditional statements though, I think control flow should be straight forward, but I would think you might need to start off with variables and primitives at least.. what do you think?
haha that's awesome, I had no idea about a lot of stuff when learning but that's the amazing thing, you don't need to know everything to get started and start building things, and that's what scares people off, they think they have to get a math or comp sci degree to code something basic
that's look really really interesting! I was actually thinking of looking into tablet apps that teach kids stuff like that in a fun way. Thanks for the link, I'll check it out
I think that's a really good point and it's key in adult learning as well. So many times we go through tons of boring theory first until we're drained of our mental energy and by the time we get to the fun part we couldn't care less. I love courses where you do stuff right away and they tell you, "don't worry about this other stuff for now, we'll get to that soon"
right on!
It's interesting actually, not that you mention it, this week my daughter read her first 20 page kids book. In English, as her second language. Her first language is Romanian and we speak Romanian at home. I do believe this is a beautiful age for kids to see what their brains can do. There's so much potential at this age, and if their curiosity is fostered they end up doing amazing things and starting off with the right foot in life.
You know a long time ago I used to "code" in this language called LabView and it was all graphical. It was designed for electrical engineers. I remember working with electrical engineers that had no idea about coding and they would be able to build complex systems in LabView. You would drag and drop a box and attach it to another box with a connector and that would be a loop, etc. Really awesome. Maybe something visual like that, with colors, animations etc would work for kids.
I think you nailed it my friend. That's exactly what was going through my mind as I saw myself trying to teach her what a variable is. My boys were playing with Legos and I was drinking coffee so I'm like alright, let's try that. We went through other analogies that I didn't blog about but one of them was how the whole IDE window (XCode) is like a table that you draw on and how a program is like a drawing you make in art class. So the purpose of coding is to use an IDE to create programs just like in art class you draw on a table and create art work. Also, just like you need pencils, colors, etc, in coding you need variables, methods, etc.
Kids get stuff like this really fast.
on second thought I think you're right. I think it wasn't so much about the tools as much as it was about the concepts behind what coding is, what a variable is etc.
I completely agree with the fact that syntax is irrelevant. What's really key in coding is getting the core concepts down, like variables, control flow, methods, classes, etc. To me, if a kid can understand what a variable is and what a value is, that's awesome, I don't care what language it is. Once they pick up the fundamentals they can go and teach themselves whatever language they want.
I actually thought about what I should start with if I were to teach coding and you're right I would probably start with something that's interpreted first of all. I was thinking Ruby , perhaps Python, you're right.
But the crazy thing is that I didn't plan the whole thing. It was more of a "lets build an app together" type of thing. My kids and I have been talking for a while about building an iPhone game together so that's where the whole iOS thing came from.
But you raised a good point. If you had a choice, what would be the best language to start off kids with? And maybe you're right, maybe there should be a new language built just for this purpose.
Maybe a bunch of us coding dads can create an open-source mini-lang of some sort with the sole purpose of teaching kids to code.
Good stuff and congrats. I'm always amazed to see young kids get into coding and math. I think that's awesome.
I was so pleasantly surprised when she got the whole variables thing. I think drawing analogies to real life stuff is a sure way to get kids engaged, especially if the props you use are toys. About the attention span - yeah I noticed my 5 (almost) year old wanted to try when he saw his sister having fun, but then he got bored after a couple of minutes.
that's great man! I'll try that with my 3 and 5-year old boys to see if they pick it up. I was thinking about the whole "how young can a child learn to code" thing too and I think it's obviously a matter of the environment they're used to. If they create a lot, arts/etc, play with Legos for example at a young age, that sort of stuff, they might be inclined to pick up more abstract things at a younger age. My daughter likes doing a lot of math stuff for fun and she has a tendency towards numbers and abstract thinking so she picked it up naturally. We'll see how the boys do in a couple of years :)
thanks dude, I do believe that's the first fundamental concept that makes most sense in a 101 course/lesson. If you get that, you can move on, if you don't, then you have no ground to stand on
awesome thanks for the tip, I'm gonna check it out
I hear you, but if you check the timeline of the lesson, I didn't teach her every step of the code, that would be too much info off the bat. I wrote a bit of boilerplate code and her lesson - as I mentioned in the post - was just those 3 lines where we talked about variables mostly.
Hey I hear you. When I started coding I was 9 and I did something like that in BASIC. It was awesome. I was actually considering what to start out with and I just went for iOS off the bat to see what happens. I also think kids these days pick up stuff way faster than 20-30 years ago. It's insane how fast they pick up things like touch interfaces, smartphones, tablets, etc for example.
Wow that's great. Thanks for the tip. I'm going to check it out.