Programming Throwdown - Teaching Kids to Code

Episode Date: November 13, 2018

Hey all! First of all, sorry for the delay in publishing Oct's episode. There are some pretty intense wildfires close to where we live, but it looks like things are getting under control. Hug...e thanks to all the firefighters! In this episode Patrick and I talk about teaching kids to code! We discuss how we learned to code and what are ways to build logic and reasoning skills in kids of all ages. Also we talk about ways to get kids excited about the fundamentals behind coding and solving problems. Check out the show notes here: https://www.programmingthrowdown.com/2018/11/episode-83-teaching-kids-to-code.html Do you have any good resources for teaching coding to kids? Let us know in the comments and we'll mention it in the next episode! Also this is the last chance to become a Patreon subscriber if you want to be entered in this year's annual give-a-away episode which will happen sometime in Dec! Last year we had a lot of trouble mailing the tokens to everyone, but our gears are turning around gift ideas for this year. Either way, a few lucky patrons will get free t-shirts! Become a patron here: https://www.patreon.com/programmingthrowdown Happy Hacking! ★ Support this podcast on Patreon ★

Transcript
Discussion (0)
Starting point is 00:00:00 programming throwdown episode 83 teaching kids to code take it away jason hey everybody so uh something pretty interesting happened i knocked over a bottle of coke and coke went absolutely everywhere. This was about a week ago. Completely ruined my keyboard that I bought a long long time ago. And so I went on Amazon and I found out the keyboards are way cheaper now. I bought a mechanical keyboard actually I don't know like I bought a mechanical keyboard way back, but either I just forgot or I wasn't paying attention But basically there's there's colors for the switches and the color doesn't just mean because the first was like cherry red and the keyboards
Starting point is 00:01:01 Black it didn't make any sense, but basically The colors correspond to how the key feels so if you have cherry red that's the softest setting basically the softer the keyboard is kind of at least in my opinion the better it feels but the less you're sort of let's say guaranteed to press the button so you know if it's really hard and it makes a big kind of click sound like i think the blue mechanical switch does this it makes a big kind of click sound when you press that to me is kind of annoying but at least it's like you know that you press that key like there's no in between um so i chose i think there's brown which is in the middle i chose cherry red um and i love it i think it's great i mean i i
Starting point is 00:01:45 haven't had an issue actually it took a little bit of getting used to so you know in the beginning like sometimes i wouldn't totally hit the key but at this point now like you know i i haven't had any issues and i like the way it feels and so it's a lot cheaper so um so that's kind of what i'm what i'm typing on right now so i didn't know for a long time about i guess they're called mechanical keyboards i thought you know all mechanic all keyboards are mechanical but apparently i was wrong as always um so most keyboards that aren't last time ever on the show most most keyboards not like laptop keyboards but desktop keyboards are i guess they call like membrane switches or rubber domes so it's like a piece of rubber where the bottom of your key has a bit of metal
Starting point is 00:02:30 and the pcb underneath has a bit of metal and when you push down your key the two pieces of metal touch and that's what makes the click and so they're kind of mushy uh yeah but the reason why they're not touching all the time is just you have this piece of rubber and so when you're pushing you're squishing the rubber yeah and i never knew any different and in fact i don't think most people do until you go try one of these quote-unquote mechanical keyboards where there's springs and plastic levers and whether or not there's clicking detents or just tactile bump detents and as jason said there's like six or seven different colors and there's even a community where people open up the switches and change out the springs so like you can just the
Starting point is 00:03:12 weight of the key on your reds you could make it heavier but you really like the reds the slidiness of it and so you could change it to be slightly stiffer or slightly looser in addition to buying a different color to like get it even more customized. And then you can buy like lubricant to sprinkle down in the key so that the keys slide differently. People mod like take the reds stem it's called and the blues clicker or something. I don't know what combinations make sense and just really mod it up so you can take it to the extreme. And then you can also with the mechanical keyboards, it tends to be that you can change your key caps so i didn't know about this either but like my keyboard the cap actually won't come off the key and so the the thing that has the writing on it the letter or the number is
Starting point is 00:03:58 attached to the keyboard you can't pull it off but on the fancier ones you can and you can buy replacement ones of varying crazy colors and there's even like uh people probably notice i guess but there's like artistic key caps where you can get like little sculpted superheroes or figure eights rubik's cubes whatever i guess uh kinds of things you want and they can become very expensive like 7500 150 dollars per key per letter what no way yeah yeah yeah like it's like an art collecting like collectible things um oh my gosh but then in addition you can buy 100 and 107 keys or something well so that's the other thing is you can buy key sizes down from 40 percent keyboards which
Starting point is 00:04:37 is approximately 40 keys to 60 percent to the normal like i think it's 110 keys is roughly a full-size keyboard or 10 keyless which is you drop the numpad stuff off to the right and you end up with about 70 or 80 keys or something okay that makes sense yeah yeah the sky's the limit some people who are really crazy built their own keyboard so this is the rabbit hole i went down so i wanted a split keyboard so i want a keyboard where the left and right hand you can adjust them so people make fun of me at work uh because i don't have like a super weird keyboard by normal standards but it's split so i have it kind of far apart sometimes like as much as like a foot apart and then like when i eat lunch for instance i have
Starting point is 00:05:18 my food in the middle and the keyboard on either side of my food um like on both sides and so so that's what i really like and it prevents you from cheating like your right finger can't type on the left side because it's really far away um oh that makes sense yeah so then i learned about this thing called the dactyl keyboard d-a-c-t-y-l uh which turns out is like a 3d printed case for you to mount these mechanical switches in that you can just buy off the internet. And then you hand wire the switches together with diodes and into a microcontroller. In this case, I used a variant of an Arduino,
Starting point is 00:05:57 a very small Arduino, and you put one in each half. And then the left half talks to the right half over serial across a headphone cable ahead like a 3.5 millimeter cable and then you plug the usb cable into the one on the right and it acts as a usb device to make your letters wait why why would you use a headphone cable and not uh like something easier to program like like i don't know ethernet or something well well so the headphone cable connects the two halves because it turns out your computer gets confused if you have two keyboards plugged in
Starting point is 00:06:28 like it doesn't work well so you only plug one computer sorry go ahead you have to write your own protocol to get well so there's an open source project that's pretty popular with diy keyboard people called qmk um that that people use to do most of this programming. And then you specify a key map because the keyboard doesn't know what the letters are. And you can literally arrange them in, not infinite, but very large variety of key combinations. And so you tell it which key corresponds to what letter. So you can do things like Colmac or Dvorak keyboards
Starting point is 00:07:02 in addition to the normal QWERTY keys. You can also adjust what the thumb, on this one there's thumb clusters so the letters your thumb can type and like space and backspace are like on opposite sides on your thumbs another popular one is the ergo docks is a keyboard that's similar to this uh anyway so there's like a the amount of customization goes through the roof um and it's actually a pretty big learning curve because there's also layers. So you can sort of have a button that you push and all of the keys become that they do something else. And the whole keyboard, you sort of raise up a layer or lower a layer. And then you have modifiers.
Starting point is 00:07:41 So like there's no arrow keys. So you might raise up a layer and then your arrow keys are on the, you know, WASD or I don't know, UHJK. You just make it whatever you want. And so the amount of customization goes up and you have to get kind of used to it. So I built one of these and was using it for a while, but I couldn't get over the learning curve.
Starting point is 00:08:00 So now it sits unused. But interestingly enough, there's, if you look this up the guy who made it made a video and if you're into 3d printing which we talked about a while there's a thing called open scad which is a way to generate the stl which is sort of the the water type mesh the triangles that you feed to a 3d printer to 3D print an object. You can describe that from primitives. Sort of like if you've ever used, what was the name of it?
Starting point is 00:08:29 One of some of the POV ray, was it? One of the ray tracers where you sort of describe a scene. It's very much like that. And sort of this very simple programming language. So he didn't like that. So what he did was write in Clojure a way to generate OpenSCAD, which then you run to generate the STLs and then you print. So you can actually like add rows or columns to the keyboard and the keyboard a bunch of like uh key tops or keys i guess key caps yeah and then you bought the uh mechanical switches yes and you soldered it all together yes with
Starting point is 00:09:13 like wires and so is this what you use every day no so i couldn't get over the learning curve of it it was too it was too custom oh i see but but if you had made uh one that was uh like so what was hard about it so i don't know if you look at the pictures so for this one it's that the things you would normally do kind of like with your pinkies like the backspace delete or whatever and then it has like become on your thumbs so like the shifts aren't with your pinkies they become with your thumbs yeah so for people who like are listening to this which is almost everybody basically like imagine imagine you know if you took a keyboard and you kind of you kind of broke it into into like four pieces and there's there's a piece for each of your um what's the word for this um there's okay there's a piece for each of your opposable thumbs
Starting point is 00:10:07 that's two pieces and then there's a piece for each of your the rest of your of each of your hands what's left over so you have these four pieces and you have these like you know two kind of little squares for your opposable thumbs that kind of hang on to the other to the rest of the to the to either side of the keyboard yeah and i could imagine it's really hard to get used to yeah so my friend has one of the ergo docs which is the same thing as this but basically like pushed down flat so without the curviness so if you took this whole thing like flattened it down and that was pretty popular um he has that one and it took him probably like two solid weeks and he was a much better typist than i am i'm a terrible typist actually um is that the right word for that oh well and so he got terrible time it's got good
Starting point is 00:10:50 alliteration there we go terrifically terrible typist patrick was typing terrifically terribly one day um and that sounds like a typing test oh that's right so it's like flan and it's called the ergo doc so he got one of these keyboards his was pre-made um but you know he learned to type on it and took him solid like two weeks to even become like passable at it and then he was telling me the other day he's like yeah i think i kind of just want to go back to using a normal keyboard like it's it's he still feels like he doesn't uh he is not as comfortable to him like Like he still occasionally makes mistakes. So I think it's one of those things that either jives with you or it doesn't.
Starting point is 00:11:28 But I don't know how you try it without trying it. Like you have to have it at your desk, commit to it, try to use it, and then decide if you like it or not. And in this case, for me, the experience was fun in having built it. It worked, it was great. And I just didn't end up wanting to use it.
Starting point is 00:11:43 Yeah, but I think if you, maybe if you built one that was a little bit more traditional, you could use it every day. So that's my new project. Would it ever be comfortable enough where you could use it every day? Oh, I think so. Would it ever be comparable to? Yeah.
Starting point is 00:11:55 People use the similar, I guess, idea that this Kinesis. There's this Kinesis keyboard, which has been heard about. Oh, yeah. There's a buddy at work who has that. Yeah, I think it's pretty similar to that that i think it's a similar idea strain yeah so this would be really cool like if you are a um you know developer um you could totally build your own keyboard with one of these like you know cheap 3d printers or you could um do the thing where you 3d print it and they mail it to you and you could bring in your homemade keyboard
Starting point is 00:12:26 and do all your development on that. That would be some serious street cred. I mean, that's basically, I think this guy has like a video where he talks about this, yeah. Yeah, it's like, if you really need that, that, you know, promotion at work, you want to find out how to take it to the next level.
Starting point is 00:12:40 Jason's contention is this is like instant promotion material. I'm not sure I agree. Instant promotion, guaranteed. Your boss just walks by and he's like uh you know turns to your person next to you you say hey did you finish that report blah blah blah he walks by your desk he's like have i given you that promotion yet i think this is how you move from being like oh i was a kid who was picked on in high school to like oh a lot of people at work are like me. Oh, nope, I'm back to being picked on again. Oh my goodness.
Starting point is 00:13:14 I'll have to tell you one day the time when I sat in a tent at work where I installed a tent over my computer monitor. What? We have to keep going. Okay, we'll have to do that next show that sounds bizarre um all right it was logical i promise all right the nebraska problem so uh this is a article that's actually quite old from 2014 but the game the witness um which was written by oh why is his name uh escaping me it just escaped me oh jonathan blow thank you
Starting point is 00:13:44 uh so it's not by him. That is the guy who made The Witness, but he had like other people helping him. This is by, I think it's one of the people who helped him out on it. He worked on it. I haven't dug quite into it. Casey Muratori. But anyway, so for some reason, this got linked a while ago and I sort of kept it in my backlog and didn't lose all my bookmarks.
Starting point is 00:14:04 And so I had this. a while ago and and i sort of kept it my backlog and didn't lose all my bookmarks and so uh i had this and he's going through in this article basically ways of putting down clumps of grass which are like oh patrick why do we care like this is a programming podcast and we're now how long into the podcast and we've not talked about programming um so he's talking about uh randomly choosing locations to put down grass and one of the things he points out, which is, it comes up again and again, which is why I want to talk about this, is that randomness is actually pretty hard. So both for reasons of like, we're not going to get into and quantum physics and what is truly random and that most of the time what we call random is pseudo random.
Starting point is 00:14:41 I'm not talking about that. I mean, although those things are interesting, I would love to talk about them. Just from the fact that if you say he wanted to put down clumps of grass, and if you just randomly uniformly sample the space, pseudo randomly sample the space, you end up with clumps in some areas and gaps in other areas, which actually, although might be truly random,
Starting point is 00:15:01 looks bad. It doesn't look natural because grass doesn't end up being truly randomly distributed that way. And so you have some areas where it's dense and some areas where it's not. So now you need to- There's a natural process where grass is spreading and dying, right?
Starting point is 00:15:16 So what he, yes. And so what he's trying to do is, I don't know that he's per se seeking the biological defendable way of grass to be laid out in a field but he's showing how to do random sampling with what is that called like passan distribution or something where you're trying to like sample a set distance away from other plants so you're more likely to spawn where in an area where there are no plants than in an area with other plants yeah and and then also you could add increase the number of plants per area like the
Starting point is 00:15:45 density in total um but all of this door leads to gaps and he goes down to uh trying various methods and how to choose and and what he comes up with is goes on this deep dive and talks about how he he acknowledges this is a deep dive but it becomes this burning question in his mind and what he kind of figures out is actually he doesn't want something truly random what he finds out is that by choosing a pattern which is complex enough but is has certain properties he can get what he wants which is that when you're looking at it from sort of eye level out towards a horizon he can get it where there's no gaps and that it's not clear that it's a pattern but yet it is and you can use less features less of these plants and get the same effect and all
Starting point is 00:16:34 of that to say that he his quote-unquote random sampling in the end is actually that he said he doesn't go he's probably not gonna end up implementing it but that was this he called it staggered concentric intersections, where just sort of like this pattern with certain properties allowed him to cover the space in a way that was actually better than the truly just random distribution. And this comes up and came up actually at work where we kind of ran into this.
Starting point is 00:17:01 People were trying to test some stuff, and they were using just truly random tests. But what they were turning out is they weren't getting sort of great coverage. And what they didn't want was random sampling of the parameters, we actually wanted was some sort of preset coverage. So you could kind of guarantee that you covered as much as the input space as you can. So given that, hey, you're only going to be able to run 100 tests, how do you pick the 100 tests so that you get the most coverage possible instead of having risks of getting them clumped together? Yeah, that makes sense.
Starting point is 00:17:33 So basically, if some input is almost always 2 or something like that, but it has a range of 0 to 100, you don't want to waste a lot of time trying things that are way out there. Well, so yeah, that would be like- It's kind of like how if you have this grass, it's in the middle of nowhere. Yeah, so that would be like the reversing,
Starting point is 00:17:52 or the other way around is saying like, hey, you wanna make sure that this is well behaved. You get different behavior across zero to 100, but if you just pick 10 random samples, you're gonna get giant gaps most likely, versus what you could do is sample, if you have pick 10 random samples like you're going to get giant gaps most likely versus what you could do is sample you know if you have to sample 0 to 100 you could do 10 20 30 40 50 60 you know you could evenly space them and at least try to cover more of the area and the size of the gaps you have is going to be smaller and so there's a trade here without knowing what you're
Starting point is 00:18:22 trying to solve you can't say a priori, you know, hey, it's always better to random or it's somewhere in the middle. You want something that's random-ish, but what you don't want is probably truly random because truly random, you're going to end up with these gaps, these areas that aren't covered. That makes sense. Yeah, there's something like this in machine learning. I can't remember the term.
Starting point is 00:18:41 I mean, I think it's actually from statistics. It's called pseudo random but it's kind of overloading the term but basically it's a random number but you um you take as a prior the past numbers and so there's a there's a penalty for being close to one of the past numbers and so it's it's like this biased random number generator where it's more likely to generate a number that's far away from all the numbers it's generated in the past. Yeah. It's meant for like, yeah, like if you had, say, two dimensions, it'll try to generate a point that's far away from the other points. But then it'll make one random.
Starting point is 00:19:19 So it's like a combination of those two objectives. Yeah. So anyway, it's an interesting read and random is hard. Yeah, there's lots of random. So if you want to implement pseudo random numbers, you can do that in PyTorch. And PyTorch 1.0 came out in the past, I think it was last week or two weeks ago.
Starting point is 00:19:41 But basically, you know, TensorFlow is super, super popular. A lot of people are using TensorFlow and TensorFlow is great. PyTorch, you know, learned a lot of lessons from TensorFlow. And one of the things that PyTorch does really well is they have an immediate mode and then they have sort of a static mode. So the idea is, if you remember, like, you know, if you have compiled languages, interpreted languages, right, compiled languages are generally faster, because they can sort of look ahead, see sort of what's going to happen, or, you know, they can analyze the entire file,
Starting point is 00:20:17 take their time to try to optimize it, and do all of that before you run it, versus an interpreted, you know code in theory you could be kind of rewriting the code even as you're going along and things like that so you don't have the same assumptions um and so it's it's in machine learning you have sort of a similar concept where you have dynamic computation graphs or static computation graphs and as you would expect if you have a static computation graph it's going to go much faster because for example if there's some intermediate result that you're not using let's say you have you know z equals x plus y but you're not printing z or really doing anything with z you
Starting point is 00:20:59 just maybe you calculated it by accident or you deleted some other code that was using it, it just will skip that line. It says, oh, I don't need z. So boom, it's gone, right? So that's a pretty extreme example. But even if you're writing your code in a way where you're using everything, it's still much, much faster. It'll do all sorts of nice things there. But there are times that you need the dynamic graph.
Starting point is 00:21:24 So specifically, when you're trying to improve a model, like you're trying to have it train and learn and get better, that's when you typically need a dynamic graph, because you have to sort of react. It's like, let's say the model is really good. So you just want to stop training, right? Or let's say at the beginning of training, you want to do something, and then over time, you want to like switch to something else, right? So that's why dynamic graph is really useful. And also dynamic graph is easier to debug because, you know, because it's dynamic, you can stop it at any time. And so you can do all of that and then say, okay, now I'm good with
Starting point is 00:22:02 this. I want to switch to the static graph and get the speed. So I think TensorFlow 3, I want to say, is going to have this as well. So it's one of these things where everyone's learning from each other. If you have a huge project in TensorFlow, I probably wouldn't rewrite it. But PyTorch is super nice. If you're starting from scratch, PyTorch would definitely be the way to go, at least right now. And the 1.0 release came out, which really means that they have good documentation
Starting point is 00:22:33 and all of that. So check it out. Switching gears completely, don't have a good segue, is the Cosmic Ladder. So again, this is not really news, but this was a very interesting thing for me. So I thought I'd share it that somehow this came up.
Starting point is 00:22:47 What are we talking about? Something. And I did some research and found out, how do you tell how far away something is in space? So it turns out like a lot of people think they know and most people don't. So most engineers, well, most people probably don't care, to be fair. But most. Yeah, actually, I have no idea. I mean, I guess you have to do it based on the movement, right?
Starting point is 00:23:10 Yes. Okay, so this is what most engineers end up guessing. I'll say what you're saying is parallax, which is if you know that the Earth is moving and you see how things are moving relative to each other, you can sort of use trigonometry, roughly, and tell how far away something is. Yeah, right. Sure. how things are moving relative to each other you can you know sort of use trigonometry roughly and tell how far away something is yeah right sure but it turns out that only works uh out to a kind of a
Starting point is 00:23:31 certain distance uh because other things are just i mean i think it's like roughly 10 to the 24 miles away or something like it basically breaks down right You end up with your noise and your measurement is so big that you can't get useful information about how things, orders of magnitude further away end up still tiny in your computation. And so the cosmic ladder is a term that has Wikipedia and entry and everything. But the link I'll give here is by a person named terry tau and they i have no idea their uh pedigree as astronomers as an astronomer but they have a pretty cool presentation and pdf and powerpoint slide about essentially climbing the ladder how that you and it takes you through the history and sort of the techniques. And at least it was straightforward to understand or make me think I understand how it works.
Starting point is 00:24:28 About how that you're able to measure things on Earth, figure out how far away the moon is, for instance. Well, first, how big is the Earth? Like, how did they even figure out how big the Earth was? Once you figure out how big the Earth is, you can make an estimate of how far away the moon is um by sort of measuring various various things i won't recite because i'll mess them up um then as you get better like now we can tell how big the moon is because uh we can use radar systems to measure like how far away it is and reference it to things on the ground and we get better and we can see how the first initial guess is how close or bad they were.
Starting point is 00:25:09 Then to about 100 light years away, you can use what Jason was sort of saying by like movement around the sun, you can use sort of parallax. But what do you use for things that are like 10 to the 5 light years away? You have to use various fitting techniques to things which you believe have constantness. So if you imagine, and I might mess these up. So as you start going far away, you start saying, hey, it is repeatable that when a supernova occurs, that a supernova has a set brightness. So if I observe this, and this isn't exactly true, I'm waving my hands a lot.
Starting point is 00:25:42 If I know a supernova has a set brightness, then if I see a supernova and i measure how bright it is then i know how far away it is and so by having having a predictive model of how two things like how two binary dwarf stars orbit each other how fast that should happen and then by measuring you know how how far apart they are how big they are i can tell how far away they are um you can start to use periods of movement these kinds of things to try to guess how far away things are and he's essentially talking about how that once you can measure things a little further away then you can use those things to measure the things further away and you can sort of walk
Starting point is 00:26:20 your way up the ladder and to me it was just like whoa i wow that's never really thought about it that like some of these phenomenon are predicted by current physics of occurring in a set way like things will and certain stars will implode based on their mass and size and therefore you can predict their brightness and as we get better at understanding those predictions then we can use them to sort of measure how far away they are wow that's amazing i don't if you have that reminds me now i hope this isn't like uh totally off topic but but um i think it's similar you know how they measure i always wondered how they measure the weight of really small things like for example how do you measure the mass of a cork? And it turns out it's actually similar. So they, you know, you can't obviously put a cork on a scale or anything
Starting point is 00:27:12 like that. But what you can do is you can see what happens when a cork runs into something. And so you can see what happens when it bumps into something bigger than it. And then you can kind of see what happens when those things bump into something else, it um and then you can kind of see what happens when those things bump into something else so on and so forth and and and you can walk that sort of ladder backwards from something that is you know just big enough where you can weigh it and then looking at how um you know the the dynamics change when it collides into something smaller and you keep walking that ladder down until you get to a quark. And they actually use that same technique as you described to measure the mass of a quark.
Starting point is 00:27:53 Okay. Yeah, very cool. So I probably did a terrible job. If there's any astronomers in the audience, I'm sorry. But I found this interesting. And it turns out I'm not claiming what I said was, you know, more correct. You should go read about it. But, yeah, so it was surprising to me how much i didn't know about how distances were measured i
Starting point is 00:28:09 guess like jason was saying i never thought about how you would measure the weight of a cork uh but i guess it makes sense i guess the mass you measure it by bouncing it off other stuff and seeing how much it affects it yeah yeah totally yeah people are probably groaning cool no i thought that was actually one of the better, more interesting news stories we've had. So mine is much more straightforward and practical. It's an article on how to develop a boilerplate REST API. And so I actually found this because I was trying to do this.
Starting point is 00:28:39 And I've done this before. So I was really just looking for a more recent version of this. And I went through a few of them. I was actually really happy with this one. And basically, I wanted to spin up a really simple website. And I wanted it to just have a few calls. People would call it with a few different URLs. And it would just spit back some JSON data.
Starting point is 00:29:04 And so I wanted something very simple that could do that. It was going to talk to a database that had data from another program and I was really interested in that other program. So I want something quick, easy, low maintenance. And whenever I need something like this, I always turn to ExpressJS. I like it because it's Node.js. It's pretty easy to use. If I want to access it from a browser and do some client-side stuff, that's also going to be in JavaScript, so that's convenient. And the biggest thing is I wanted it to be kind of ready to go. I basically wanted it to bootstrap this app and get it to a point where I can
Starting point is 00:29:46 just create a URL handle for get and post and just put what I need in there and launch it. And this website actually goes in good detail about, there's a thing called, there's actually a binary called express from the express js team and you pass some commands some switches to it and it just builds a whole website from nothing um and it talks about kind of what those switches do because if you set different ones you're gonna your website's gonna look a little different um so yeah check that out it's got it kind of covers everything in good detail so time for book of the show book of the show my book of the show is enlightenment now by steven pinker um it's pretty cool it's it covers as it suggests the enlightenment period and it talks about how the um it actually kind of frames
Starting point is 00:30:41 the current day as a second enlightenment. So I'm not going to go through the whole book. It's a pretty long book. I'm not going to spoil the ending, although it's a historical book. So you're kind of living the ending. But the idea is you had the Dark Ages. A lot of works of knowledge were lost. They were either burned or the people carrying them fled out of Europe.
Starting point is 00:31:13 And then you talk about the Enlightenment where all of this knowledge was restored and really people's perception changed. Actually, one of the things that I found really fascinating is they talk about the difference before and after the Enlightenment in terms of what people believed. So, for example, people believed before the Enlightenment that if you, let's say, killed someone with a knife and you brought that knife later on, even years later, to the body or the grave of the person that the person would bleed.
Starting point is 00:31:45 So in other words, like, you kill someone with a knife, and two weeks later, if you brought the knife to the person, to their corpse, the corpse would start bleeding. And that's how you could tell, you know, who was guilty, like, who did it. Like, spontaneously bleed. And that was just one thing. But basically, you know, people, I mean, they believed alchemy, rightchemy right that like you could turn metal to gold maybe that's true how i mean it was supernova maybe or something um but but yeah i mean people believed just unbelievable things i mean we've all
Starting point is 00:32:19 heard about like that that maggots you know are created in meat you know like things like that like and just he lists off all these things that people believed and they're all just you know ridiculous kind of superstition right they're just perversions of nature and then he just says you know and in and 50 or 100 years later all of that is gone like like people just you know would look at you like you're crazy like like they would now if you if you said any of these things and just what an enormous transformation that was and um and he's talking he talks about basically how we've been going through just enormous transformations ever since uh the enlightenment and um i thought it was a fascinating book i'm still about halfway
Starting point is 00:33:05 through it um the one thing i'll say is i don't think steven pinker is a good writer so he has amazing ted talks i feel like his writing is quality is very poor to be to be completely honest um there's i would say in about 10 or 20 percent of the sentences, he puts a string of about eight or 10 adjectives. And I'm not even kidding. It's like, you know, we thought that we were in the dark, gloomy, like desperate, blah, blah, blah, blah, blah, blah, blah era. But now we're in the blah, blah. And like so many adjectives. And it just, it was almost like just, it became kind of like a joke where I started counting all the adjectives.
Starting point is 00:33:46 So, yeah, you have to sort of get past the writing in a sense. But the content I felt like was really fascinating. And I would still, you know, even knowing that, I would still read it again. Like if I wasn't already halfway through it. My book will probably not enlighten you. It's a fiction book the bands of mourning uh which is a brandon sanderson novel who i recommend i feel like i'm on a i think he released a lot of books and i uh have been sort of catching up on them versus a lot of authors i
Starting point is 00:34:17 am caught up on so i feel like his name gets brought up a bunch um i it's not that i i wish i had other stuff i've just been reading a lot of uh more parts of series and so since i like brandon sanderson so much and constantly try to tell people how they should read brandon sanderson books um i will say that i this is the third book in the second trilogy of this sort of like part of his universe so book six or whatever um and i think there's one more in this trilogy which is set sort of at a later date from the first trilogy in this part um but it's a it's in the mistborn series and so uh it's related to those books can't say a lot because it's the sixth book
Starting point is 00:34:59 so uh it will just spoil literally everything so i can't talk about it. But if you have not heard me say how amazing Brandon Sanderson is, Brandon Sanderson is amazing and go read his books. Cool. The first Mistborn is good to start with. And yeah, I don't know. If you want recommendations, not on social media, but Jason can tell me people are asking. But also, I mean, I think there's plenty of guides
Starting point is 00:35:24 just like where to start brandon sanderson i'm also reading the the his stormlight archives is another series he's writing he's a very you say like prolific is that the right word yeah i guess prolific writer he writes a lot like he comes out with a lot of books um and like very big books and i have no idea how other writers, which I won't name, seem to struggle like getting their series done or coming out with their next book. This guy just burns through them. I don't, I think maybe,
Starting point is 00:35:53 maybe it's just like a, what do you call it? It's like a machine learned writer. Like he just, it's just like a Markov process. And he just like, it's just randomly generating the sentences for him, but he's done, he's like the world's best trainer of a markov process and he just like it's just randomly generating the sentences for him but he's done he's like the world's best trainer of a of a markov process and he's just like yeah yeah i don't care if it is i don't even care i wonder if uh what's actually happening is is he's
Starting point is 00:36:16 he's got a team of people who really help him and and he is at the you know he's orchestrating it but other people are maybe filling in some of the thematic points or something. It could be. I mean, I don't think so. I was trying to think is I think we were talking about how, oh, I thought I knew how to measure how far away stars were. It turns out I didn't. I think if I if you actually sit down and calculate the amount of time it takes to write even a thousand page book, like just write the words. If you worked on it each day for a few hours right it's not that long um i don't think uh oh i thought you were gonna say
Starting point is 00:36:50 it's very long no i think it's right a thousand page book um how many words are on a page like roughly what okay we can do this on the air i i should have come prepared so we'll say to write 200 words i think it's gonna take you i i feel like it would take a thousand say to write 200 words, I think it's going to take you. I feel like it would take a thousand hours to write a thousand page book. So it says it's about 250 to 300 pages per word or per page. Two hundred and fifty words per page. Yeah. So, yeah, I would say about about a thousand hours just to write it. Assuming like let's say you were just copying um you think from another book right
Starting point is 00:37:26 like what's your words per minute when you type oh really bad i told you i'm a terrible typist so let's say your words per minute is is uh 50 then that would be full five minutes yeah that's not very yeah okay copying would definitely be faster than that okay well um yeah whatever he writes really fast i don't know how he does it. Yeah, I mean, either way, it sounds remarkable that he can get that much done. So, yeah, so about five minutes per page, about 5,000 minutes. Is that right? Yeah, 5,000 minutes.
Starting point is 00:37:56 Yeah, so you could knock it out in a few weeks if you're just copying. So my guess is it probably takes him like three-ish months, let's say, or whatever. You know, four-ish months to write it. If like write a good solid chunk every day and you know where you're going and then he can do them in parallel so if he has people like you point out not help him write but help them do the editing like he writes the rough cut and has a lot of good people to help him proofread and edit it then you could sort of do two or three books per year i just think a lot of authors you know there's like they do book tours. It's like a whole process getting in a groove.
Starting point is 00:38:27 You see this with musicians. Like I always think about this. Musicians come out with albums like once every couple years, if that. But like how long does it really take to make an album? Like, I mean, I don't know. I mean, it's basically two or three weeks to make the album. But then, you know know you're on tour playing the same song in every city for two years but you're i mean you're on tour playing the same
Starting point is 00:38:51 but you're only doing that a couple hours a day right or what's that i said uh you're only playing a couple hours a day for your concerts though yeah right yeah the concerts you're just you're just reciting you're not actually making music yeah basically i just don't understand like creative work i guess yeah it's mind-boggling that somebody can produce that much content so i mean meanwhile i i write a few lines of code a day and that's it maybe yeah when i hear about these indie game developers who do everything themselves like they do all the art they write all the the the the dialogue they do everything themselves yeah it boggles my mind but i mean they also take you know like like uh
Starting point is 00:39:32 they also take a long time to to make the the game that's true but not always you ever what was what's the name of that jam the co-jam they do it like in a day oh yeah ludum dare and some of those games are pretty cool i mean they're not like true triple a titles but it's true they have a good mechanic and then they can always kind of write the game around that all right if you want to read about uh brendan sorenson did i say that brandon sanderson brandon sanderson or stephen pinker you can do it on audible i actually I actually listen to Enlightenment Now on Audible and I listen to a couple of other books. I wouldn't really put them as a book of the show.
Starting point is 00:40:12 I was running a bit behind in the sense that I was accumulating some credits on Audible. And so I got a couple of lighthearted books. And so actually I'll make a book of the show next time. But I got a couple of comedy books. I got a couple of lighthearted books. And so actually, I'll make a book of the show next time. But I got a couple of comedy books. I got a couple of serious books. And I've been really doubling down on the Audible. It's been a lot of fun.
Starting point is 00:40:32 Nice. Yeah. If you don't want to support us on Audible, if you already have an Audible account, or you just want to find a different way to support the show, we are on Patreon. If you donate, I think it's as little as a dollar i don't think they'll let you donate fractions of a dollar but no matter what you donate you get all the benefits so you get the rss feed which is much faster than the default rss feed like the download rate is much higher um and uh you get to be in the raffle, which is coming up. So this Christmas, last Christmas, we gave out laser printed programming throwdown logos and some T-shirts.
Starting point is 00:41:13 This Christmas, we'll give out some more T-shirts and we'll have to figure out what we're going to do for all the Patreon folks. We'll try and do something a little different this year. But yeah, you'll get involved in that. You'll beaffled uh in the raffle for a t-shirt um and you'll definitely we'll try and get something to everybody um so yeah check us out on patreon time for and with that tools of the show tools of the show my tool of the show is quip so quip is pretty cool if you've ever used a google doc um Doc and you've done it in a collaborative way where you and someone else are both writing in the same doc, then you've basically used Quip. So it's very similar. The big thing about Quip is it's better for kind of, let's say,
Starting point is 00:42:01 group projects. So it has folders, although I guess now Google Docs is a lot of the same features but you know quip is very sort of compartmentalized so you can have you know a whole quip kind of group for let's say you're working on a book or something like that with it with the group of people you can all be in the the same sort of quip server and it kind of keeps things organized like that you can you can share things you can collaborate um we use it at work it's um it's uh it's actually really nice and also if you're doing anything sort of um like private you can actually host quip like i think it costs money but you can host quip yourself like you can you can buy a license and all of that um if you don't
Starting point is 00:42:46 use google docs like your business or something like that um but yeah we've been you know i use it almost every day and it works really well what is uh your tool of the show oh my tool of the show is a game surprise don't do useful it's stardew valley which has been out for a while and i think we may have even talked about it i don't know that it's ever been the tool which has been out for a while and i think we may have even talked about it i don't know that it's ever been the tool of the show but we've may have talked about it before but it recently came out on i believe both ios and android i always mean to look this up and i forgot uh so yes it is oh really no way uh-huh yeah so ios is out now android is coming out it says cool so um i've been playing this android release date is i'm gonna scan this
Starting point is 00:43:28 while we talk oh pop over die so yeah basically stardew valley is actually one of these games that was created by just one person um they did all the dialogue they did all the art everything um but it took that person literally like, I think, seven years to make that game. Oh, wow. Unbelievable level of effort. I didn't realize that. Yeah. So I can't tell if it's out or not on Android. Someone with an Android phone will have to check. But it is on the app store I've been playing on my iPad. I don't know how it would play on an iPhone, but on an iPad, it's pretty good. It's one of those things where I always feel I'm just going to play it for a few more. Oh, there goes an hour.
Starting point is 00:44:05 Yeah, yeah. Well, the thing about Stardew Valley is basically just a recap is you're kind of like a farmer, but some of the sort of ingredients, more advanced things, you have to go into dangerous places. So you're like a farmer and a soldier at the same time. And the game can only save at night so basically you do a bunch of things and then and then during the day you get so tired from doing these things that you have to go to sleep or or maybe you don't get that tired by nighttime you're forced to go to sleep but then it's like the moment the game saves is the moment when you have something to do it's like oh now i have all this energy and the game just saved um and it's like when you don't have any energy and you're really
Starting point is 00:44:51 ready to like call it a night that's when like you you can't really save you have to wait until the night's over so anyways i'm kind of messing this up but basically the way they do this save really kind of keeps you playing. That's a great hook. Yeah, I mean, I think said another way, when you wake up first thing in the morning, it's a new day. But that means you need to do all the day's chores. Like you have to make sure all your plants are watered. You need to go take care of stuff.
Starting point is 00:45:16 So when you have the most energy, you have the most things you need to do. And then by the end of the day, you run out of energy, but you can't get new one without ending the day and having to go spend your energy again. So you can try to cook yourself meals or do other things to restore your energy. But yeah, as Jason's pointing out, mostly you have a set number of things you need to do and then a bunch of the optional things. And turns out it's kind of like real life. You have more things that you need or want to do during the day than you have energy to do or time to get done.
Starting point is 00:45:48 Yeah, I mean, put it another way. I'll take a second. Oh, here we go. We're going to just go around and around. The most exciting part of the game happens right after you save. That's maybe a better way of saying what I was trying to say earlier. So it's like as soon as you save, as soon as the game saves, you have all these things you need to do and they're all really fulfilling.
Starting point is 00:46:06 It's like, oh, I have a plant that's ready for a harvest and I have a new set of grapes or something like that. It's like the coolest stuff in the game is always right after you save. And so once you've done that cool stuff, then you're kind of stuck until you don't want to waste the rest of the day. So you're stuck until it saves. And then right when it saves, there's something else cool to do yeah so i i mean i enjoy there's the new trend which this isn't this game has been out for a while but it's just coming to mobile uh or to ios and android and i don't know how all those are mobile anymore anyways but um is that it's open world without being uh no too much to do.
Starting point is 00:46:45 So there's always something simple you can do. There's enough story where it's trying to push you like, hey, go check this out or go check that out. The trend in open world games seems to be a lot like, do anything you want. And then that just makes me not want to do anything at all. Yeah, that totally makes sense. So it's just directed enough.
Starting point is 00:47:04 Cool, all right so on to the topic the topic is teaching kids to code and um this is there's a lot going on here actually we should start we should preface this by saying you know why we could why we're an authority on this why would you even listen to us talk about this? So don't. That's pretty nihilistic. Thank you. Yeah, so basically, so we have, I think, relatively different background,
Starting point is 00:47:36 maybe not that different. So your dad was also a coder, right? In my case, my dad was an engineer. I wasn't really a coder, but my aunt was a coder. Yes. Right. In my case, my dad was an engineer. I wasn't really a coder. But my aunt was a software engineer. So we definitely both kind of had it in the family in a sense. And we can talk about, I guess, how our family got us into coding or at least how our family was part of that. And then now we also have kids. Your kids are probably too young to really do a lot of coding. I mean, mine definitely are. But do you do have kids uh your kids are probably too young to really do a lot of coding i mean mine
Starting point is 00:48:05 definitely are but do you do do your kids do any coding no so they don't do coding yet my my older daughter has wanted to she calls it like have computer lessons but it turns out the thing that you at least i never think about is how much it requires reading uh so yeah so if your kids can't actually like read at a significant level it's pretty hard to get them to sort of do some fundamental things on the computer so like anytime there's an error message pop up they don't know what it says yeah exactly yeah so our kids are still too young but um we could talk about i guess that's actually when it's most interesting right because i mean if if if someone is like 18 or something then it's it's or that's a bad example someone's like out of 14 then maybe it's the same instructions as if they were 18 right but i mean i do say that i think my kids have begun to engage on things where
Starting point is 00:48:59 for me like the teaching them to code isn't so much about like in a programming language, but I guess teaching them things which are, I guess I take for granted, but are not always immediately obvious to people like describing a sequence of events unambiguously to be done. And so, yeah, doing exercises where then where I'm like, we're going to play a game and then trying to have them like, let's say what you want done, but then, oh wait, what you said was ambiguous and therefore it can be executed in lots of ways or playing, you know, playing board games or what if experiments with them and having them try to think like why something happened. And it's like, I know you could just try this or do this in this video game we're playing, but why not? What do you think will happen? Like, let's not just go mash the button until the door opens. Like what thing do you think will happen like let's not just go mash the button until the door
Starting point is 00:49:45 opens like what thing do you think we could do that would open the door in this game and trying to have them think about like sort of cause and effect um when even we're doing other tasks because i think that's something that a lot of gets missed which is a lot of stuff gets missed which is people just sort of bang their way through games or playing stuff until it works but trying to anticipate like if i do this action that thing's gonna happen and i guess it's almost about teaching a kid how to debug before teaching them to program um but i spent a lot of time doing that with my kids yeah i mean i i uh i play um play a lot of board games with my with my son too and i think uh you know my parents also played a lot of board games with my son too. And I think my parents also played a lot of board games with me. We used to play Monopoly and stuff like that.
Starting point is 00:50:27 And the interesting thing about board games is there are some things in board games you can control and there are some things you can't. And I think that as an adult, it's kind of obvious. But as a kid, I think that that's a really kind of important thing to learn. Like, like if you, you know, if your parents like always get bad roles on Monopoly and they'd end up with no properties and they lose, uh, like, you know, a lot of kids think their parents are kind of superheroes, right? So it's like where you're, where you see your parents fail, you kind of see like, oh, okay. That was kind of randomness. You know, my dad got go to jail three times in a row or something like that. And he's, you know, frustrated about it or whatever. And then he
Starting point is 00:51:10 loses. It's like, okay, that was something you couldn't control. But you know, not putting houses anywhere, you know, that caused me to lose and I could have just put houses, you know what I mean? Like, as you said, the cause and effect and also more like the framing, like understanding where you have sort of control and where things are happening outside of your control and being able to disambiguate those two, like pulling the signal from the noise. Yeah, that makes sense. Yeah, I think, you know, actually, we interviewed Mark Engleberg a while back and he um people should definitely check that the interview out it was fascinating but he actually um you know made several games and puzzles and things like that and so i think that's a great way to get started is um is by checking out uh you know board games like you know when i was a kid i didn't really
Starting point is 00:52:03 know of any i'm sure they existed but i didn't really know of any sort of, board games. Like, you know, when I was a kid, I didn't really know of any, I'm sure they existed, but I didn't really know of any sort of educational board games. We mostly just played, you know, Monopoly. We played Sorry. We played just, you know, I guess just adult board games. Actually, I do remember playing Chutes and Ladders and things like that too. But now, I mean, there's games for kids and to some extent games for adults that are that are way better like they're they're better balanced they like kind of teach you more um and so think fun you know is is uh has put out some really fantastic games and they're actually coming out with i think a couple new games um i saw on their website they're coming out with potato pirates which is a game for like seven and up and they're coming out with Potato Pirates which is a game for like
Starting point is 00:52:45 7 and up and they're coming out with some game called Hacker for 10 and up and yeah I haven't had a chance to really play those yet or I don't think they're out yet but you know there's educational games I think are really nice so the games that Mark built
Starting point is 00:53:01 and like this Robot Turtles and stuff what it taught me is like when playing with my kids the thing that's interesting is having them learn which at first i didn't get but when you say go left they think about like i'm viewing the board the the thing is going to go to my left and it's like no it's executing from some other point of view so like i'm moving this robot forward so in robot i've been to lots of things roughly you're describing some sequence of actions you wanted to take like go straight rotate left go straight and this like when you're in an area and teachers like teaching the kids the the context in which something runs which to me at first was like oh i don't they're having struggles with this and this doesn't seem related to programming.
Starting point is 00:53:54 But I've come around to actually thinking that programming is about putting yourself in the context of the code running, which is the things around you when you run matter a lot. So if I add one to a number when the number is 10, it becomes 11, not going from zero to one or whatever. You know, like understanding, keeping in mind what the current state is and so like looking at visually at the board and saying hey the turtle is currently facing to the left if i have it turn left it's not going to go to my left it's going to go down then to me it's like oh this is this is obvious right like oh this is easy but but to a kid like wrapping yourself up and i need to put myself in his shoes or into the context of where the program is at, where it's running. And then having kid be able to walk back to where it went wrong is actually pretty useful. And as Jason pointed out, I mean, as far as like becoming an expert
Starting point is 00:54:33 on it, I mean, TBD, we'll see, like, I don't know if it'll help my kids because I never played these kind of games growing up, but it is interesting to play them with with the kids so what did you do because you you if you didn't if you weren't playing board games and then uh yeah so slightly older than than that but i think once i was in later elementary and early middle school we had programming books and compilers on my computer programming books around the house and compilers on the computer um and so i taught myself sort of how to use q basic by reading the book and i like if i had got stuck or had a problem i'd get my you know dad to help me or whatever which which he would to some extent although i guess now his mindset was probably like i did this all day i
Starting point is 00:55:17 don't want to come home and do this with my kid you know like i can't blame him so we didn't do it for like hours upon end but i would try to make rudimentary like drawing programs uh in q basic like oh i'm gonna make pac-man and i would try to like make the little circle mouth open and close by sort of trying to figure out like oh i found some code for drawing a circle cool now i can like translate the circle like how do i open the circle to like have the mouth like chomp and i didn't know about sprites or like like so i would like try to find little math equations that would draw it on the board in various ways and so i would start with that kind of stuff um and then also eventually
Starting point is 00:55:57 like when i was in i guess high school i learned c that would have been like 10th and 11th grade but when i was in middle school mostly like goofing around like on q basic and trying stuff in that getting it to you know print funny messages out make little goofy things and in middle school actually on my calculator like i would always program i guess it was some form of basic on the calculator oh yeah ti basic yeah okay yeah yeah okay so i like ti basic and i would do um like wrote like a little rpg for myself where i would like you know randomly choose a number and attack monsters and if you success you would get gold and if you like got attacked no way i did exactly the same thing
Starting point is 00:56:36 i think the like text-based adventure is like just interesting enough without running into like becoming too complicated too fast where you have spaghetti code and you can't manage the sort of game state and so i think it makes a lot of sense and so yeah i would program then the if you beat the final i think there was like 10 bad guys it would draw little animated fireworks on the screen by drawing random lane set line segments and connecting them nice that's awesome yeah i mean i i have a somewhat similar story like um you know as i said my my parents weren't like software engineers or anything like that so they couldn't really there wasn't really any resources like that but i did get a uh
Starting point is 00:57:16 i got an atari 800 and it came with this program called delta drawing that was basically turtle graphics so you have a little arrow and you could you know draw forward you could turn right turn left and it kind of taught me about like egocentric um you know movement and all of that and uh the delta drawing book had a bunch of recipes so i would just punch in like literally what it said and hit go and then i'd get a car or something like that it's amazing drawing that like i could never make by myself but if i just follow the recipe you know it would make a car and then also like when you messed up in the recipe you know you'd get like a car but the wheel would be just totally in the wrong place and so you could kind of look and see
Starting point is 00:58:01 oh this is what i did wrong and this is how it affected the car you know um so yeah i kind of uh got really into delta drawing and uh doing a lot of that um yeah my aunt was was a software engineer and she got me a computer and uh kind of walked me through basic and things like that i ended up i don't think i did too much with basic um oh i made a i made a game that my cousins and i played where um it was called arm wrestling and basically you had to hit the space bar so many times per second or maybe it was per 10 seconds or something and every time you passed that threshold so every 10 seconds you pass the threshold, you started winning. And if you won three in a row, then you won the arm wrestling. And we broke the space bar on the keyboard.
Starting point is 00:58:53 That's pretty cool. Yeah, and this was back like, you know, at the Atari where the keyboard was like, basically you couldn't detach it or anything. So we basically broke the atari with that game um and uh uh you know i ended up not being that big a deal but it was kind of goofy but yeah i actually didn't get into coding until much much later um so yeah around like mid high school that's when uh i took a course i took the computer science course and they taught us um c but uh yeah there was a huge gap where I wasn't really doing any coding, but I was always really into board games. And just, yeah, I just played a ton of board games and did a lot of reading, you know,
Starting point is 00:59:37 like not reading, but like puzzle books and things like that. Yeah, I mean, I feel like at least between us, it's pretty similar. And I actually think that's a common thing, which is there's a certain maturity of certain amount of breadth of skills you need to have before you can sit down and write. We've talked about this on the program, but like write computers. So like write computer programs. So if you say, I want to build a 3D graphics game, well, you're going to have to know like enough trigonometry and geometry to be able to do like 3d computation that's pretty high bar actually yeah and so like that's really tough
Starting point is 01:00:11 but having a kid be introduced to like late elementary middle school so i guess for people not in the states i'd be like you know 10 years old i think you can start to introduce kids into like what loops are and printing your name but i don't think they're going to engage at the level of building large amounts of software because i think it just takes focus now of course it could be an exception where like you probably don't need any help and you become like a contributor to linux kernel at like 10 sure yeah there's always like savants yeah but i mean i think for the most part, like teaching a kid to code, I think is about keeping them in that mindset of like, like Jason was pointing out,
Starting point is 01:00:50 breaking it, but trying to understand why it broke. If you just succeed by randomly trying, I don't find that that doesn't seem like a good way to kind of progress. So now it's not that there aren't times when it's called for just like trying random things until it works like i know there's an off by one error here somewhere um but for the most part thinking through the code and anticipating what it's going to do seems to benefit me more and i think as jason was pointing out those are skills you learn by playing board games by you know doing uh you know scientific pursuits and activities and even the scientific method to some extent, right? Like predicting what's going to happen, trying to say, how would I test
Starting point is 01:01:29 whether this is true or not? I think having those kinds of approaches are actually enormously beneficial. And so when you say, you know, kind of teaching kids to program or teaching kids to code, I actually think it's about not so much what language do you teach them, but about these kind of underlying concepts. Getting into intricacies of a type system is probably not super engaging to a nine-year-old. Yeah, right. Yeah, I mean, I think another sort of like line to walk, one thing where it gets kind of difficult is you want to to sort of help but then you can't help too much yes so it's like like yeah like sometimes you know uh we had this this uh this game where you just uh build train tracks and then you could put a train down the train goes on the tracks and uh it's it's
Starting point is 01:02:20 it's a simple idea it's just like you're dragging tracks and you're laying them down on these tiles. But the thing is the tracks have to sort of line up, right? So, I mean, if you have, like, if you wanted to, if you had a train that was going, or a track that was going, let's say, west to east, you couldn't just put a track that's going south to north. Like, you have to have one of the curvy tracks. Like, it has to be contiguous, right?
Starting point is 01:02:43 And we got this game, game like about a year or two ago and so even my son was maybe like three and he just found it really frustrating and you know if i just left it like to do it he just would have given up but i stayed with him and like you know i made the tracks and things like that and so he couldn't really make any mistakes um because i felt like it was just it was just too far advanced um but then now he just does it on his own totally so it's like it's really hard to sort of strike that balance between like you want them to make mistakes but then you want you don't want them to like lose interest either or get really frustrated or whatever that's i think with
Starting point is 01:03:22 kids especially it's like a very difficult line to walk. But yeah, I mean, well, that's, I think that's true probably for anything, but especially something like coding. If you want to get them to something kind of like that's pretty advanced, it's really hard to have sort of those stepping stones. So if you have a kid who you think is ready
Starting point is 01:03:41 to actually learn a programming language and sit at a computer and type, what would you do what language would you use would you do a web something would you do python non-web like interactive like both of you and i described something that was i mean we're maybe a little predating the web um but this sort of interactive console graphics getting used to how to deal with that not console graphics but just like a text input and back and forth um i mean do you think that's the way to go no i mean so i actually now that i remember you know i totally forgotten about this until just now but there was something i think it was called like hyper text or something like that but basically it was meant for presentations think of it as like basically powerpoint but
Starting point is 01:04:26 there was sort of logic so like in powerpoint you know you can have animations you press the button and you know you go to the next slide but it actually just slides in some text and things like that so this was like you know it was actually meant for giving really interesting kind of kiosk type presentations, like interactive presentations. And so it had some very basic branching and things like that. But the nice thing about it was it was all graphical. I mean, think of like just PowerPoint. You're not writing any code or anything.
Starting point is 01:04:57 And so I think something like that. So we actually have something called a Kodi, K-O-D-I, and it has this graphical programming language where you just kind of drag and drop little modules and stitch them together. I feel like that's probably the best way to start. I probably wouldn't start by typing on the keyboard, especially nowadays with iPads and all of that. Sure. So I've tried these, like, there's some coding games, and I've had my kids play those on the iPad where you, you know, tell a person, right, right, jump, right. You know, and those trick pretty good. And I know Apple made these Swift playgrounds,
Starting point is 01:05:30 which I tried. I thought they were kind of interesting. Um, but there's still a little premature kids, but I think that's a, those seem really well done. And I think actually like as goofy as it sounds, having something where there's graphical interaction and also like good documentation. So it's well thought through what's supposed to happen because a lot of times when I would do examples or coding questions, there's enough ambiguity where there's frustration
Starting point is 01:05:55 about what you're supposed to do to progress forward. Yep, yeah. I played one, my son and I played one on the iPad called Codable. And basically you're this little fuzzball. And it's basically like turtle graphics. So you say, you know, go right, go up, go right, go up. You have to kind of plan it all in advance.
Starting point is 01:06:17 And then when you hit go, it executes that. And then you can kind of see like, oh, shoot, you know, I wasn't supposed to go up twice or whatever. But yeah, I think those games are really where it's at. I would probably stay away from, asrick said like you know as soon as you get into real coding you have to do a lot of reading and um even if you're you know even once you know our kids could read you know at adult level and all that it's still pretty taxing you know until you become a teenager it's probably pretty exhausting to read because you have to really think hard about it. It's not like as unconscious as it is for an adult. And so a lot of these graphical things are really the way to go.
Starting point is 01:06:53 But I guess like the high level here is just to like get kids into logic. So there's these board games um you know that teach like strategy and all of that um there's these apps there's visual programming languages and they all kind of teach the basics around sort of logic around understanding sort of cause and effect you know like did you lose three times in a row just randomness like if you're playing chutes and ladders and you lose, you can't really say, oh, I wish I could have done things differently. But even just knowing and understanding that the game is just complete random,
Starting point is 01:07:34 that by in and of itself is a good lesson. Like, just understanding that you're following this process, but you have no control. It's really just about understanding the game versus, you know, you're following this process, but you have no control. It's really just about understanding the game versus, you know, I don't know, Monopoly or something where you have a lot of controls, a lot of things you can do and the things you do matter. I think that getting kids to understand that is really important. That makes sense. Yeah, I guess this wasn't so much a like strict curriculum on how to teach kids to code, but I'm not sure that one exists. Yeah, I mean, honestly, you know, and where we live, you know, we've talked about this,
Starting point is 01:08:08 Patrick and I live in the Valley and, um, you know, the, the, the, I don't know about you, but, but we have so many of these coding camps in my neighborhood. Um, there's literally eight coding camps on this one street. So if I go, you know, a couple of blocks from my house, uh, it puts me on this, this pretty main road and there's eight coding camps. And, uh, I just don't, yeah, I think that's not the way to go. I mean, I think it's, it's one of these things that, uh, it's fair. It's a deceptive goal. Like if you start marching towards the goal, I don't think you actually get there. I think actually you could sort of stint it, stint the growth. I feel like the coding really comes like after someone has already
Starting point is 01:08:52 understood a lot more fundamental stuff. And of course, there's always savants who made their first app when they're 12 years old and things like that. But I think in general, like, you know, jumping straight into Python or something like that might actually distract from the overall goal, which is really to build a foundation in like logic and causality. I think I agree.
Starting point is 01:09:15 Yeah, so if anyone has any cool resources, so just to recap real quick, you know, I think board games are really solid. I think there's a bunch of really cool apps. There's all sorts of visual programming languages. Just to list a few, I mean, there's Scratch, there's Logo. There's an app called Scratch Junior, which is like a limited version of Scratch. But, you know, you can find it.
Starting point is 01:09:39 If you look up visual programming languages for kids, you'll find a ton of these in every possible conceivable OS. And then, you know, you want to balance between being frustrated and, you know, just giving away all the answers, right? So as a parent, that's a challenge. As a guardian, that's a challenge. But yeah, I think that's basically the high level of it. And don't just, you know, hand a five-year-old a c-book because that's not gonna work well maybe do it one time to see if you have a savant and then yeah then don't yeah i mean if they ask you if they say hey you know this is pretty cool but i really want to learn assembly well then you know go for it yeah oh the other thing actually just just one other thing i thought
Starting point is 01:10:24 of is you know i've been doing and i think you also fit this category, we do a lot of robotics stuff. And in general, if you do anything related to coding or anything related to, I don't know, building anything, yeah, just find a way to get your kids involved. robotics things and you know my son's doesn't have the attention span for it but what i did is uh i got a buddy of mine to do it too and so when there's two of us and two kids then it's like you know the kids can kind of chase each other a bit or you know when they do pay attention we're there um and or we could take turns like i can keep the two kids from you know stepping on nails while you know my friend uh does some work on the robot and I can switch. So that also worked out pretty well. But, yeah, did your dad ever get you involved in any of his side projects or anything like that? So my dad never really had side projects like that.
Starting point is 01:11:18 But I mean, when we would do a science fair each year or whatever, I don't know if that's at all the thing. But we would have to do a science project and he would always get involved with us and doing those experiments and helping us and yeah i guess we did do stuff sometimes yeah yeah my dad you know did a lot of he's a mechanical you know engineer so he did a lot of mechanical stuff and uh he'd always have me like help him like set up pulleys and stuff like that in the house wait set up pulleys in the house that sounds yeah i mean in the garage in the But yeah, he literally had this whole pulley system. And yeah, it's pretty wild. I mean, he would be able to pull like boats.
Starting point is 01:11:52 He had boats like just attached to the roof of the ceiling of the garage. So like you would just park the car under a huge boat. And there was this like crazy pulley system system which gives you all this mechanical advantage but you have to turn a winch like a hundred times to get this boat to go up you know four feet so he just had all these crazy things that sounds pretty cool actually do you have pictures it seems like you guys have pictures yeah i gotta send you uh a picture of my dad's garage i'll ask him to take a picture we could put it on the blog yeah give me famous internet famous internet points that's right cool catch you later the intro music is axo by biner pilot programming throwdown is distributed under a creative commons
Starting point is 01:12:39 attribution share alike 2.0 license you're're free to share, copy, distribute, transmit the work, to remix, adapt the work, but you must provide attribution to Patrick and I and sharealike in kind.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.