051 iPhreaks Show - Teaching Kids to Program with Jim Rutherford

Download MP3

The panelists interview Jim Rutherford and talk about cool ways to get kids involved in programming.


PETE: There’s the Chuck voice I listen to in bed every night. [Laughter] CHUCK: Hey everybody and welcome to episode 51 of the iPhreaks Show. This week on our panel we have Ben Scheirman. BEN: Hello, from Houston. CHUCK: Pete Hodgson. PETE: Hello, from pleasantly temperate San Francisco Bay Area. CHUCK: I'm Charles Max Wood from DevChat.tv, and this week we have a special guest, and that is Jim Rutherford. JIM: Hi, Jim Rutherford from beautiful [inaudible] British Columbia, Canada. CHUCK: Ooh, we got a Canadian on. JIM: Another one. CHUCK: This is already going to be such a kinder, more maple syrup-y –. PETE: Friendly, polite –. CHUCK: Yeah. We need some more maple leaves down here. Anyway, you wanna introduce yourself real quick? JIM: Yeah, sure. I'm a freelance iOS developer. I do projects for really anybody, anywhere around the world, who’s looking for some iOS development help. I've been doing development for many, many, many years and it’s the greatest job in the world and it’s something I like to share with my son, which I believe is what we’ll be talking about today. CHUCK: Yeah. I'm a little curious, the topic actually says “Teaching Kids iOS Programming.” Have you actually taught kids to write iOS apps? JIM: My son and I sat down and we sort of worked our way through a couple of fairly simple iOS apps; I haven't specifically taught him how to code in objective-C. We’ve done a lot of projects that use lots of different types of technologies – we’ve done a little bit of Flash; we’ve done a little bit of Scratch; we’ve done a little bit of Minecraft modding – but really the way we tend to do it is, he might come up with an idea and we’ll sit down together and cme up with some ideas and take a look at how we might want to probably do that. He’s a 10-year old, so from that standpoint, his attentions span is not quite up where you need to sort of be spending five, six, seven hours in front of the computer screen, cracking up code. So we had to break it down to small, little chunks and produced something that’s fun that he could show his friends, or we can just have fun with, spend time together really. BEN: Yeah, that’s really cool. I have five kids, and I have tried, one by one, to try and get them all into programming – not because they have to do what I wanna do, but I feel like it’s a good living, and it allows you to be creative, and solve problems. And you looking at the landscape out there for the potential careers – I don’t know, I think I would just like them to have this opportunity. So far, they haven't been super interested in it, but I don’t know – it’s all about just exposing the kids to the opportunities to learn and finding out what interests them, right? JIM: Exactly. I think there are so many opportunities for kids out there, whether they wanna become a professional soccer player, or a professional dancer – or who knows what they’ll become interested in over their lifetime? But yeah, just really exposing them to the different sorts of things, and what I know is programming, so certainly that's something I enjoy sharing with my son. I know it’s something he’s very interested in well, I think ever since he’s been about six years old, he wants to be involved in game development. At one point, he wanted to be a game tester, which I thought that's a pretty cool career. But who knows where they’ll end up, who they’ll meet along the way, and what will inspire them? So yeah, I see this as a step on the journey towards a happy and productive career. CHUCK: Yeah, well the other thing that I find interesting about teaching kids to program is that more and more fields out there are becoming computer-dependent, and so even if they're not writing the code that does whatever it is that the industry needs, they're still going to need to use the computer and that kind of familiarity really helps. JIM: Yeah, I think a fairly popular term that [inaudible] right now is digital literacy. And I think probably the best way to explain it is, in schools, kids learn how to read and write. Now, not very many kids are going to end up writing the next Pulitzer Prize-winning novel, but they certainly need to be literate – they need to know how to read and write. I think with digital literacy, it’s a very similar thing. I think they need to learn how to read and write code, whether or not they ever become a professional programmer – that’s a different story – but certainly whether it’s creating a macro in whatever word processor they’ll be using in the future, or customizing their work environment through some sort of scripting – I think that basic literacy can go a long way to augmenting the skills that they have in whatever career they choose. BEN: Yeah, I mean, just learning how to type properly can go a long way to that. My kids can type 100 words a minute on their iPhones, but when they get to a computer, it’s considerably slower because they don’t spend as much time in front of the computer as they do in front of their mobile devices, right? Considering that when they get into the workforce, likely a considerable portion of their career is going to be spent sitting in front of a computer for all types of jobs. Just like you're saying, just general computer literacy is good, being able to whip things up in Excel just because you're not afraid of it, or being able to type quickly so you can get things done, I think, definitely is really important. I think taking a keyboarding class in middle school is hugely important for me, although mine was on a typewriter –. CHUCK: [Laughs] BEN: But it was definitely helpful for my career. JIM: Yeah, absolutely. I totally agree; I think keyboarding is a tremendously important skill. My son has been taking keyboarding at the least since he was in grade four – whether, I think it was Mavis Beacon tutor-thing they had set up in the computer lab, and he’s a fantastic, little touch-type keyboarder. CHUCK: So how do you get kids into programming? I mean, you talked about Squeak, and some of the other things. What seems to be the thing that they latch on to the most? JIM: I can really only talk about my son. I've got one boy, and sort of what goes farthest with him is if we’re working on something that he is personally invested in – and I think it would probably all –. For example, when I was learning objective-C, I started by reading some books and whatever, but at the end of the day, for me to really learn it I needed to build something that I wanted to use. So typically, my son, what we’ve done is we’ve worked on little projects sort of all around what he’s interested in. A couple of years ago, he was totally obsessed with Minecraft, so we did a couple of projects around Minecraft. We made a very simple, little Minecraft mod; we downloaded Eclipse, sadly, and a product called Minecraft Coder Pack, which is I guess a package of Java file that make it really, really easy for your own Minecraft mod, so it exposes pretty much everything in the game that can be customized. We created a very simple block; we called it Rutherfordium, and it’s the most hardest, most incredible element in all of Minecraft. It never decays, so once you have a sword of Rutherfordium, you're virtually invincible. Just a very simple mod, it probably took us about an hour. I don’t have a lot of Java experience, but it was pretty simple to get this block set up. You just sort of go through, and it’s a really great environment because you can [inaudible] objects. So here’s our block, and it’s represented by this Rutherfordium.class file. There's a constructor method, and then you set up a bunch of properties, and then you can go in and then you can set global properties in terms of how deep you have to dig to gather that block, how rare it is, and then you load up Minecraft, and your new world –. Modifying it also gave us an opportunity to show him a little bit of –. I'm a big Fireworks fan – Dolby Fireworks fan – so I taught him using Fireworks as my tool of choice, but you certainly could’ve used Photoshop or any other graphic programming, and he went and he actually designed a block using pixel art. And yeah, we had our own little Minecraft mod. It was sort of a fun, little – it was probably two hours in total to get it going, and you know, just an opportunity for us to sit next to each other and me explaining a little bit of code, him to do a little bit of graphic design, then we had something that he was just [inaudible], that he was able to use inside the Minecraft world. BEN: One of the difficulties that I had – it’s pretty easy to get young kids excited about games, right? Creating games, maybe putting artwork that they created in the game or whatever, or just say, “Okay, tell me what kinda game you wanna make and we’ll try to make it together.” And in doing that, what happened to me was that the feedback cycle was way too long. For instance, my son, when he was in elementary school, my oldest son, he wanted to do a planet project and most of the kids would do a paper mache planet and they’ll paint it or whatever. We decided to do it in 3D, on the computer, where you could sort of click and drag around. My 3D is pretty rusty because I don’t do it all the time, and so this was in Direct 3D, I did this. I eventually got it working – man! It was like a few hours of just head-scratching work, and he was uninterested in that part of it. What really got him going was I had him open up – this was on Windows at that time so he was using paint.net, and I just had him draw the texture of the planet. I think it was Saturn or something; I can’t remember which planet it was but I had him draw what the texture would look like and then we wrapped it around the sphere. He really liked that part of it, and when we showed it off in the class using my laptop, the entire class – their eyes lit up and they're like, “Oh, that's so cool.” But it’s the slog in the middle which can sometimes be the most rewarding part that when you encounter a problem and you don’t know how to solve it, and eventually you tackle that – that’s the high that I kinda get off of programming and that’s the type of sense of accomplishment that I wanna sort of impart on the kids too, so that they can understand why I like it and why they might like it. But it also tends to be like the biggest barrier, like it doesn’t look like any fun, right? JIM: Yeah, yeah. And I think what you said there about problem solving is really important because I think that’s really at the essence of what we do – we’re problem-solvers. We take a problem, whether it comes from a client or a co-worker, or some product specification, and we solve that problem. I think it’s maybe the most important skill that we can teach our kids regardless of what they decide to do. At some level, as they get older, they will be solving problems; maybe it will be with code, maybe it won’t be with code, but that ability to sit down and say, “Hey, I don’t know how to do this. Let’s figure it out.” Something my son and I were doing over the weekend is we were working on creating a World of Warcraft add-on. He’s big into WoW right now, and so we started writing a WoW plugin, and I just started off by saying, “I have no idea what I'm doing, so let’s sit down and figure out how to do this” and his first question to me was, “Can we only do this for half an hour?” and I'm like, “Yeah, that’s totally cool. Let’s see how far we can get in half an hour and then we’ll come back in a couple of days and we’ll see how much farther we’d get.” We actually got quite a ways, but I think just sort of exposing him to that, ‘Here’s how I solved this problem. This is what an event is and here’s all the events that we can respond to in WoW’ and I showed him this great, big, long list of there's like a thousand events, and he already started saying, “Oh, so we could do this, and we could do that, and we could do this?” I'm like, “Yeah, we can pretty much do anything; it’s just a matter of sitting down and figuring out how to do it.” The thing that’s really important is that whole problem solving aspect of it. I know they teach a lot of that in school right now. I mean, when they're doing a lot of their projects right now – Math and Social Studies and Sciences – it’s all already based on problem-based learning, which is where the teachers give them the problem and the students sort of figure out a way to how they would solve that. So I think there's a really good synergy there between what we do and what they're doing in school. BEN: What about even younger kids? I know there's lots of toolkit programming languages that are more visual, that allow you to sort of drag control blocks and things like that. One of the ones that I remember learning on a long time ago was Logo, where you have the little turtle and you can tell him to move up four spaces, turn right –. JIM: Yup. BEN: That was pretty – I don’t know, I guess pivotal for my own learning. CHUCK: Did you do that on a typewriter too? [Chuckling] BEN: Yeah, I had to walk uphill to school both ways in the snow [crosstalk]. That, to me, was helpful to be able to see, to think procedurally and to see the output. Do you have any experience or recommendations on tools we can use for kids even younger than 10 years old? JIM: Yeah, certainly. One of my favorite projects is a project called Scratch. It’s produced by MIT and it’s a drag and drop programming environment. It’s a really, really, really great toolkit for kids; there's a whole online community around it, very, very low equity barrier, but you can create, interact with stories in quick, very simple games. You can create animations, and it’s all done with the drag and drop interface, and you can drag and drop control structures like for loops and conditionals, you can integrate operators into it, and you said you can take a sprite and animate it across the screen by using just sort of drag and dropping these control blocks around the screen. It’s recommended for kids 8 to 16; I think there's about 200,000 projects up on the Scratch website, that as a parent you can actually show your child the project, and then there's a little button and then you click it and it flips the project over and shows you the code that was used to generate it. Very, very interactive – you can go from zero to hero in literally a couple of minutes just by dragging and dropping things around. It’s something I have planned, actually, to go and teach at my son’s school. I'm working with his teacher right now, trying to organize me coming in once a week and teaching them Scratch, so I'm looking forward to having a lot of fun with that, but certainly a really, really neat, neat product. CHUCK: Yeah, it’s really cool. I'm looking at the website right now. My son is eight, and so I keep thinking, “Is this something that he could just pick up and run with, or –?” JIM: Yeah, absolutely. There's lots of great, little videos, and the videos that show you how to do things are very short. And literally you can put a sprite on the screen, a little bit of drag a couple of blocks onto the code editing workspace, and have that sprite jumping within a minute. At that point really your imagination just becomes your only limiting factor. So yeah, for an eight- year old, I would definitely introduce him to it and see what he ends up creating. CHUCK: I'm assuming it runs on Windows, Linux, Mac? JIM: It’s flash, so really any web browser that can run flash is going to be able to handle it, and be lots of fun, lots of fun. CHUCK: That’s really cool. BEN: Do you know of any available for iPad? It might be a little bit easier for super young kids. My youngest are four year-olds, and they can navigate an iPad like crazy, but a computer, that sort of dexterity for mouse and keyboard isn’t quite there yet. JIM: No, I haven't seen anything – I mean, certainly, nothing has caught my eye for kids that young on the iPad. I came across an app a couple of days ago called Codea, which is similar to Scratch, except that you're actually writing code, and it uses LUA, and you can create attractive stories, simple games, interactive animations – that sort of thing – and their entire IDE is on the iPad. Haven’t really dug into it too deeply, but it certainly looks quite interesting. Kids love iPads; they love [inaudible]. Obviously if you have kids, you know they just really love interacting with that so I'm hoping it’s something I can expose my son to and see what he can do with it. BEN: I just came across one called Hopscotch, which is free, and looks a lot like Scratch – sort of drag control blocks onto the surface and then click play, and it can draw things or move things around. That looks like something I might take a crack out with my kids and see if they're interested in it. JIM: Yeah, I saw a tweet about Hopscotch the other day; I think they're looking for testers or something. I’ll see if I can dig that up and I’ll pass it along for the show notes. CHUCK: Yeah, all of this looks like a lot of fun. One thing that my eight year-old is really into is Legos, and so I've been looking at the Lego Mindstorms stuff, and they also have a competition for elementary school and junior high, or middle school-aged kids, and so I thought that might be fun to get into, too. Do you know much about that? JIM: No, I haven't done any work with Mindstorms. My son loves Legos – used to love Legos – and at that time I thought about picking up some Mindstorms, but for whatever reason I didn’t. There is an interesting project that I'm going to look at, but it looks very, very cool. It’s called Little Bits, and the web address is littlebits.cc, and it’s kinda like a DIY building block set where you can build your own circuits and it has sensors to detect light in, and it has servos, and you put these things in different orders to create different circuits and different projects, and it’s been something I've been considering dabbling into, sort of that whole create-your-own-gadget kind of thing, and buy a bunch of blocks and just start to put them together. There's also another interesting one which is targeted just for girls and it’s called GoldieBlox. It’s a very similar idea, except that it’s spaced around a story book from what I understand, and it was designed by an engineering student from Stanford, and she wanted to try to come up with a way to inspire more women in technology, and she came up with this project to young girls, where they follow the narrative in a story book and they have to build, get to build things to continue throughout the story. And again, I think another really interesting way to look at inspiring your kids to solve problems and using technology as a sort of the way that get from point A to point B. PETE: I feel like especially with younger kids that connection to the real world maybe helps to be more engaging, like they're not just moving stuff on the computer screen – they're like moving things around in the world, or seeing results in the real world. JIM: Yeah. One of the projects that I did with my son was a project with the Philips hue light bulbs, and the Philips hue light bulbs are the light bulbs that you can control from your i-device. I created a UI on the iPad that essentially simulated the day-night cycle in Minecraft, and that day-night cycle in Minecraft would automatically adjust the lighting in the room to make the ambient light in the room whatever the ambient light in Minecraft would be. And we sat down – it was actually his idea – when we first saw the Philips hue light bulbs, and he thought, “Wouldn’t it be cool if we could change the color of the light in the room to whatever it is in Minecraft?” and for me that was just a challenge that yeah, we have to do this. So we went and picked up the light bulbs and made a very simple UI on the iPad. It was neat in a couple of senses: a.) like you said, we were able to sort of combine the virtual world with the physical world, but he had some really neat ideas through the apps. Originally, what I had was I had the sun going up and down in just a straight line, so you will see the sun will go up, and the sun will go down, and the moon would go up and the moon would go down, and he sort of came up with this idea, “Wouldn’t it be neater if it could sort of track across the sky, like a sunrise and sunset?” So we sat down and ended up using a quadratic formula to create the ark that the sun and moon would move across. Certainly the algebra was far beyond what his understanding of Math was, but it was an opportunity to say, “Here’s some Math that people can use in the real world, and here’s how we take that Math and apply it across the UI.” So hopefully when he’s in junior high school or  high school, when he comes across having to learn some sort of odd, abstract mathematical formula, hopefully he’ll be thinking about how this formula would sort of come to use in the real world. I can remember – I think I was in Honor’s Algebra in grade 12, we were learning some trigonometry thing and this student asked why, and our instructor came up with the answer, “One day, you might want to build a house.” I think most of us kinda laughed at it because we’re in Honor’s Math; we’re probably not ever going to be building houses, so it was really a poor example, but hopefully when he can take those ideas and apply them to something that you're passionate about, you'll take a different point of view and when you're being exposed to some of these concepts later on. So it was a really fun project and it was just really sitting down and being creative and solving some problems. It was actually quite cool; we got picked up on Hacker News and made it to number one of Hacker News –. BEN: I remember taking a look at this video when that happened, and I showed it to my son. I was like, “Isn't this cool?” He dabbled in Minecraft a little bit, and he’s like, “Yeah, that’s cool.” And I'm like, “You wanna do it?” and he’s like, “No.” I'm like, “Okay.” I keep trying to find those moments to maybe build something like this. I've also been looking at a Raspberry Pi – I don’t really know what I would do with it, to be honest. But I keep seeing these projects out there and I'm like, “This would be so cool to build with –” my middle son is really into sort of building things, so just trying to find a good project to work on. PETE: Yeah, I've been doing work with – well, my kid is two years old, so he’s not really old enough to understand what's going on, but [crosstalk][laughter]. He understands, but he has a different interpretation of reality than grownups. He loves it when I play with – he calls it my flashing lights, which is me messing around with [inaudible], Raspberry Pi’s, and as soon as he sees me sits down on the table, he’s like, “You're going to make some flashing lights?” JIM: Yup. I remember my first exposure to computing and it was through my dad. My dad was always kind of a hacker – if our toaster broke, he’d fix the toaster; if we needed a new TV, he’d go to some insurance sale and find a TV that had been burned in a fire and he’d fix it. He was a maintenance engineer at a lumber mill, and one day he went to a course and he brought back his programmable logic controller, which was – this would have been about 1979, I guess. It was essentially a breadboard, and what you could do is you can drop in some AND gates, some OR gates, some NOT gates, and this one had an LED display that you can plug into the breadboard and he showed me how we can make a counter – so how we could make this light go from zero, one, two, three, all the way back up to zero again just by using these AND gates and a little switch. I was just hooked; I guess I thought that that was the coolest thing in the world. And I think what was cool about it was that it had flashing light – there was some real-world output that was just extraordinary to me and from that point onwards I was hooked, and any chance I got to do anything related to programming, I was there. So I think this exposing them to these things is really important – I mean, if they catch it, they catch it; if they don’t, they don’t. Maybe it will be soccer, or swimming, or who knows, right? Kids are, they're all different. That’s very profound, I know. PETE: They're all unique snowflakes. JIM: Yes, yes, that’s better. CHUCK: What's that line from The Incredibles? “Everybody’s unique, that’s the same as saying no one is.” [Chuckling] PETE: I'm really surprised as to how unimaginative I am. I think the same thing as you, Ben, like I know my kid really loves it, like when I do this stuff with flashing lights, but I can’t actually figure out something cool – like I wanna make him a toy, but I actually have a really hard time thinking of something that he would find engaging. And it’s kinda funny because the stuff that I do that I don’t think he would be interested in he finds incredibly fascinating. That’s my challenge, is trying to figure out something I can build that he’s going to be super excited by. JIM: Yeah, I think that’s the cool things about having kids is because the kids are full of boundless imagination – they don’t know limits. They’ll say things like, “Hey dad, could you do this?” or “Hey dad, can we do that?” and I think at that point is where you just say, “Aha! I've got them. How do I do that?” And I think, as programmers, that’s what we do. We, like I was saying earlier, we solve problems. So your kid is going to come to you with something and say, “Hey, do you think we can do this? Do you think we can do that?” or “How about if we did this?” and that’s where you start and say, “Yeah, we can do that” and hopefully that will – well, I shouldn’t say hopefully – maybe that will grab their attention, that will engage them, that will inspire them and they’ll want to do more, to learn more, to go out on their own. CHUCK: One thing that kinda came to me while you were talking was that you mentioned the things like the sun tracking across the sky and things which was all mathematics that were a little bit beyond your son, and I kept trying to rack my brain for projects that my son could complete from front to back, and it occurs to me that that doesn’t necessarily have to be the case; that we can sit down and I can just plug in the magic, so to speak, for the pieces that he doesn’t understand, and then he could figure out the other pieces that he does understand, and still develop an interest in these stuff. JIM: Yeah, one of the other things that I do with my son is I coach a soccer team. One of the conversations I have with the other parents in their team every year is that don’t expect your child to play an adult’s game. When we are playing soccer at six years old, we play modified soccer – we don’t care if the kids throw the ball incorrectly; we don’t call offside. There's only three kids on the field at the same time; we don’t put them on a great big field that’s 100 yards or whatever and put 11 players on each team and expect them to play an adult’s game. And I think it’s the same with anything that you expose your kids to – they're kids. Like what you were saying, they're not going to get all the mathematical concepts and that’s sort of where you're going to step in and help out, so it’s sort of guiding them and giving them things to do that are within their – I don’t wanna even say so much ability, it’s sort of what's in their desires and help guide them to get there. Like I said, when we were doing the Minecraft mod, he would probably been about eight then, so certainly he’s not going to become a Java programmer, but he was certainly more than capable of creating that Rutherfordium block, and that was a part that he was able to say, when he had his friends he would say, “I made that block; I put the little purple dots on because purple’s my favorite color.” So I think it’s really, sort of keeping perspective and when they want to learn more and they ask to learn more, then you show them, and hopefully they’ll take that somewhere. CHUCK: I'm really curious to see where I can go with this with my kids, and even if they wind up doing something else when they're older, that’s fine. One thing I want to get into a little bit is specifically iOS programming for kids or younger people. At what age do you think they really kind of grasp what you're doing with iOS? JIM: I haven't exposed my son much to iOS development at all other than him watching what I do, and maybe part of that’s because I'm still learning. I've been learning iOS development for about a year and a half now; I've done tons of flash and flecks and Silverlighting, WPF, and C#. But objective-C was a language I had a little bit of a tough time – I wouldn’t say tough time learning, but it was conceptually a lot different than anything I had done before, and I think there's a lot of moving pieces for young kids. It’s one of the things that really sort of draws me towards LUA and taking a look at projects like Corona at coronalabs.com where you can create apps, cross-platform apps using the LUA programming language, and what's really nice about that is you can actually create apps where all the code is really in one file. You're not dealing with lots of classes and huge, huge, deep frameworks, typing, hetero-files, interfaces. I just find that there's a lot of overhead with objective-c that might make it cognitively hard, conceptually, for young people. That’s not to say there's not a 12, 13, 14 year-old who is doing some really amazing things with objective-C, but for me, the way I think about objective-C and where I think my son is, I just don’t think it’s very accessible and again, I'm not professing to be right about this but that’s just sort of my gut feeling. I know we tried to do it, but we did a cookie clicker clone – it was sort of the cookie clicker fad was baked a few months ago and all my son’s – kids were playing this. It’s this stupid, little web game where you just tap on a cookie and you get points and you challenge your friends, and whoever gets – I don’t know. So we created a very simple clone – my son has a lot of questions, but I could see him losing interest just in the overall complexity of it, so I don’t think I'm at the point of actually teaching him that, but again, we were doing some LUA with the WoW programming in the weekend and he was all over that. It seemed to, again, not a lot of cognitive overload to getting something going fairly quickly. And I think when dealing with kids, I think you need that quick win solution, otherwise, you're going to lose them fairly quick. BEN: Yeah, this kinda reminds me of that age-old question like, “Should you have a computer science background to be a professional programmer?” Like, there's all of this underlying stuff which are important to know but not critical? For a professional programmer, should you learn C before learning C# or Java or something? I generally lean on, yes, that’s valuable to learn but not required, and in the case of kids, they're never going to be interested enough to learn what a pointer is, why FNil terminate a string – I mean, that stuff is just – you might as well turn off all interest in programming immediately. So I think it’s starting at a higher level where they get those quick wins is good and they can sort of ignore all the nitty gritty details underneath is probably really important. And because objective-C – you squint and there's a lot of C in there. JIM: Yeah, I mean, what I would hope my kid would get out of some of the sessions we do are sort of what you're saying the higher-level concepts, so, what's an operator, what's a variable, what's a conditional, what's an expression – those are the things that I think, if you have a really good, high-level understanding of, if you wanna dig into some of the lower-level languages or something a little bit more complex –. Hopefully by then, I think if they get to the point where they wanna dig into some of the lower-level concepts, they're going to be motivated to accomplish something, to do something, and it’s at that point that I would certainly choose to dig in deeper and say, “Alright, well here’s what a hetero-file is, and here are why it’s important, and this is an interface and we have a public interface or private interface. In objective-C, we have to worry about the types of data going into our variables, so here’s a way the type system works.” But yeah, there's a fair amount of cognitive overhead in there, which I think is why [crosstalk]. BEN: You gotta sell them on the benefit, right? JIM: Yeah, yeah, yeah. BEN: They're like, “Okay, I want to write a game and I know that that’s going to require some programming, and so I'm willing to invest some time to maybe be uncomfortable and not really know what I'm doing, and ask questions, and get through that so that I can get to the end result,” and I think that’s probably the best thing that we could teach our kids is, “You can do this and I’ll provide you with whatever resources you want to make that happen.” JIM: Yeah. PETE: It kind of goes back to that soccer analogy: you kinda wanna make it fun and get them hooked and  then once they're tricked into thinking it’s easy, then you do the bait and switch and start teaching them about reference counting and all that stuff. [Chuckling] CHUCK: One thing that strikes me though, too, is my seven-year-old is really into art, and so I keep thinking that maybe I can take some of her artwork and put it into a game or something. JIM: Yeah, that was actually the very first project that my son and I did. I think he was four and we were at a restaurant, and he asked if I can make a video game. I said, “Absolutely. I can make a video game, but you gotta do all the artwork.” So he flipped over his restaurant menu, and he grabbed the orange crayon, and he drew a tank and some helicopters and we made a little game out of it. And it was tons of fun for me. He was just, every time he had a friend over, they'd play this little game which I don’t think it really worked properly; I don’t think he could actually kill the last helicopter, but he played that for hours – and it was all his artwork. And actually, there was a game I came across yesterday called Flippy Unicorn and –. BEN: You stole my pick. JIM: [Chuckles] I'm sorry, but again, [inaudible] very cool idea and all that Ben will talk about in the picks. Tan-dan-dan. [Laughter] BEN: Foreshadowing. CHUCK: Yeah, I just – I really like the idea. I mean, she’s drawing mostly stick figures at this point, but still. JIM: Hey, any way you can engage them to do something, right? Again, whether it’s programming, or being a graphic designer, or being a soccer player, or a dancer, or a scientist – I mean, if you take your kids skiing, maybe they’ll become a professional ski instructor. Who knows, right? But it’s just that whole, the whole thing I think about parenting is taking whatever they're interested in that day and seeing if you can help expose them to it. And if it’s a firefighter, and the next week it’s a doctor or a veterinarian, I think as a parent there's lots of things you can do to expose them to that and maybe something will stick, maybe it won’t, maybe it’ll be a fad – who knows, right? Just really try to find those things that engage them and support them in that. CHUCK: Yeah. The other question I have is, are there any conferences out there that are kid-friendly? The one I keep hearing about is RobotsConf, that would be friendly, but I'm wondering if there are other more programming and less hardware-focused ones. JIM: There is one conference coming up this summer, I believe, and it’s called iKidsConf. It’s being organized by Saul Mora of MagicalPanda – he does the core data, magical record project – and Jamie Newberry, formerly of Black Pixel and she’s now – her podcast is Unprofessional, and they're putting a conference together called iKidsConf, and it’s being planned to be held in Disneyland, which is a great venue. I believe this is coming up this summer, and they have a twitter account @iKidsConf, and I think they have a link to the registration page. That’s really the only other one I've heard of in terms of kids-rated conferences –. PETE: I know that Code Mesh has like a kids-parallel conference, so if you're going – if you’d go with your family, and that’s like in a non-amusement park. What's the word – like a water park. When I was there, a lot of folks brought their families and their families were either off playing in the water park or doing this parallel kids’ conferences at the same time as the programming one. Which is really nice, because it’s really nice to see people walking around the conference with their kids, rather than walking around not with their kids. JIM: Another site that’s quite interesting, if you'd like to do more sort of DIY projects with your kids is – there's a site called DIY.org and they have hundreds and hundreds and hundreds of projects that are suitable for boys and girls of all ages, and they range from building things in Minecraft to doing things with makeup, creating survival kits and jewelry and recipes for baking, but they're all very accessible projects. And I think when you complete them you actually get badges, virtual badges – they have a little iPhone app that you can keep track of your badges and all the things that you do. But certainly, if you're interested in doing projects with your kids and doing things that are sort of DIY-based and technology-based, it’s a great website. Lots of resources for parents and lots of projects for kids; lots of fun there to be had. CHUCK: Yeah, I love all this stuff. I'm going to be using these show notes to pull a bunch of stuff together. My kid’s school has an after-school program that parents can pull together, and so it sounds a lot like what you're looking to doing at your kid’s school, so all of these things really are exciting to me. And the idea of iKidsConf – that sounds like that fun too. JIM: You know, hanging around Disneyland for a few days is always fun, and if you can get some kids learning – and the interesting thing about the sessions at iKidsConf is the kids will attend a 45-minute session, and then there will be a 15-minute session for the parents afterwards, so the parents can get an idea for what the kids were learning, and give them some ideas just so how they can support them and engage them when they get back home. Another project that I've seen in – I think it’s quite big in the UK – is called Code Club, and it’s sort of really follows the open source software community idea where a bunch of volunteers come together and teach kids to code for free. I'd like to hear if there's more organizations like that in North America and how the community could pull together to offer some of these digital literacy programs for kids, without sort of a high barrier entry, like having to go to a conference in Disneyland and spending thousands of dollars. Really, code should be, and reading how to program should be accessible and free, and to see more organizations like Code Club or –. I know there's another organization, I think it’s called CodeKata - place where you show up and learn digital literacy. So it would be really great to see more programs like that pop up. CHUCK: That’s awesome. Looks like Code Club, they have a Code Club World which is the worldwide organization for the UK, and it looks like they do have some in the US. I don’t know if any of these are in Canada. JIM: Yeah, it’s been a while since I checked that site out. CHUCK: It looks like for this north, the closest to you would be in Seattle. JIM: Yeah, their Manifesto was very cool and it’s definitely interesting taking a read and thinking about how you can do something like that in your own community. CHUCK: Really, really interesting. Alright. PETE: This is all really interesting stuff. CHUCK: Well, we’ll go ahead and do the picks. Pete, do you wanna start us off? PETE: Sure. So my first pick was inspired by us talking about keyboarding in the beginning of the show, and that reminds me of many joyful afternoons spent with Mavis Beacon typing and I found years after that, there was a game called Typing of the Dead –. BEN: So awesome. PETE: It’s basically the same as Mavis Beacon, except it’s the arcade game – whatever that arcade game was where you had to shoot the zombies, except you have to type the words before the zombies get to you. I tried to find it online, and I kind of failed, but I found almost exactly a similar game called Typing of the Living Dead. So that’s my first pick – a good way to engage your kids in learning to touch type, I guess, although I'm not sure if you wanna have your kids like shooting zombies over and over again. My next pick is kinda random – it’s an organization called Black Girls Code, and these guys, their mission, their vision is to help young women of color get into the computer side and stem all that kinds of stuff. I think they already use Alice or Scratch, I can’t remember what, but they started off here in the Bay Area and they’ve kinda been super duper successful and popular and they're all over the US now, I think. They're just a cool organization and if they're in your area and you wanna support them by being a mentor, offering up space, then you should do that. And then my last pick is a beer. I feel slightly weird picking a high alcohol beer given that we’ve just been talking about kids, but [laughter]. This week, I'm going to pick Dogpatch Sour from Almanac Beer Company, which is based in the Dogpatch area of San Francisco. I just found out that this brewery, they're really cool, very kinda hipster artists and all local, like they brew seasonally and they take local fruit from the neighborhood and all that kinda stuff. Their beer is also really, really, really good – as good as Russian River Sour beers, which, if you know anything about sour beers in America, you would know that Russian River are really good. These guys were very, very, very good, so that’s my last pick, is Dogpatch Sour from Almanac. CHUCK: Awesome. Ben, what are your picks? BEN: Let’s see. My first pick was [inaudible] earlier, it’s the Flippy Unicorn Poject by Walter Tyree. Basically, his daughter drew all of the unicorns, and the background in the app, and so he wrote this app with her. It’s 99 cents, and he’s just giving her al the profits, so I went ahead and bought that. The game is silly, but my kids will like it. I wanna support that type of thing; I think it’s really awesome and will probably be a memorable experience for his daughter. My next pick is another sort of father and son project – this one was, the guy created a weather balloon and attached an iPhone to it to record and had GPS, so he and his son launched a weather balloon and actually went all the way out to the edge of space, and then popped, and then they went and they had a parachute and found where it landed and was able to grab the video for that. Again, just one of these moments that this kid is going to remember forever, so I will link t those in the show notes. And then an anti-pick, I had pneumonia the last two weeks and it was terrible [chuckles]. I actually was in San Francisco and I met up with Pete and just tried to have a good lunch – it was not really happening, but at least I got to go say hi to Pete. Anyway, don’t get pneumonia, stay healthy, and teach your kids to program. CHUCK: Very cool. I've got a couple of picks. We’ve talked about teaching kids to program on the Ruby Rogues podcast, and we’ve also talked about, we talked about Robots last week – I think it was last week or a week before on the JavaScript Jabber podcast. We talked a lot about kids on that too, so I'm going to recommend both of those episodes. Other than that, I don’t really have anything that I wanna pick, so I’ll hand the microphone over to Jim. Jim, what are your picks? JIM: Alright well, my first pick is a book, and the book’s title is Everything Bad is Good for You. It’s a very, very cool book; I read it about eight years ago and I think it’s still very, very relevant, but it really will make you think twice about, sort of that question when you have kids is how much screen time is too much screen time. And this book studies the evolution of media over the past, I guess about 40 or 50 years, and takes a look at how – and what he tried to do is correlate the increase in complexity of narrative in television, books, and movies and video games to an overall increase in IQ over the same period of time. It’s a really, really interesting read; I highly recommend it. My second pick is an app and I sort of talked about it a little bit earlier. The app is called Codea and it’s an app for the iPad that lets you make games, simulations, animations all using the LUA programming language. It looks very, very neat; if your kids have an iPad, this looks like a very accessible way for them to create some really interesting projects. My final pick is a beer, and if you ever happen to be up in the British Columbia-Canada regions of Vancouver, Victoria, there's a fantastic brewery called Driftwood brewery and they have an IPA called Fat Tug, and it’s really, really hoppy, it’s really tasty, and one of my favorite beers whenever I'm getting to a pub that has it on tap. Fantastic. CHUCK: Very cool. Alright, well I just wanna thank you for coming, again. This has been a terrific discussion and I've got a ton of ideas for things that I wanna do with my kids. JIM: Awesome. CHUCK: I also wanna remind everybody that we are still doing the Book Club for the Functional Reactive Programming; we had a little glitch, technical difficulties, last time, so we are still going to read the book and we are going to talk to Ash. It didn’t happen last week and we’re still working that out. Besides that, thanks for coming, we’ll catch you all next week! [Hosting and bandwidth provided by the Blue Box Group. Check them out at BlueBox.net.] [Bandwidth for this segment is provided by CacheFly, the world’s fastest CDN. Deliver your content fast with CacheFly. Visit cachefly.com to learn more]

Sign up for the Newsletter

Join our newsletter and get updates in your inbox. We won’t spam you and we respect your privacy.