« All Episodes

Part Two: Interview with Kalid Azad @betterexplained

Published 3/16/2016

In today's episode, I interview Kalid Azad, writer and teacher, and creator of BetterExplained.com.

Mentioned or relevant to today's episode

Today's episode is sponsored by Digital Ocean! Use the code DeveloperTea at checkout to get one month of a 1GB droplet, completely free!

And lastly...

Please take a moment and subscribe and review the show! Click here to review Developer Tea in iTunes.

Transcript (Generated by OpenAI Whisper)
Hey everyone and welcome to Developer Tea. My name is Jonathan Cutrell and in today's episode I continue my interview with Kalid Azad. Now if you missed out on the first part of the interview make sure you go to spec.ethym to listen to that first part and to make sure you don't miss out on future episodes of Developer Tea. Go ahead and subscribe in whatever podcasting app you use. Thank you to today's sponsor Digital Ocean. Digital Ocean is the fastest growing and cloud hosting provider and for good reason. We will talk more about what Digital Ocean provides to you as Developer Tea listeners on top of what they normally provide which is an incredible service. Now I asked you guys before to tweet at Rachel Smith when she was on the show and so many of you did that it was such a cool thing to see so many people listening and appreciating Rachel for coming on the show. I'd like to ask you to do the same thing with Kalid. This Twitter handle is at Better Explained that's BETTR EXP LA INED. Tweet at Kalid and let him know when you have an epiphany during this episode. I had quite a few when I was listening to the show and I'm actually looking forward to listening to it again when it airs. So go ahead and tweet at Kalid because he would definitely appreciate hearing from you. Now let's go ahead and jump into the second part of my interview with Kalid Hazad. So I want to talk about Better Explained more explicitly now because we've talked about learning and we jumped straight in and great discussion. I want to see how you apply this because Better Explained is a really effective platform so far. You have over 400,000 monthly readers. That's a huge number of people that are interested in what we've already described as kind of this otherwise kind of cold thing. So I want to talk to you about a couple of different things. First, we already alluded to it previously which is the, I guess it's called the ADEPT Model, the analogy, diagram example, plain language, technical definition. You have this on Better Explained and that to me was such an enlightening concept. I want to talk about that. I also want to talk a little bit kind of about your background but how you mine out these analogies, how you find them. If I'm somebody who's coming to the table and I don't have a Kalid to tell me what the analogy is, how do I find it in some material? What do you have a process for that and that kind of thing? Great. Yeah. I know. I think it's a time the site's basically it's grown and I think one of the lucky things for me is because math is fairly static in a good way in the sense that actually in the developer ecosystem, so I'm a web developer actually by day as well and the issue is, there's new libraries, new frameworks so your knowledge, the general principles of programming stay but then the specific so library, you know, you have to kind of keep up to date. Maybe with math, I have articles, some of the most popular ones are like eight years old but it's okay because the math hasn't changed in eight years. Sure. Like a number, a number and so on or like the theorem, so the theorem. So if you can write something that maybe has a good analogy or a good diagram for that topic, then it'll stay relevant. So I've been fortunate that math was the thing that I wrote about versus I do have some programming things but those ones, like I have some old Rails tutorials but of course those are five years out of date now. So the math stuff seems to be the ones that are more sticky but yeah in terms of learning, I think the big, I guess the largest skill is really just recognizing when something clicks or doesn't and it's kind of comes back to that taste element just knowing that something tastes good or not. And so for me, I realize okay well something will click with me if I can see the big picture, you know at a kind of a blurry level, 50,000 feet and then I sort of zoom in gradually and sharpen in the details. And actually this is, I call it sort of the baseline versus progressive model and it's a nice little programming metaphor as well. I don't know if you've seen or you probably have back in the old dial updates, sometimes you'd be like downloading an image and it would kind of chunk in slowly and sort of two ways that it could be encoded. Like one is where you just go top to bottom and so it's kind of scanning and it could kind of fills in in perfect detail from top to bottom and the other is sort of sending these updates. So it's kind of a blurry version of the full size and then it gets sharper and sharper and sharper and eventually it sort of snaps in and you sort of see that on YouTube, you know if the resolution is being changed. And so I realized for myself, I learned best when I had that kind of blurry version that sharpens up versus kind of a perfectly accurate version but you're only getting the first 10% the next 20% and so on. So I need to see the big picture and sort of sharpen it up and so the adept method is basically that where you're starting with the blurry version and then you gradually introduce more detail until you end up on the most technical version. So an analogy is like a very blurry, you know it's an accurate but it's okay. It's a lossy, it's kind of a lossy version of the big picture and then you have a diagram which is a little bit more accurate even example. Then you have plain English which is kind of a kind of a friendly description and then you have the technical description which is kind of the most accurate. And so I need to be kind of walked through those steps instead of starting with a technical definition. I feel like most people or most classes, they will be friendly quote unquote by very slowly walking through the technical definition. You know and that's friendly in the sense that you're at least understanding that it is complicated but you're still sort of taking somebody. It's kind of like saying, hey we'll go for a marathon. Like this is a marathon is like the end result of like all this training. So we'll walk slowly the 26 miles which is I guess slightly more pleasant than running through the 26 miles but it's still quite, you know it's still pretty brutal. It's grueling yeah. It's grueling and my thing is like hey let's just have a fun run. Let's have like a you know a 1k or 5k you know and then we'll build up our kind of endurance there versus like going slowly through something that's still very kind of technical. So that's sort of the general approach and then for me I basically when I find a new topic so imaginary numbers is one that I like just because it's really confusing. If I'm studying a topic like that I'll basically I'll go and Wikipedia not actually for the technical definition just for images. I'll say hey are there any diagrams here. I'll go on YouTube I'll look Google images and I'm purposely not trying to find super technical definitions. I'm trying to see like when people talk about this some hopefully they've been forced to make an image or two and so I'm trying to force myself to find those images and diagrams and maybe try to get some rough intuitions out of that and I sort of come up with my own analogy and then I'll start reading the formal description to see how people are describing it. Yeah I'm like purposely trying to shield myself from some of the complexity just to I'm you know it's almost squinting like squinting and looking at the page and have you heard that there's like a usability technique. The squint test. The squint test exactly. Yeah. Yeah. Yeah step back across the room and can you tell what the layout is or what's the most important thing on the page. You know it should be colored differently or should be you know called out and that's exactly it. It's like if there's a topic okay can I squint data and say what's the most important key concept here. So for me like imaginary numbers they're usually taught in a very confusing and unintuitive way the technical definition it's like the square root of a negative number which is mind blowing and people seem not to like the teacher will kind of say that and nobody will blink and all the students will blink and the teacher says oh it's just a definition you have to use it and I say no that's not good enough like that isn't clicking and so a better intuition is that in a imaginary number it's almost like a rotated number so it's like a regular number line it kind of goes east to west let's say so you can go east to west and the imaginary numbers go north and south and so it's like oh okay it's like a second dimension it's like yes exactly it's like oh okay but to get there and this is kind of the tricky thing that they don't mention like to go if you're going east and west and you want to go north and south you need to rotate you have to take a you know like a 90 degree turn and so when people say that like I squared is negative one basically what they're saying and see that that's such a technical definition I squared is negative one my my analogy is that okay if you're if you're going you know east and you take two 90 degree turns will not you're going west it's like oh okay yeah boom so I was going one direction I turn once I'm going north I turn again I'm going west oh wow okay so you can go backwards in two steps and that's essentially what a imaginary number does is like it says you can go from you can get to a negative number in two steps if you allow yourself to rotate it's like oh wow and it's like oh okay and that's a need analogy and then suddenly so then suddenly you're thinking wait so could I use the magic numbers like to model rotations like if I'm making a video game and I want things to be rotating isn't it nicer to use a magic number to represent that because it's already kind of it kind of knows about rotations yeah and so there's actually people use imaginary numbers and there's actually extensions because those are only two dimensions you want a few more and so they have these things called quaternions which they use in like unity like like a lot of graphic extensions will use these kind of super imaginary numbers that can track more dimensions and that's how they do the rotations it's like whoa that's amazing and the thing is that's like an analogy that you figured out just by playing with that exploration it wasn't like in the Wikipedia article down at the bottom it'll say oh yes and there's these extensions that can do these other things but they don't really call it out explicitly they kind of like that connection isn't really made and so I I try to I guess mine or sift I feel like a like kind of a gold prospector even hoping something sticks on the pad and I'm just looking at images looking at PowerPoints PDFs just at a high level trying to get images and you know and sometimes they make an analogy that don't work you know I'll make an analogy and it doesn't make sense and that's okay okay you know I'll go to the next one but I but once you find one that does work suddenly you know it's oh I love that feeling like like the aha moment it's so invigorating and so for me I know that really motivates me so once I find it then I get excited I start thinking about it more and then eventually make an article and write it down but yeah it's the the process is really trying to at a high level get the get the diagrams the analogies then slowly introduce the technical pieces yeah and I think our brains are already hungry for this I think we're you know we naturally want that high level overview before we jump in anyway I don't I don't think I know anybody who doesn't want to kind of get my dad says get the gist and before we watch a movie he wants to know what the gist of the movie is so he so he can decide if he wants to fall asleep during the movie or not so but no I think we want that overview to kind of learn about something from that what is the end game here like what what is this how does this fit in and I love the idea of finding these kind of modeled concepts and then realizing that you had this realization hey we can use them and imagine any numbers to model rotation and then exactly oh it's the best and actually that's one of my it makes me like beam with pleasure so I have this imaginary number article and it basically I just mentioned rotations and actually I don't mention the the 3d or 40 like the cotonians they actually have four dimensions but you can do rotations and higher dimensions and I don't actually say oh and this is what you're going to do with it a lot of people in the comments ask hey wait a minute can we have more dimensions and I'm like yes you can and like here's here's how they can be used and it's sort of like purposely letting the person you don't want to spoil the joke like if you're comedian you don't want to over explain the joke right you just want to hit at the punchline and the person gets it and they laugh it's not okay and here's what's going to happen it'll be a crazy scenario like you need to have that kind of a little bit of a fun game element and I feel like with teaching we sort of miss that sometimes too like we don't let the person make the connection we're sort of this is again I think of these aliens I try to when I can like look at things from like a kind of objective like perspective is like if an alien came to earth and so if an alien came to earth it would look around and see oh hey everybody's chewing their food like we waste you know an hour every day just chewing maybe I should if I'm an alien I should just like blend people's food and inject them with it and it's like actually you know part of the fun of eating is chewing like that's actually it's not work it's actually enjoyment and trying to concord optimize that you know because it's an efficiency right like we could eat our meals two minutes if you just injected it or you had like a liquid diet or something and it's kind of like it doesn't you know part of the fun is actually in a little bit of a struggle there and it's not even struggle it's just it's effort and I feel like with learning too like trying to smooth it everything over trying to make it a perfect path trying to explain every conclusion you know ahead of time you're sort of removing that wonder and that joy of discovery and you know like the creator or the inventor of the math they didn't know what what it was going to be they they were just I mean can you imagine me the first guy to figure out counting like I actually know you know I know how many sheep I have yay you know whatever it is like that was such an awesome idea so like don't you know like let people enjoy it a little bit and I feel you know you know they're sort of and again that's kind of the art you know entertainment and art they sort of have figured out how to get people to want to participate in something and I feel like science and education that's so true yeah there's a lot to learn so true you know I want to go back to your to your adept model by the way did did you come up with this model um yeah well uh it's a general approach I think I put the acronym I was I'm really not a fan of well I don't like um forced acronym so it actually started with like ADE and I was like oh analogy diagram example and then I realized oh but then I have the technical definition and then the plain English is sort of it bridge so like the one I guess I just I made up the acronym but I did try to like I really don't like it when they force you don't want to push it to I don't want to push it exactly yeah in programming too they have a lot of you know there's always in jokes and things like the recursive acronyms and so on but yeah this I basically people have been do I think even Confucius there's there's a quote about it's like tell me and I'll know and it's like show me and I'll see and like let me experience it and I'll and I'll understand so it's it's an ancient concept and I just put my version of it on there but you know it's an old well I want to return to it because uh you said something that was really interesting about you know introducing the fun run first and then you know maybe moving up to the 5k whereas you know the the traditional approach is to walk somebody through this marathon right um it's so interesting because basically what you're doing is you're flipping this on its head uh where the traditional approach is to start with that technical definition and then derive from the technical definition applications right so you have you know word problems that once you've learned in class all of these kind of formal ways to approach the word problem then you're presented with the word problem and you're saying you know somebody says okay here use these tools to solve that word problem I wonder how in how much of a difference it would make to that class if we just simply switch the order and we said okay here's the word problem here is the the application in its in its natural form before like this is something that you could imagine happening in a in a real world scenario right uh and then you say okay now you don't know how to solve this yet we're going to show you a pathway to figuring out how this word problem plays out right um and typically you know I mean it's a little bit more difficult to solve uh or to say that uh uh some of the more complicated aspects of math can be you know brought down into a word problem and then that word problem makes it all the way through as as the final piece the final proving piece but uh certainly this idea of coming up with a analogy or or even something that directly applies I wonder how that would change the way that people learn if they were to see the problem or the application first exactly and I think it's way more interesting it actually you know I keep looking for all these stories and metaphors there's some um in a similar way there's a story about a climbing instructor you know if you want to learn rock climbing most people you know you go to a class and you'll spend like an hour learning knots and how to tie things and ropes and I mean that's important but there's actually a guy who's um an instructor who's like okay you know just go on the wall and just just try to climb around a little bit like don't go too high just just climb and people will do that for about 10 15 minutes to get tired and then finally he says okay now you've tried that here let's talk about a few things like you got to use your legs like you know most people try to use your arms and your arms are weak your legs are strong okay you don't want to be hanging off the wall you want to be close to the wall because now you have this like lever action so basically people try it and they understand the problem instead of a head of time okay use your legs okay be close to the wall okay do that like basically you're kind of giving people details about a problem they don't even understand yet yeah like it's probably it's it's not vivid in their mind and I think that's exactly it like when you have a problem I love the idea of giving somebody I mean math you know it can be its own art form but often you know from the practical point of view there are applications but the neat thing is to have a problem that you can't do and then you learn a way to do it versus like being given this hammer like you know it gives somebody nails give them a board and they're trying to put it in it's like oh whoa whoa this hammer is really cool oh wow and they might even play around like wait wait let me get a rock okay let me hit the and then you say okay well imagine taking that rock it's really hard to hold right like a rock is really round so like maybe put it at the end of a stick because the stick is easier to hold and oh okay and that's basically what a hammer is it's like a rock at the end of a stick oh neat and it's it's much more like natural versus like here's this perfectly pristine tool that's been machined and everything and that's exactly it I think for myself I found it's so much more interesting and you sort of can engage people and also I mean people find different techniques like I mean this is kind of a general thing too as a teacher I see myself I don't even like the word teacher so much I'm more of like a guide I guess I'm like a guy you know I want to go up the mountain hey there's a nice view up there like let's go let's go explore but on the way maybe you'll find a better path like this is my path up there but maybe you'll find a different path or maybe you'll notice something along the way that I missed and so I think there's this kind of kind of not paternalistic but it's sort of like the teacher knows everything and the students don't know anything and it's time to you know fill up the student's mind with the teacher's knowledge versus kind of an exploration where it or more like a coach where it's like hey we're like doing this training session and actually as a teacher it would be nice if you're doing the exercises too and you're sort of learning things and you know a lot of people say they only learn something without the teacher and oftentimes that's because you know it's your second or third visit and it's really funny like most people wouldn't claim to understand let's say Shakespeare like you know let's say you read Romeo and Juliet one time when you're 14 it's like okay you know oh I know Shakespeare it's like no or I even know that play it's like no I you know I read it once when I was a kid if I read it again I'm sure I'd get a lot more out of it and so I feel it's a second third visit that you know if you're allowing yourself to kind of be open and you know empty your cup and you know fill your I don't know if you've used that do you know that koan about the like the the the master like the like the professor in the zen monk no I don't think so oh I think it actually fits with your with your podcast so basically perfect here we go exactly so there's like a kind of these old zen stories about a famous professor we knew all about different religions and things and he came to Japan and he was going to study like the zen I guess like the zen religion and so he's explaining to all the monks about you know all the history of the temple and all the things you knew anyone to go sit down with this elder monk and the monk offered him offered him some tea and he said oh sure so the the professor put out his cup in the monk filled up the tea and was feeling filling filling then they got full and the the the the monk kept pouring and the professor said no no you can't it's full it's full normal fit and essentially the monk said well just you know that's like your mind like your mind just like this teacup it's already filled with what you think you have you need to empty it in order to get some more in there and so it's sort of that like humility but humility makes it seem a little bit more like you have to be different than you are it's more just open exploration so again yeah being a teacher and just exploring and who knows like you'll find new things I mean I get a lot of teachers who they say oh well you know I never thought of it that way or that diagram I've never seen it and that's great because now to me that you know that teacher can take it and modify it I I have this analogy about sort of being like a grocery store so I'm a grocery store I have apples I have tomatoes I've you know always ingredients and you can eat them whole like an apple is delicious by itself or for your teacher you can take this apple and make a pie out of it and I I don't want to make pie but like hey you made a you know you made a lesson for your students based on what I think is a high quality ingredient so hopefully it tastes great and the kids like it and it's different from what I had to so yeah yeah it's it's great playful thing versus this kind of yeah very prescribed thing that we're used to yeah I love the so the university model is very much this way if you have especially if you have experience going for a post-grad degree which you know most people don't these days and there are many reasons not to and there are some reasons to experience that post-grad degree one of the things that I loved about my experience in university was that the the professors they studied with us right it was they did research with us they did research projects with the students and it's very different from what you're saying this idea of taking the knowledge out of my brain and transplanting it into your brain that wasn't the goal the goal was to say okay here are the methods that I use to research and now let's find new things together and that was an amazing experience because you know it didn't leave this mark of like well I've blazed the trail and now you can follow behind me it was more like we're we're blazing a new trail together exactly and actually a fun example of this basically once this happened to me I I threw out any notion that I knew anything and I basically you know I tried to empty my mind empty the cup so you know like if you think about the concept of a percentage it's something that we use every day you know percentages we probably see it you know 100 times a day pull numbers you know interest rates everything and so you know I I'm pretty sure or I would say thought that I knew pretty much everything there was about percentages right like we've been using it since like you know elementary school we know it pretty well but there's something I think at least for me that I missed the whole time is that you can actually swap the numbers in a percentage and you actually get the same result so for example if somebody asked me hey what's uh 16% of 25 that'd be like oh 16% of 20 oh hold on and if I didn't have you know it's like okay let me let me get the math okay you know divide by you know it's a little bit cumbersome right 16% 16% 25 not fun to figure out but if somebody said hey what's 25% of 16 I would just oh four yeah yeah sure it's easy right so wait wait one was hard and one was easy but it's actually the same problem because 16% of 25 is 16 divided by 100 times 25 and 25% of 16 is 25 divided by 100 times 16 so oh wow so like either way yeah isn't it crazy so it's like 8% of B is the same as B% of A and I've never heard that before isn't it crazy and I just it was basically I was literally doing that problem out and I was writing like 16 divided because I had to do that 16 divided by 100 times 25 I'm like wait a minute I can just put the divided by 100 on the other side wait that's and boom and so after that happened I was okay because and you know I would have bet somebody $100 that you know I think I know everything about percentages especially something that obvious like there's only two it's like actually I love it you know what where programmers there's a percentage function hey it turns out the order of the parameters doesn't matter fancy that fancy that you know so if you're doing any logic to order your parameters correctly you can just drop it all together you just drop it all together exactly like who cares and maybe or if you're calculating a tip I mean and this is kind of the I guess the joke there's a 50% chance that one way will be easier than the other you know so maybe like you're you're just looking at some numbers and you just want to make a quick mental estimation we'll just flip it around maybe maybe it's a little bit easier you know maybe one numbers and it's like oh okay you're just eyeballing it and it's like holy like and a percentage is like you know again most people don't like math that much but I think they agree that percentages are probably pretty useful pretty easy yeah pretty easy and you know it's kind of necessary to probably survive in modern society to some extent to to know what a percentage means and it turns out we didn't actually really know what a meant we didn't really look we missed we didn't follow it through we didn't follow the logic all the logic and it's like oh wow that's crazy and so after that I was thinking okay man like what else have I missed like I'm willing to I'm completely willing to oh actually this is a fun one too again for the for the program audience you know all those like off by one errors that you get in four loops like you have like a ray indices and like you're like this is the length of the array is like minus one and like there's all these little gargies that are that deal with counting sure because of zero index right zero index exactly and so as a programmer we sort of kind of we're kind of aware of this a little bit like we sort of know you have to sometimes watch out when you're counting in loops and with like you know memory addresses things we're kind of like we kind of know there's something going on and we're suspicious of them like so we always check our bounds and things like that but there's sort of this general concept it's called the fence post problem and essentially if you have a fence with let's say 10 pieces like 10 lengths of fence there's actually 11 posts hmm because you you have that kind of cap the ends so you have the first piece and the length and then basically like and it's kind of cool like if you draw it out or or even like a fence with one piece or like a fence with one piece has has two posts and so it's like oh wait a minute so when you're counting sometimes you're counting the fence pieces rather than a post and the post and and a good example actually and I love this like I it's like one of those things you tell the kids but it actually works in adults is if I say hey can you do some chores for me it's like okay fine so you're in office building I want you to mop floors 8 to 11 from 8 a.m. to 11 a.m it's like oh okay and so most people say oh I have like an hour per floor right because it's floors 8 to 11 and it's 8 a.m. to 11 a.m. it's like oh actually floors 8 to 11 is 8 9 10 11 and so that's four floors 8 9 10 11 but 8 a.m. to 11 a.m. is only three hours yeah so it's like whoa so what happens is some things in life are counted as points and some things are counted as spans units yeah exactly and so what happens is sometimes if you're doing subtractions you're comparing things you're you're getting those off by one errors and this essentially because something was counted as points something that's kind of spans and it's this fence post issue and it's so funny because we've learned to count you know again in like elementary school but nobody told us like sometimes it's like or date ranges like for example if you're out of town on vacation from March 8 to March 11 you're actually gone for four days rather than three yeah if you just look at it you're like oh he's out for three days he's actually out for four days sure yeah it's like whoa so like you know it's crazy and so this happens all the time all the time and we just think we're being foolish like wait you know you just subtracted and you get the wrong answer and it's like no no no it's actually 8 9 10 11 is four and it's it's crazy like have you seen that this is exactly that issue there was a kind of a I don't know it was somewhat famous thread on I want to say bodybuilding.com I heard about that that's right it's like seven or eight days in a week or something yeah it was on average three and a half times going to the gym because they go you know Monday Wednesday Friday and then I don't know Tuesday Thursday Saturday or something like that they basically it worked out that they go three and a half times per per week because they just alternate days right yeah and so naturally you're doing one at once every other day and there's seven days in a week so you're doing on average one out of two days which is one half of that seven days so the average works out to three and a half and the thread basically and I'm probably not going to include this in the show notes because it's it's just not you can google it if you really want to see it but the thread basically is people going back and forth getting really angry that you can't go to the gym one half time it went on for probably 40 50 pages on this forum oh man it's kind of it's and I just imagine these guys like super like amped up and angry oh man this it's pretty calm this something out of Futurama or something oh yeah it was amazing oh man that's funny I think I I heard references to it but I'll maybe I'll we'll have some time to kill I go check it out it's it's one of the I would imagine that if you found like a reddit thread on you know Hall of Fame of the internet that it's probably in there somewhere oh that's awesome yeah and and you know it's funny because like and now suddenly the math is interesting to people right like wait we wouldn't average me into this and that's you know like I think that you know there's definitely ways hey you know I'm not too particular about the methods of if that's what it takes to get people interested okay yeah sure you you jump on that thread and be like hey by the way everybody I have an answer to this you can I understand this yeah the fence post problem yeah exactly so it's great yeah I mean but that's it like you can and a lot of things with math it's it's not like you're trying to force fit it into life it's it's like you just sort of have that concept and then it'll just pop up and um you know a lot of people with math too they're like oh when am I going to use this and to me that's a little bit like saying you know why should I learn the word gigantic like when am I going to use the word gigantic it's like well it's kind of nice to know that it exists and sometimes it might be really fitting I mean you can't just say really big like you can get through your entire life saying really big and never saying gigantic but there's sort of a nice appreciation for the fact that this is sort of an existent you know it's a concept and over time and math we've kind of tuned it down to the things that we think are actually useful so we're teaching algebra geometry like things that are that have been useful for thousands of years we're not the cold practical things yeah exactly you know things that like the math that wasn't that useful has been like kind of it's faded away to some extent so yeah this is sort of what's been distilled down and yes but exactly so like you're not like it's maybe the bodybuilding thing or like the this week or you're counting and it's funny actually for me now I have like a set of kind of gut checks or like heuristics so if I'm if I'm never doing a subtraction into that in my head I just I'm saying it's funny it's not even that I know which one to use I'm just like let me just do a quick example and make sure I got it right so if somebody said you know 80 m to 11 am and that you have floors 8 to 11 I wouldn't just think one hour before you know I'll have to say wait wait I think it's an hour before let me just double check oh it's not and then I'd have to actually you know like I I've learned to kind of check myself and you know have those little debug kind of those assert statements actually like in my logic and I'm like okay testing yourself testing yourself exactly just because I know how easily it is to get or how easy is to get tricks on these things yeah today's episode is probably sponsored by digital ocean you know I was at fluent comp this past week and I saw Wesley hails I actually tweeted about this Wesley hails did a demo he demoed his his application it's called speed gun and he he was able to deploy his application in less than about two minutes and he used digital ocean to do it that was just a testament one of the many many use cases for digital ocean is Docker deployment it went up in literally less than two minutes and he did it live on stage while he was giving a presentation this is a testament to the reliability and the efficiency of digital ocean digital ocean is the fastest growing cloud infrastructure provider because they they are laser focused on their mission to create simple and elegant solutions for developers and development teams now it's incredibly easy to deploy as I just now said it takes just a few minutes and you can deploy with pretty much Amy kind of platform that you're used to using no JS rails magento Docker and you have access to these things root access and you can spin them up and take them down through a control panel now digital ocean is built to scale you can you can obviously scale their scale your applications manually or you can use their API now that mixed with the fact that a digital ocean is highly reliable and available there's data center regions around the world and the fact that it's straightforward pricing you only pay for resources that you actually use by the hour there's no setup fee no minimum spend this is kind of a no brainer for you as a developer now if that wasn't enough digital ocean has been kind enough to provide Developer Tealisteners with a special code that gives you an entire free month on a gigabyte droplet that's a gigabyte of RAM that that they're talking about there a gigabyte droplet and all you have to do to get that gigabyte droplet is use the code Developer Teaat checkout thank you once again to digital ocean for sponsoring Developer Tea of course you can find the link to digital ocean as well as that special code at spec.fm I love this concept of finding the problem first and this is this is really why you know on the show and many other programming related podcasts when people ask you know how do I learn what is the best route to learn so often you hear the answer make something yeah go and actually build something and it's not because first of all we're being lazy right the the podcast host that tell you to do this another great example shop talk show just build websites it's not because we're being lazy it's because this is truly the way that you that you learn best is going and seeking out the problem the actual problem rather than trying to learn all of the solutions up front and then you know cherry picking from your list of solutions to solve the problem with learn the solution by finding the problem learn the solution by going out and you know discovering something where that solution should go and then you can kind of you know find your way backwards and it helps to have some base level knowledge and it helps to have a go to resource for example a mentor or maybe a couple of books that you can that you can reference but if you're going to learn for example JavaScript you're going to learn much better if you go and build something with JavaScript and then refer to the reference book you know as you're building it rather than trying to go through the whole reference book and then going and building something exactly it's really really hard to kind of walk through the the official description without any kind of real-world thing to ground it and actually in that way I have some side projects that basically I use so if I am trying to learn like react for example it's like hey okay it's you know it's written this project has written a while ago let me just try to refactor it and react and then I'll learn about react you know basically through that refactoring through that refactoring exactly and it's hard to say oh I'm just I mean some things maybe you're casually interested in but it's way more fun when you can say oh you know I applied this pattern or I use this library and now this my project got way cooler or way easier than it was before and you know that kind of before and after I think it's pretty powerful as well it's the same thing with like the rock climbing like you know you kind of struggle and it actually it reminds me a little bit of like jujitsu or it's yeah you know like the martial art but basically it's all about using leverage and kind of you know even if you're smaller you can still use leverage to lift some dues bigger and the thing is if you just wrestle somebody without knowing anything you're just tearing yourself out and you're basically exhausting yourself but suddenly you learn one little thing like oh if I like you know push on their hip this way it's really easy to move them suddenly it's a lot of fun it's like oh this thing like you remember how difficult it was and now it's a lot easier and so I think the same thing like with your project you know as you get better you remember how cumbersome it was I think oh man I remember the first time I've learned to CSS like you know like in high school like learning HTML and you know you're putting like font tags like this is way back in the day like you're putting font tags in and like you know you're making things manually colored and yeah you're like whoa I can like I can change the whole look like I change this one file and I didn't touch my HTML and it looks completely different whoa and it's amazing and I think it's you know it's it's a little bit hard to appreciate that sometimes unless you struggle a little bit with the old yeah I agree with that I think actually sandy metz does this very well in in her book and I've referenced it many times on the podcast before but she introduces the concept very well up front and often she'll she'll end up writing you know refactoring code and writing it in such a way that you start feeling the pain right so like it starts getting a little bit out of control and you know but she she kind of trudges through and then she says now let's look at this code does this look great and probably not but here's a way that we can make it look better you know and it just this constant refinement and introducing new concepts through through that exploring the problem first she does that very well the the book is called practical object oriented design and Ruby but really it's just sandy a lot of sandies rules and experience that she's placing into the book another thing she does by the way we mentioned a squint test for usability earlier I feel like it's worth mentioning sandy also does squint tests on code to see if the code is if there's anything that's out of shape right so there's any one really long line or one really short line or if there's you know a block of lines that are all the same length some of that could cause you know she tells you to look at it and see if there's a better way to write it and typically you know the the best code basically follows a simple contour without any outliers that's a great I really like that I'll check that out because one of my philosophies too is you can't just show somebody the right result you need to kind of show them the thinking process they got you the motivation the motivation and also like the judgment like she said oh like it sounds like oh hey you know I started with this function or this you know this program and it's a little bit unwieldy and you know as you can see here we're repeating ourselves or it's a little bit cumbersome unless we factor that and make it better I feel this is actually what math unfortunately suffers from is that you have this kind of golden or this like bright jewel element where you know from like it's like this perfect jewel of an equation and you don't realize that this equation was arrived at through a pre like a process of struggle or this is like a cumbersome way to write it let's simplify let's smooth it out and because really the goal isn't necessarily to get to the endpoint it's to kind of experience it's like when you do a pushup like the goal isn't to actually move like your chest six inches like moving your chest six inches isn't the point it's really about your arms lifting a weight and the struggle and so I think with math it's like oh I got you the end result it's like well yes but unless you understood how you got there it doesn't matter like we have computers that can find the Brazil you know the answer we don't we don't need humans to do that anymore I want to make sure that you know the path that we took is it really sinking sinking in it's it's like having that apple ingredient like you were saying earlier you have the apple and now you can mix that with other new interesting exciting things and make stuff that nobody's ever had before exactly and really it's you know if you understand this is I guess a little bit metaphysical but if you understand the nature of an apple like an apple is sweet it's crisp it's kind of juicy it's it's got these attributes and now the reason you pick an apple in your pie is because all the pie you know I want something juicy and kind of crunchy in the pie and so that's why like yeah it's not it's not its appleness it's its crunchiness right it's a crunchiness right because you would never make an orange pie but like an alien who say why not an orange it's like well an orange is like citrus it's kind of sour it's like squishy like it just doesn't work and well the aliens blending all that stuff together anyway oh yeah they're just injecting you in the backroom anyway so but exactly yeah it's really about like being able to look at something and kind of summarize it in your own mind and I think that's sort of like the point for me of an analogy is that it's like it's again you know we it's funny how many we use in everyday language but we don't realize you know like metaphors like uh well now is it the antichrass hopper for saving or you know like high-speed computer stomach all these like we use so many kind of metaphors and similes in life just because it's so easy to like it summarizes the essence of the of the argument so quickly or like slippery slope or or anything we really can get across a huge rich context with just a few words and so to me like once you have an analogy you sort of summarizes yeah this you know this lat or this this concept of this equation you can summarize it in two words and now you can use it and you sort of get the appleness of it you kind of hold it in your hand yeah the kind of these key words that can anchor you back to that central idea of a more complex thing exactly I guess that's kind of like a kind of like a heuristic I guess and actually this happens in programming all the time to where you end up chunking concepts and then you can use those chunks and I mean that's kind of programming right like you you have a lot of statements you put them into a function and then you have a few functions you might put them into a module and then use a module and you're sort of building up something so you know we might use an acronym like MVC and it's you know three letters but now you understand oh okay you know this program is broken into tears and there's like a model and this maybe you know there's a view and things like that but you've basically summarized something that could be pretty complicated into a few letters and now you can say oh we have MVC and we have a recipe CPI and and suddenly like it's a lot of you know it's a lot of tons of things yeah you've chunked it up and my thing is like with math like you know when we you have an equation yeah the equation is like this giant super like the equation is literally the source code of like a library but you you don't want to think at the source code level you want to think at like the function or like the behavior level so it's like okay you know don't label it even something like the Pythagorean theorem you know that's like kind of a bad name in a way because that's that's like saying the module that was written by Pythagoras you know it doesn't really tell what it does it's like oh the Pythagorean theorem how about like the distance theorem oh that that might be so like let's use the distance theorem here oh okay like that's a lot more kind of useful than this kind of name so there's actually another less memorable but much much more useful and descriptive yeah exactly and now you can sort of take that concept and like you can almost pseudocode actually I kind of do pseudocode math where if I'm trying to think about like I had this sort of analogy that math is it's kind of like software for your brain it's like software that your brain is running yeah it's the first time I learned the word function yeah exactly yep function algorithm all these words they're sort of like from the math world where there's like hey yeah and and actually if you look at like f of x like it looks just like a like it's like JavaScript it's like you're taking a parameter or list or something list exactly and it's super-turs and the obviously it's not tight like it's actually not well documented it's not typed very well there's a lot of overloading like it's it's not as clean there's no like it's not as clean as a language but the concepts are there um but yeah you can really like you can take those concepts you can chunk them you can think at a higher level of abstraction and you're not stuck in the source code and I think a lot of people with math are used to having to memorize it's literally like you know memorizing every feature of the API instead of knowing okay I can I can you know put data there I'm sure there's a parameter to control the sort order like you don't have to memorize every little detail you just know that you can look it up when you need to but you need to get really uncomfortable with it and really everything we've talked about today has been enlightening I'm sure there there have been quite a few of those of your trademarked aha moments there yeah and you know for me too that's the thing it's like I um my general approach I guess you know for people that are trying to learn or anything it's really just find what lights you up so for me that aha moment it gets me going for someone else it might be something different but I think part of education which I think is missing unfortunately in school is teaching you to like the point of gym class in school should be to find a sport that you like that you can play for the rest of your life and enjoy that that that should be the point of you gym classes to teach you about physical education that the number one goal should be when you graduate from high school you've at least found two or three sports that you think hey you know in my 40s and 50s I want to play tennis or basketball or something because you know it doesn't like running around and exhaust yourself for a few months when you're 18 doesn't really help your long-term goals you know right yeah and sitting for math like cramming algebra and trig for a couple years when you're 18 or you know a couple of semesters when you're 18 it doesn't really help your long-term outlook on things and so it's kind of like that the newspaper thing it's like the point of the first headline is get to read the first like the point of the gym class is to find something that you care about and the fun of math should be to unlock that that or find a way to unlock that excitement in yourself that way you can always if you need to you can always learn something and you know how to kind of engage yourself yeah that's incredible hopefully I have a few teachers listening to this episode that'd be awesome yeah and actually I'll send it around to some to some that I know too so hopefully they make their own apple pie there yeah well this has been great Colin I do have two questions that I like to ask every guest who comes on Developer Tea and and these are just kind of the the Developer Teabranded questions at this point and the first one is if you could spend 30 seconds with every developer what advice would you give them oh be question in your read me files start off with examples so whatever modules please just give me some really simple examples like whatever you're doing just get to the point like don't don't use jargon just like whatever modules you're making for people like man pages and things are okay but they tend to be pretty verbose like just make it usable for somebody who doesn't know the details of your of your code that's really interesting I actually just did an interview with Kenneth writes and he actually is the the Python lead at Heroku and he wrote he wrote requests and records and requests is at HTTP library for Python and records is a as a SQL library and his whole his whole kind of pitch is writing code that humans can understand a little bit better and I love that idea of maybe maybe there's a man page here's a here's a pitch for someone out there who wants to start a open source thing write human human instead of man and hopefully hopefully somebody will take that and do something better with it than what I just did but the idea of of having a more approachable introduction to to the whatever the thing is that you built is such a such an important piece of this puzzle I end up googling the thing when I don't understand the man page exactly and there's that I think there's a famous xkcd joke which is you know someone puts you down in front of a terminal and they say you know the world's gonna explode unless you can like untar this file without any errors on your first try it's like I'm sorry I'm so sorry xcd or is it gonna be in the card director you're like and like yeah exactly and it's like the fact that and I you know I probably use it I don't know every other week and I had still at the Google I have little snippets because I have to remember oh here's all the parameters exactly so making that easy for people I think is the is the I mean the thing is the code is written once but it's used you know a million times so it's really use the usage use case that we need to worry about yeah I totally agree with that the second question if you could choose a topic for people to talk to you more about what topic do you wish more people would ask you about good question um probably the maybe the connection between math and programming in terms of the things that programming does right that math can do right as well so I feel like math it's evolved with a lot of clutches and the notation of things there's a lot of old school like it hasn't really been refactored and so there's a lot of it we're basically imagine if cobalt never went away and we've just like had you know just staying with cobalt this whole time exactly there's more libraries and more cobalt and we've got like cobalt 95 and cobalt 2015 to like we've got like new features but we we haven't really necessarily like really had like a new language and things and I feel like in math I can calculate a lot of these subjects you know there are hundreds of years old and the notation has evolved a little bit but it's still fundamentally uh using these older systems and it would be really neat to say hey programming you know it's a new field but we've kind of really made things a lot better and so how can we take those lessons and bring them into the math world as well I've always wanted to see equations kind of notated as pseudocode exactly exactly you said that earlier and it struck accord with me because I I really do want to get more into kind of a better basis of mathematics for my job right I would love to understand more of this my biggest hurdle is how do I understand what this function what this notation is saying and I'm having to try to climb back into my brain back from when I was in high school to remember what all these notation things are and it's not descriptive and and often even in the plain language description beneath the notation where they tell me what all those different pieces are you know I had to go and figure out okay is this a special value like e for example uh which I which I know is a special value but maybe there's like three or four others in there that I'm just not aware of exactly oh yeah even conventions like is this a constant or is this a variable is this a function then like there's little hints like is it a capital letter or lowercase letter or is it a italics but there's always like it's kind of really clued it's not it's not like a strict definition or there's no compiler really that like you know they can be the rules and things and so yeah it's really it's really kind of contextual in some ways and it's it makes it more difficult than it has to be yeah I think one of the most effective things that's like kind of stuck with me throughout all these years is so katoa exactly yeah and there's ways to kind of we've developed shortcuts and little mnemonics and things and I think we need more of that we need to kind of embrace kind of the ways that actually work and then you know my general approach is if it works do more of it it doesn't work try something else you know it just kind of keep this a b test math teaching a b test yeah sure works what you know what what what's actually sticking and just keep going with it yeah I love that well call it thank you so much for joining me on Developer TeaI'm I'm sure there are many people who are listening who have been appreciative of your time and I certainly am as well thanks so much this is great thank you so much for listening to today's episode of Developer Tea interview with Khaled Azad of course if you missed out on the first part go back and listen to that at spec.fm every episode of Developer Tea is available at spec.fm if you never want to miss out on another episode of Developer Teago ahead and subscribe in whatever podcasting app you use that ensures that you are notified whenever a new episode comes out and that happens pretty often on the show three times per week so go ahead and subscribe so you don't miss out on future episodes if you're enjoying Developer Teaake sure you leave a review in iTunes this is the most important way to help other developers find Developer Teathanks again to today's sponsor digital ocean they are the fastest growing cloud infrastructure provider and for good reason go and check out digital ocean of course you can use the code Developer Teato get a gigabyte droplet for free for an entire month just for Developer Tealisteners so go and check out digital ocean especially if you're looking for a cloud infrastructure provider but even any developer really can get a good use out of out of digital ocean and keep it in mind for the future it's a great platform to keep in mind for the future of your development projects thanks so much for listening to Developer Teaagain remember you can always reach out to me directly at developertea@gmail.com where you can join the spec slack community by going to spec.fm slash slack I'm in there and every other host for from a spec show is in that spec slack community and we love to hear from you thanks so much for listening and until next time enjoy your tea.