Coding Blocks - How to Learn Programming Skills

Episode Date: October 8, 2018

We continue our dive into how to learn things while Michael's voice sounds an awful lot like Joe's, Joe says it's a square, and Allen says it's a triangle ... oh, and Google Feud is back!...

Transcript
Discussion (0)
Starting point is 00:00:00 you're listening to coding blocks episode 91 subscribe to us and leave us a review on itunes stitcher and more using your favorite podcasting app and visit us at codingblocks.net where you find your show notes examples discussion and more your feedback questions and rants to comments at codingblocks.net follow us on twitter at codingblocks or head to www.codingblocks.net and find all our social links here at the top of the page. With that, I'm Alan Underwood with the super not low voice. I'm Joe Zuck. And my outlaw couldn't make it today, so we'll be making fun of him all episode.
Starting point is 00:00:38 That's right. Datadog is a software as a service monitoring platform that provides developer and operation teams with a unified view of their infrastructure, apps, and logs. Thousands of organizations rely on Datadog to collect, visualize, and alert on out-of-the-box and custom metrics to gain full-stack observability with a unified view of all their infrastructure, apps, logs, at cloud scale. And they've got 200- plus turnkey integrations,
Starting point is 00:01:07 including things like AWS, PostgreSQL, Kubernetes, Slack, and Java. And you can check out the full list of integrations at the website datadog.com slash product slash integrations. And some of the key features include real-time visibility from built-in and customizable dashboards, algorithmic alerts, things like anomaly detection, outlier detection, forecasting alerts. They've got end-to-end request tracing
Starting point is 00:01:31 to visualize app performance and real-time collaboration. And Datadog is offering our listeners a free 14-day trial, no credit card required, and as an added bonus for signing up and creating a dashboard, they'll even send you a sweet Datadog t-shirt. no credit card required. And as an added bonus for signing up and creating a dashboard, they'll even send you a sweet Datadog t-shirt. So head to http://www.datadog.com slash codingblocks to sign up today. All right, so this episode we're talking about how to get better at stuff.
Starting point is 00:01:59 So we're looking at five different models of learning, kind of popular in pop science right now. And we're going to talk about how we can apply these to software engineering. But first up, a little bit of news. Yep. So as always, we'd like to thank those who have taken the time to leave us a review. We got a few in iTunes this time. That's from LawFedge, ErisX27, and ZTA192.
Starting point is 00:02:21 Thank you very much. And I got Inquisisaurus, Gary Alex, and Sarah A. And it's just not as fun without Al out here to butcher the names. Or at least stress about them. What you guys don't hear before the show
Starting point is 00:02:38 is like, oh man, how do you say this? Are you sure? I don't know. I don't want to say it wrong. But I did, it's not Inquisisaurus, but I kind of like Inquisisaurus better, so you should consider that. Are you sure? I don't want to say it wrong. It's not Inquisisaurus, but I kind of like Inquisisaurus better, so you should consider that. Yeah, Inquisirus is what it should be. Inquisirus. Either way, thank you very much.
Starting point is 00:02:58 We appreciate that a lot, so thank you very much. Yes, indeed. So you want to tell us about these things you got here? Yeah, so a while back we talked about deliberate practice for programmers, and it kind of had a bunch of extra research that we didn't get around to talking about and things that didn't even make it into the talk. And so we've been kind of sitting on this stuff while waiting to talk about it, and, well, today's the day. That's right.
Starting point is 00:03:19 So congratulations, I guess. So we're going to talk about five different models. We're going to briefly just mention deliberate practice. We did a whole episode on that one, so you can go back to episode 78 for that one. But also we've got a couple of other different models to talk about, like the Dreyfus model of skill acquisition, the four stages of competence, the learning pyramid, and the seven learning styles, which is always a fun fun one this will be interesting for me because i know nothing about any of these so i'll be right along with everybody else here yeah so um yeah first i just want to touch on real quick um just kind of um this is the one that we we talked about a lot in episode 78 so they're not going to go on too much but just want to mention that it's
Starting point is 00:04:02 really important to kind of know what you're going after before you start. And actually, I want to mention the Complete Developer Podcast had a whole episode on setting good goals. If you ever heard that notion of smart goals, which is like, I don't remember what it stands for anymore. I need outlaw. Outlaw keeps me straight. Measurable, attainable, reachable, something, something goals. You should listen to that episode and then you'll know a lot more about it than me. But I do think it's important to just know kind of what you want. And so I wanted to ask you,
Starting point is 00:04:39 like Alan, like kind of what you thought a little bit, like, do you keep like rigid goals? Man, I'd be lying if I told you I set any goals. Seriously. And I know that's kind of ridiculous, but it's more just what tickles my fancy at any given moment. Yeah, I'm terrible at it. I think that's totally fair. We have day jobs. We have all sorts of competing interests. And so sometimes I'll kind of want to learn about something and I'll go and do it. And other times I don't. And I kind of
Starting point is 00:05:05 bounce back and forth. Like sometimes they'll set kind of firm goals and then, you know, achieve some level of success or failure with them and then kind of move on. And sometimes they don't. But I like that one year that we kind of set like resolutions and then we all failed at them. Well, that's, that's kind of why I don't set goals is that very reason, because I guess I know my personality and I know that if I have a very short-term thing that I'm working on, I'll go after it like a rabid dog, right? But if there's something like a New Year's resolution or some sort of long-term goal, it almost weighs me down thinking about the fact that I haven't progressed at it. And so,
Starting point is 00:05:42 I just don't set them because I don't want to let myself down. Yeah. And a lot of times, like talking about New Year's resolutions, like the goals that I haven't progressed at it. And so I just don't set them because I don't want to let myself down. Yeah, and a lot of times like talking about New Year's resolutions, like the goals that I set in December when I'm thinking about yearly type stuff and whatever, like by the time June rolls around, I just don't care that much about it anymore. And so I think it's good to kind of adapt and say, you know what? That goal really wasn't that important to me. Now it's a big bummer if it comes around to the next December
Starting point is 00:06:04 and you're still setting the same the same goals that's kind of sad yep my scale is very sad for instance i think i think a lot of us have that problem it's way more fun to eat the good foods so but i also wanted to mention kind of you know just like like specifically uh programmer wise i like to kind of ask whether your goal is to be like the next Uber when it comes to like side projects and learning and kind of programming acumen. Like meaning you want to create some sort of disruptive new service that's going to take over the world and change the world and make you the next cool like graph ql or something and kind of do something maybe tech heavier that is kind of more niche and more nerdy but isn't necessarily gonna make you any sort of money so you're kind of talking about is your focus on doing stuff that regular people will like to use or do you want to do things to improve like a developer's life or or your own life or that type
Starting point is 00:07:01 of thing yeah it's kind of like that kind of scale scale. I think there's a lot of stuff in between there, but I like the idea of kind of knowing kind of where on the scale you kind of sit with your goals. I think that's really important because if you're trying to be the next Uber, you're going to spend a lot more time marketing than if you're writing the next database because you're probably going to spend a lot more time
Starting point is 00:07:20 on consistency and deadlocks and stuff. Right. And so it's just all about, um, picking on something important to you. And I kind of like mentioning to the idea of like, um, when it comes to getting better at stuff, like either playing to your strengths or trying to strengthen your weaknesses. And I think last time we talked about, I kind of talked about how I was trying to get more of my C's up to B's rather than getting my B's up to A's. Yeah.
Starting point is 00:07:43 That's, that's an interesting one. I mean, are you still in that ballpark where you're always looking to improve the things that you're weaker at? Are you looking to really sharpen what you're extremely good at already? Are you still in that ballpark? Yeah, I mean, I still like going wide. think that if I was like a PhD student or something, then that would make sense for me to meet, maybe focus more narrowly. But as kind of like a professional businessy programmer, like I think it makes kind of sense to, to stay wide. And we had that whole episode on the T-shaped developer, uh, way back, uh, a couple of years
Starting point is 00:08:17 now, four or five years, but I still kind of believe in that. But I like being like, um, a wide T that's not very tall. You know what it's funny that you say that because i find myself very much in that camp i like to i think more or less i've found most programming to be all basically roughly the same right you know even crossing languages or whatever but what's not the same are all the pieces that start fitting together to either make your application scale better or to make it, you know, prettier to look at or easier to use or whatever. Right. Like it's those other pieces that I'm always interested in that maybe I don't
Starting point is 00:08:58 have enough time to play with during my, my regular, my regular gig. Yeah. Maybe I'm more interested in being like a W-shaped developer or something. I think I'm right there with you. I just want to touch on goals. I mentioned that Complete Developer Podcast is their 16th episode. Is that right? We all have
Starting point is 00:09:17 it in the show notes there. I would definitely take a listen to that if you're interested in setting goals. We know some people in Slack who have done great jobs by kind of tracking and setting goals and done amazing things and uh i know there's lots of amazing things i haven't done so maybe i should give it more of a shot well one thing i do like seeing on twitter and man i i'll have to look it up while while we're continuing on to the next thing, but this a hundred days of programming that a lot of people are doing and that kind of thing. I mean, it's flattering that we get called out a lot in those, but I think that's an awesome way for people to actually
Starting point is 00:09:54 track things because it's, it's, it's sort of short term, especially in the fact that you're doing things every single day. But on the flip side, because you are dedicating to it for a hundred days, you can, you can have little short goals that get met as you're fulfilling your bigger one. Yeah, I am. I started doing that for a while. I think I got to like 78 or something, but I was really surprised at how fast those numbers add up. I mean, like we're professional developers. So like, you know, kind of five days a week, I week i you know i kind of count that for those day 100 i'm not sure if you're supposed to count work or not but i i do um but it's still kind of cool to like look back on the tweets to be like oh yeah that was kind of cool i was doing that a
Starting point is 00:10:34 couple weeks ago oh yeah i was doing that on some saturday or something so it's kind of neat to see that progress and like realize like i guess i do this kind of stuff a lot i accomplish things even if it doesn't always feel like it yeah and and the two people that jump into my mind that do this kind of stuff a lot. I accomplish things even if it doesn't always feel like it. Yeah. And the two people that jump into my mind that do this with the hashtag quite a bit are Shannon and Arlene. They're both really good about, you know, I did this today and they'll mention what they've learned, what they haven't learned, things that are frustrating them. And I think that's awesome, right? Because like you said, once you go back after that 100 days, you're probably going to have acquired so much knowledge that the things that didn't make sense on days 1 through 20 are going to start feeling a lot better as you get towards the end, right? Yeah, for sure.
Starting point is 00:11:15 I started doing it around the same time Robert did, and I just noticed just right now that Zach Braddy, a friend of the show, just started his 100 days today. So it kind of makes me want to start another 100 days and do it alongside of him. Hey, good luck, y'all. Yeah, I'm also kind of tired. Right. There's that. So the first kind of model of learning and advancing skills I want to talk about was deliberate practice, which had a whole episode on it. But just in brief, just wanted to touch on it. Basically, the idea there is you want to understand your goals, your aptitude being like how good you are already.
Starting point is 00:11:50 And then based on that, you can design, execute exercises ad nauseum and track your progress and just repeat. That's the whole kind of thing. We had a whole episode on it, so I don't want to go too much there. But one thing I did want to mention is that this does have a little bit of controversy around it, especially if you look up the 10,000 hour rule with Malcolm Gladwell and whatnot. But for the most part, maybe because it's newer or for whatever reason, there's not a lot of controversy around that. And that's one of the things that I was preparing for that episode, preparing for the talks I did on deliberate practice, I noticed that people weren't really that angry. They weren't disputing this yet. Maybe it takes a couple
Starting point is 00:12:29 years to catch up, but I was really surprised, especially looking at some of these other models that have quite a few big detractors out there, that this one is kind of sitting high at the moment. Well, it makes a lot of sense, right? Like we talked about in that one episode is when you do, it's almost like micro focusing, right? The whole deliberate practices, you have a particular thing that you want to master. And so going after, it's hard to argue with that, right? If you're a basketball player and you want to get better at dribbling, guess what? You're going to go out and practice dribbling, you know, hours a day.
Starting point is 00:13:01 By the way, anybody who hasn't seen the professor on YouTube, basketball player, you should go watch them. It's awesome. But that's all right. Yeah. The dude's undersized, but in a nutshell, this guy's just got crazy dribbling skills. He makes people look silly, but back in the day he practiced eight hours a day doing that. Right. And, and it's hard to argue with that when you were going after a particular thing, how can you argue that, right? That is the way to get good at it. Yeah, that's true.
Starting point is 00:13:29 As long as you're practicing the right way and not practicing the wrong one, building the wrong muscle memory. Well, that's the thing, right? That's the only argument I could see to this is if you're practicing with sort of tunnel vision, then you're going to miss some of the things that would have made what you were trying to learn better or easier or whatever. But it's still hard to argue the fact that if you do that, you're going to get very good at that, even if it's not the perfect thing to get good at.
Starting point is 00:13:53 Yeah, and that's a huge part of the talk I did and a huge part of the books that I read on the subject all really emphasized having a coach and how important it was to have a coach or mentor there to kind of see outside and have kind of a less biased opinion of you than yourself. And I do feel like whenever I do that talk, it's kind of a bummer for people because programmers go in, they want to come out of there with a list of the 100 things they need to do to be amazing. And it doesn't work like that. So it's kind of a bummer to kind of have to tell people like, hey, the researcher says you should really work with other people and kind of figure this stuff out together. That's all whole hands now. So that's interesting. Just on the topic
Starting point is 00:14:29 of the coaching, have you ever considered doing like the mastermind groups or anything like that or having coaching groups or anything like that? Oh, yeah. I think about it all the time, especially we're going to get into some of the ways up here, like even kind of teaching and sharing knowledge can be really beneficial way of learning so I think about all the time it's just a matter of kind of time and I think that especially if other people are involved I want to kind of dedicate some time and do it right and you know like we're busy we do podcasts we've got work we've got you know families and whatnot that we don't spend enough time with as it is so you know tech and one more thing on there can get me in trouble with some of those
Starting point is 00:15:07 people that I love so much. Yeah, definitely. All right. Yeah. So the first model I want to talk about, and by the way, show notes podcast app that you're listening in probably has a way for you to easily view the show notes. So if you forget one of these or whatever,
Starting point is 00:15:20 you can always go to the web or you can kind of slide over and see these because we try to do really good show notes. First model is the Dreyfus model of skill acquisition. And like I kind of mentioned above, there's some controversy about it. A lot of the controversy comes from just basically how you draw the lines between the different skill levels and how do you measure success.
Starting point is 00:15:42 Well, what is this thing? Oh, yeah, I guess that's a good way. Good thing to mention. We could argue about it, but I have no idea what we're going to argue about yet. Yeah. Let me tell you about the problems with it. The Dreyfus Model of Skill Acquisition was designed to provide the optimum way to learn changes. And it's based around how you learn and how you get better changing as your knowledge and skill in that subject grow.
Starting point is 00:16:06 So the idea is that the way you learn as a novice and the way you learn when you're advanced is going to be different. You can't do the same type of stuff and expect to keep advancing. Okay. So are we talking about in terms of programming, are you talking about like when you're very green behind the ears that you're going to be looking at books and trying to type things in and see if they work versus when you get more skilled you're just going to start coding away or hacking away or copying examples somewhere and seeing what's going on yeah exactly like um i kind of think like one example here might be like if you're a novice and you're not going to get too much value out of watching or, say, like arguing with your friends about different programming techniques because you don't really know what you're talking about.
Starting point is 00:16:49 And it's hard to kind of really have a good viewpoint on that and get much out of that stuff if you don't know much about it. But if you're an expert, then maybe that's something that you really get a lot of value out because you have your ideas changed and are challenged and your stereotypes and biases kind of challenged. And you can really get a lot out of that but um they actually make a pretty good um list of basically things you can do at each level there's four levels so we can go through those and tell you kind of what the level is and what you do at that stage to get better and so you can think about your kind of skills in programming or maybe your skills at a certain size of programming, like functional programming or abstraction or architecture or whatever,
Starting point is 00:17:29 figure out where you are in this list. And then that tells you where you should be looking to go in order to get better. Cool. And, uh, four levels. They are novice,
Starting point is 00:17:39 beginner, intermediary, and advanced. And, uh, novice starts us out. And, um, the first thing you want to do is just make sure you understand the tools and the philosophy of the underlying thing you're
Starting point is 00:17:50 trying to get better at and then they kind of explore the ecosystem so look around watch some youtube videos we've got defined learning goals here and also just basically kind of get started type of you know if you can get some instruction or whatever at this point, then it's really good. But it's almost like you can't do too much wrong here aside from maybe jumping ahead of yourself. And when you do that, you potentially learn things wrong or you build kind of bad models of the thing that you're trying to learn,
Starting point is 00:18:22 which can lead to problems down the road if you think you understand something and you understand it incorrectly. Yeah, that's interesting. I want to revisit that here after we go through some of these. Cool. Next stage is beginner. And this is the part in the learning journey that you're going to look at those training courses and buying a book and playground projects.
Starting point is 00:18:45 And this was kind of rough for me because that's what I typically do when I want to get better at stuff. It's like, does that mean I'm a beginner? Well, probably because of what you said earlier in that you're always trying to go wider. So you are a beginner in whatever you're trying to pick up, right? That's true. That's kind of how I look at that. But again, we'll get back to my other thought on this in a minute. That's a good point.
Starting point is 00:19:09 Like, I'm not going to buy a C-sharp in depth at this point, probably, because I feel like I know a lot of the material. Although there are some, you know, you can definitely dive deeper. Like the CLR via C-sharp is a great book that I like to mention because it really does dive very deep into the.NET internals. I don't know what that's like in a.NET Core world, but I know when I read that, it definitely was very different from the other kind of books that I'd read before on the subject, which were very much like, here's the for loop, here's how you if.
Starting point is 00:19:37 It's funny because the by the book, I feel like should be in every one of these, and it's not. It's only in the beginner. And the c-sharp uh via the clr is a perfect example give that to a beginner and their eyes are going to glaze over and they're going to walk away from it be like i'm never touching this right yeah that is straight up for people who have experience in either that language or other languages and want to figure out how to get the most out of it so yeah and the next stage there intermediary um does have experimenting documentation and it does mention reading so i think that's kind of what we're saying a little bit the it's just interesting that kind of differentiates between
Starting point is 00:20:13 like reading and buying a book yeah i mean it's it should be the same thing but yeah yeah like we you know we we had a lot of fun with the imposter's handbook there and that's very much like a kind of how to basics kind of book, but it was designed for people that weren't in that novice or beginner stages. It was kind of looking, looking and going back and revisiting some of that stuff. And so, yeah, I think it's,
Starting point is 00:20:36 that's interesting that they, they put it there. I think the big thing is, is knowing the type of material you're going after at each stage, right? Like there's a big difference between Java for dummies versus, you know, learning Java 1.8 for experts, right? Like it's sort of in the title.
Starting point is 00:20:53 So yeah, I mean, every step of the way is going to have different things that you need to explore and, and you'll know, you'll, you'll feel it when you get there and you'll be like, okay, I know this stuff now I need to, I need to up my game. Yep. And now that's actually a good point. That brings us to the final point when you're advanced.
Starting point is 00:21:11 They've got teach others. And that's the only one that they have there, which I thought was interesting. I like that one. I mean, I would venture to say like this podcast is a prime example, right? None of us are, all three of us on this podcast. We're pretty good at what we do. Are we the best? No, there's always going to be somebody better.
Starting point is 00:21:32 But this doing this podcast forces us to buckle down and dig into the things that you normally wouldn't, right? I mean, that's just in a nutshell, you know, it's, we spend a lot of timepping for this show, and that's because we don't want to get things wrong. We don't want to mislead people. And at the same time, we want to learn from it. Yeah, and that reminds me of an upcoming show that we're going to be talking about eventually here. I started looking at the show notes. I started looking at primitive types like C Sharp and JavaScript and realizing how much I don't know just in that one little thing, like about, you know, say like numbers and JavaScript,
Starting point is 00:22:08 it gets like pretty complicated and a lot of stuff, things I had seen before, but I just hadn't really kind of organized it in my mind that way. And so just me trying to put together the show notes and try to figure out how to talk about it in a reasonable and organized way, uh, really kind of like led to my eyes being opened a lot more on the subject. And so I feel like I kind of get a lot of the weirder things in JavaScript in a way I didn't get it before. So pretty excited about that. Definitely. And we're kind of really looking forward to that episode because a lot of people have been asking about data structures, but it's not a small topic. So it will probably be dedicated in a few episodes going, going back real quick.
Starting point is 00:22:46 So the thing that I had a question about that I think is, is sort of interesting is this whole thing about the beginner. When you do a training course or buy a book and then you do a playground project, right? One of the things that frustrates me, and we talked about this a little bit on Docker, uh, when, when Docker when both you and I were going through the pains of learning Docker and then the joys and the jubilation afterwards. But everything you read out there takes you down a certain path, right? And then you get to the end of that certain path, which is, hey, I have a container running. Awesome. Wait a second. I need three containers that all work together running. And then the next thing that you'll find is
Starting point is 00:23:24 everybody's like, okay, well, look at Docker Docker compose. And then you get to the end of that and you're like, oh, this is awesome. And then you find out after you spent all that time on those first two, then people are like, no, but that's really not the way you want to do it. Right now you want to use Kubernetes or you want to use, you know, some other type of container orchestration. And this is the part that really frustrates me because I found this even with react JS. When you take the tutorials, it teaches you a certain way to do it.
Starting point is 00:23:50 And then after you get done with it, they're like, you should never do it that way. Right. And, and that to me is off putting both for beginners and experienced people, because as experienced programmers, we know a lot of the pitfalls.
Starting point is 00:24:04 Like if you, we've talked about this before, when you, when you see an MVC project and you see things inside the actions, views and, and, and controllers, you're like, really, you're going to put every single file you have in those three folders. That's really stupid. Right. And so there's, there's this part of me and I, and I'm curious if it happens to you, is when I take on something new, I find myself looking at the tutorials and the guides saying, no way I would do this. And then it takes me off on a tangent, right? Because I'm like, wait a second, there's got to be somebody out here that's sane and doesn't give you an example that is a complete throwaway after you do the tutorial. Oh, yeah, for sure. Especially in JavaScript, because they tend to do things all in one file because it's
Starting point is 00:24:47 such an expensive language and you can do that. You can fit a lot of stuff in one little file or a couple of different files. When you think about trying to write maintainable code and keeping things smaller and reusable, it becomes like, well, where do I put this? And a lot of frameworks and stuff that you'll read doesn't really address that. And then you'll see in kind of bigger code bases that people will figure out their own ways of arranging that stuff. And sometimes it's pretty interesting how they end up doing it.
Starting point is 00:25:12 Yeah, it can be really frustrating because that's one of the things about learning that way. Like, I guess what I'm getting at is when you're in the learning phase to truly want to use something, you kind of have to ask those questions as you go along. Because like you said, yeah, it's really cool that you could throw together a JavaScript application in one file. Is it practical? No.
Starting point is 00:25:33 And that's where you, like, I'd highly recommend if you're getting into something deep like a React app or anything like that, go search on GitHub for something that somebody's put together that's like, maybe it even mentions the word architecture. And then that way you can look and see, hey, what did the end result of this application look like? Right? What's the file system look like? What's the layout of the files? What's all this? Because those are all those non-functionals that matter so much when you actually go to start putting hands on the keyboard and make things happen yeah and it kind of reminds me of like um back in the day i would
Starting point is 00:26:11 kind of get into these like imposter syndrome fits are like oh god i'm a programmer and i don't even know how to build firefox and so i'd go and like try and build firefox which was uh i don't know what it's like now but at the time it was pretty hefty you know there's a lot of reading and a lot of background knowledge a lot of things you had to kind of set up and not just like install. You'd have to configure and you'd be building these things to build these things. And you'd have various problems, especially if you're on Linux and you're not used to Linux. Like I was not used to Linux and that would just make me feel worse about myself. But I think that now it's one of those things where it's never been easier at any time in our lives to go find source code for whatever technology or whatever domain you're interested in and take it and see what other people did with it and run with it. Unfortunately, you may pick up some bad patterns from that.
Starting point is 00:26:57 So you should diversify. But I think it's never been better. Yeah, I agree. Yeah, I think for the rest of the part, you know, I mean, the novice stuff is just kind of, you know, really like every one of these steps, like I kind of think you should just be doing all the time. I kind of agree with that. I mean, the only difference is I think the novice is really somebody that's new to programming. And then everything else, if you're going wide is the rinse repeat of beginner you know intermediary and advanced oh yeah but you know and the uh the kind of the controversy if you read up about it it's basically um between them saying like okay
Starting point is 00:27:37 well how do you know when someone's a novice and a beginner like how do you even define the domain first of all for different people that have like different specialties and different goals and then how do you draw those lines like when should you start training those using those courses wouldn't you use those uh experiments like so and they say because there's no kind of hard lines between those like if you couldn't draw a hard line between how did you test to come up with these theories i was like oh that's fair but you know what that's just programmers being programmers being way too analytical and just being like, hey, it's a feeling. Yeah, I hate to say it, but that's really what it boils down to. The only problem is we've talked about this before is you don't know what you don't know.
Starting point is 00:28:17 So don't get arrogant and think you're an advanced developer, even though you've never touched 90% of what that particular paradigm has to offer, you know? Yeah. I think there's a lot of things in this world that are hard to measure. And that doesn't mean that you just like throw your hands up, give up and go do something else. Like I think you,
Starting point is 00:28:36 you know, either get used to working with imperfect measurements or you try to find the measurement that like gets you the results that you want. It doesn't mean you just take your ball and go, I don't know, it's too hard to give up. Right. I'm just going to do whatever, floof around. So what do we got next? So that was it for the Dreyfus model.
Starting point is 00:28:55 Next one is the four stages of confidence. And you'll see a lot of things when you're reading about Dreyfus model that kind of references. So I wanted to bring it in. And it's a little square. I'm not going to try and describe the drawing because we know how that goes on this show. If you're new to listening, then we'll spare you this time. Hey, wait a second. You said this is a square?
Starting point is 00:29:18 Because on Wikipedia, it's a triangle. It's a pyramid. Wait, the four stages? Yeah. If you click the link that you put in the show notes there, it's a pyramid it's a pyramid wait the four stages yeah if you click the link that you put in the show notes there it's it's a pyramid that's funny it's a pyramid but it's also a square so all right here explain that difference yeah so the deal with the square is if you do kind of like a grid here and on like one side of the grid you do unconscious and conscious. And the other side, you do competent and incompetent.
Starting point is 00:29:49 Then you've basically got four quadrants. And the first is unconscious and competent. And what you're mentioning here in the Wikipedia article is it basically does the same thing, except it's got a triangle where it's basically got the unconscious competent at the top. So like the master, and it's kind of just implying that there's like a whole lot fewer masters than there are unconscious incompetent. So just a different way of drawing the same thing. It's funny that you could get totally different primary shapes out of the same
Starting point is 00:30:18 information. That's what you said. It was a square and you weren't going to describe it. I was like, well, I want to see it. Yeah. And it's totally not a square.
Starting point is 00:30:26 So if you're new to the show, that's how we do with diagrams. We tell you how it's a square and how is the triangle at the same time. And then we describe both of them poorly and move on. Oh, that's amazing. But all right. So I think this is worth describing, though. Just so if it's easier to talk about it in pyramid really if you think about it so at the very bottom is the unconscious and incompetent right you don't know anything but you also know
Starting point is 00:30:52 that you're kind of incompetent at it so that's fine that's where that's where there's this is well no this is the one where you don't know that you're incompetent and uh what i like this is the worst case wrong and don't know okay that you're bad and what i uh really like, this is the worst case. Wrong intuition. Don't know that you're bad. And what I really like from this point is that they say that a lot of people in this spectrum will undervalue a skill. So that might be like you go to a dinner party and like there's one person there who's like, you know, I did a little bit of HTML, you know, on my grandma's WordPress site. I get this stuff. And you're, you know like getting your teeth right uh because they don't know necessarily not that there's anything wrong with html or wordpress or grandmas
Starting point is 00:31:32 but it's just that there's a big world out there if you start thinking about all the other stuff that's involved with like websites and accessibility and browsers and security and hey were you talking about a 12 year old that was talking to his grandma i was just curious where the voice came from that's just that's just one of my many voices that i have running through my mind telling me things oh that's amazing evil things all the time okay so that bottom one says wrong intuition so that's you think you know a lot you really know nothing so that's good so then the next step up was conscious incompetence, but that means that you just are bad at analyzing things. Yeah. But at least, you know that you're bad. So you can say at that point that like, okay, I know that I'm not good
Starting point is 00:32:17 at this. Let me go find some help. Okay. That's fair. Then the next step up from that on this pyramid is conscious competence. And this means that you're pretty good at analyzing what you know and you don't know. Yeah. And that's kind of the point where you're like, okay, I can do this, Joe. Get the coffee. Sit down. Turn the music on. Focus.
Starting point is 00:32:36 I can do this. That's the kind of stage where you're thinking very deliberately. It's not really a lot of fun. You got to kind of psych yourself up. But you can do it and you can use the skill. You've got it. It just requires a lot of attention and effort. And then the very tip of this thing is where Joe lives. And that's the unconscious confidence, which is you just have the right intuition most of the time with what you're doing. Yeah. That's where I want to get to at least to where this kind of stuff just kind of flies out
Starting point is 00:33:04 of my fingers. I don't even have to think about it and typing speed is my bottleneck um but not there yet one thing i thought was kind of interesting about this here uh this particular level the unconscious competence is that it does say that teaching can be tough depending on how you learn and i didn't dive into the papers to kind of see how they say that but i definitely have been there where like sometimes you can understand something so deeply and be so unable to explain why that is man that does happen quite a bit if you have kids that's really easy to do yeah i can imagine it's sort of like something you're like trying to explain like a calculus concept to somebody who only has uh you know basic arithmetic yeah like trying to figure out how to
Starting point is 00:33:43 get from you know a to b can be really tough trying to figure out how to get from, you know, A to B can be really tough because there's so much that you have in between those two spots that it's hard to kind of distill it to something that makes sense to someone who only knows arithmetic. Yep, totally. All right. And so that's pretty much it for the four stages of competence. The only thing I wanted to additionally call out about that one
Starting point is 00:34:02 is for the conscious incompetence step. That's the one where you know that you're not so great. They specifically mentioned that making mistakes and learning from them is important. Well, that's how you move up the pyramid, right? Is eventually you start understanding what you don't know. Yeah. And I think that's probably important in every level. I just like that they call it out here specifically because it's kind of like if you're at the point of something where you're like, I know enough to hurt myself. That's when if you want to get better, that's when you need to start hurting yourself. And that's how you push past that point. So if you ever find yourself saying like, ooh, I don't know, this is like SQL
Starting point is 00:34:37 performance tuning. I don't feel comfortable doing that. Then you can recognize, oh, hey, what I said there is a statement that's indicative of me being consciously incompetent here. And this is a point where I could take this opportunity and push past it in order to make it to the next level. So were there arguments against this particular pyramid or this quadrant setup? Yeah, a little bit. But it was one of those, this one was actually much less than the others, but the problem again was basically the lines. If you can't draw the lines between these two stages, then how could you test your theory? How did you develop your theory to just make this stuff up, Mr. Author? Dude, this one's actually pretty easy.
Starting point is 00:35:15 You won't know intrinsically, but somebody else can probably tell you. Yeah. No, dude, you really don't know what you're talking about. Right. So that was a nice little triangle or square. Very nice. All right. And with that, it's that time of the show where we like to beg you to where if you would like to give back to us because we don't have anything like a Patreon or anything, even though people have asked us many, many times.
Starting point is 00:35:47 If you would like to give back and put a smile on our face, write us a review. We've got a link set up, codingblocks.net slash review. We have links over to iTunes or Stitcher, depending on which one you'd be more happy to do with. If you want to do it on Stitcher, you don't have to sign up for an account or anything. So yeah, if you'd like to, you know, put a little smile on our faces, please do take time, go up there and do it. Or you can drop us an email, too. I mean, we like getting those as well.
Starting point is 00:36:09 So thank you for all those that have taken the time to do it. And thank you for those that are considering doing it as well. Yep. And I got a special request the other day that we do a little bit more Google Feud here. So I had an idea for three if you're interested. I am definitely interested in, and we're not doing the survey says, right.
Starting point is 00:36:29 Because that just, that feels really wrong without outlaw here. Yep. No survey says today. Sorry. Yeah. All right. So yeah,
Starting point is 00:36:37 let's do some Google feud. Let's see how bad I write this. Yeah. And, the first one I came up here with, and we'll keep this short. Uh, just some supposed to be fun here is, uh, Google. first one I came up here with, and we'll keep this short, just supposed to be fun here, is Google. And what I did for Google is I said, is Google blank?
Starting point is 00:36:55 What do you think people said about it? Evil. Nope. Really? Yep. Is Google spying on me? Nope. Really? I expected that one spying on me? Nope. Really?
Starting point is 00:37:06 I expected that one too. You get one more guess. Something in the top five. Is Google... I don't know, man. I give... Let me try doing this in dog dindo just in case I am skewing the results here.
Starting point is 00:37:29 Okay. No, it's pretty much the same. So number one is, is Google down? That's the number one search term. Interesting. Number two, is Google making us stupid? Yes. Yeah. And then it just starts getting weird. First one
Starting point is 00:37:44 for me, actually uh when i didn't do incognito is is google voice free which is kind of an odd thing to be ranked so high i thought hold on let me go to google.com and do search is google oh select is google a number that made sense yeah i also like uh is Google a number? That made sense. Yeah. I also like, is Google a website? Yeah, most of these are really just, is Google Fiber in my area? Is it PaySafe, DriveSecure?
Starting point is 00:38:19 I like, is Google always right? Oh, man. How are you going to ask Google that? I will say this. Of all the digital digital assistants it's the most right yeah that's true oh man that's really good so i got another one for you um it's kind of in the same vein uh is facebook oh oh is facebook down that's got to be one yep that is number one okay yeah that that had to be one. People would go a little bit crazy without it. Actually, it's number three when I did it in incognito.
Starting point is 00:38:53 Is Facebook stealing my information? Surprisingly, not in the top ten. Maybe that's because Google kind of pushes that result down because I feel like that should be up there. Yeah. What's the other one? Is Facebook making us antisocial? Nope. Okay.
Starting point is 00:39:14 I don't know. So the first two, the first one is, is Facebook from Google? Wow. That's interesting. Second one is, is Facebook owned by Google? Really? Yep. Then we get Facebook down.
Starting point is 00:39:30 Then we get, is Facebook shutting down? Is Facebook dying? Going away. Yep. Is Facebook watch free? Is there a Facebook watch? I don't know. And then another one is, is Facebook free?
Starting point is 00:39:44 Yeah, not really. Steal your information. They harvest. We'll do one more here. And this time, I thought we'd do Is Twitter? Ooh.
Starting point is 00:40:00 Is Twitter down? That's going to be one. Yep, number one. Okay, that's going to be one. Yep. Number one. Okay. That's going to be one. Uh, is Twitter, uh, is Twitter going away? Yep. Uh, that is number two is Twitter dying. Okay. Uh, and then I don't know anything after that.
Starting point is 00:40:24 The next one is, is Twitter free? Really? Yep. Okay. And then I don't know anything after that. The next one is, is Twitter free? Really? Yep. Okay. And then is Twitter profitable? Presumably we've got some investors interested. And then is Twitter owned by Facebook? What is this with everybody thinking everybody's owned by somebody else?
Starting point is 00:40:39 That's really. Yeah. I don't know. So people think Facebook is owned by Google and Twitter is owned by Facebook. Huh. I think Google's skewing what they Google and Twitter is owned by Facebook. Huh. I think Google's skewing what they want people to know about these things. Yeah, definitely. Especially with like no one, none of them asking about spying or like, is no one really asking that question?
Starting point is 00:40:56 Is that not in the top 10? Well, this is interesting. I went to Bing. If I remember right, they were stealing result or searches from google oh yeah back in the day but it's all the same stuff is it down is it down is it down is it dying i did the facebook one it's interesting how how programmers think about people stealing data but the the the rest of the world is just like yeah whatever, whatever. It's what it is. Yeah. I hear you.
Starting point is 00:41:27 Oh, wait. Do you want to do one more top secret surprise round? Yeah, sure. Why not? All right. Let me get incognito back up. How about our design patterns? Ooh.
Starting point is 00:41:39 Our design patterns necessary. Let me redo this. messed up um yeah i'm pretty much our design patterns still relevant is number one okay cool i like that our design patterns bad yeah i mean like you kind of like hit the top five all the first one okay are they useful are they overrated are they important are they language specific are they only for object-oriented programming? Okay, those are good. Yeah. Hey, very much relevant still. Yeah, I still have
Starting point is 00:42:12 those questions myself, actually. Well, cool. So that was fun. Excellent. Hey, I'm going to do one for you here. Alright. Is Amazon down? all right is amazon down number two owned by google no no all right um profitable yes that is one of them it's in the top 10 is amazon prime video free number one i was gonna
Starting point is 00:42:47 say free but i was like no that's silly yeah and there's another one is amazon prime worth it if you buy a lot sure definitely is it coming to atlanta is it coming to georgia obviously incognito didn't matter at all here so yeah i mean they are definitely, you know, serving you results for your region. But yeah, pretty cool. It's all about prime and free, basically. And is it up? Yeah, there's a little insight into the human condition there. Exactly.
Starting point is 00:43:17 All right. So let's jump back into what we've got. Yeah. And the next learning model coming up here is we talked about deliberate practice, the Dreyfus model, and then the four somethings, the I don't remember what the four things were. The four stages of incompetence. Yeah, and now we're talking about the triangle.
Starting point is 00:43:43 And I accidentally closed the show notes but i'm back brief brief intermission brief intermission and yeah so now we're talking about the learning pyramid uh also known as the cone of learning or cone of experience and this is kind of similar to the other things we talked about it's just a different kind of slice on it it's basically how um i don't know how would you describe this is like uh basically how how much your given activity contributes to you actually learning and so it kind of starts at the bottom and works its way up um so they say that if you're watching a lecture it's only like 5% worth of value. So the return on your investment for that time is only about 5% if you're just passively watching a lecture.
Starting point is 00:44:33 Because you're just not going to retain it. Right. Interesting. And reading is 10%. I guess they're saying it's a little bit – I have a harder time reading sometimes than I do listening. So I take some – I don't know. I have a hard time with that. Reading, they say it's 10%.
Starting point is 00:44:53 Audio-visual, 20%. Hey, we're up there. Yeah, hey. So we got audio in there, but I think they want that visual component too so this is almost like if you're watching something with like some you know powerpoint uh as compared to just watching somebody standing up and giving a speech and i guess if you break up lecture and audio visual then yeah i mean if i'm just like sitting there watching somebody but i do love the podcast so i like to be out there mowing the lawn listening to something i definitely learn a lot learn at least of things to learn about when I'm listening.
Starting point is 00:45:26 You know, one thing that is interesting about the audio visual, they've, there've been studies done. Like if you've seen the YouTube videos, I'm sure you have. They drive me crazy where somebody is talking and they'll type the words up on the screen as they're saying them. When they try, they've proven that that, that retention is way greater when they have the words show up at the same time that people are saying the same thing. I love that. I actually, I turn it on captions for Netflix and stuff too now. Really? Yeah.
Starting point is 00:45:55 But then you're not watching the movie. You're reading the captions. Yeah, I know. But I love it. Yeah. I don't get it. I don't know why I started doing that. It just works out really well for me.
Starting point is 00:46:07 There's something about the words. I feel like when I watch a show and I pay attention to the words, I remember it. But most of them aren't that important, though. You're watching a show on Netflix. Yeah, they're not even right half the time. You're like, how did that get through? Oh, that's awesome. Yeah.
Starting point is 00:46:26 Or someone will cough or something, and it's like cats fighting. You're like, oh, it's like cats fighting. So that was audio visual. Demonstration, 30%. And I didn't look to see if that was like you and being involved in 30% if you're just watching it. But I'm going to assume that, you know, I think of like a code demo as being like a demonstration as compared to audio visual, where you just got some slides and some arrows. Yeah, I think so. And I take some umbrage with this one as well,
Starting point is 00:46:51 because I feel like a lot of times people feel pressured in like a coding talk to like actually show code executing and they kind of get nervous if the demo doesn't work. But like, man, I'll tell you, I've seen a lot of presentations and I believe you. If you tell me that something worked or it worked yesterday, but now the demo is busted because your trial license ran out or something, which happened to me recently. Like, I believe you. I don't need to see, you know, you hit compile in order to believe that you made a repository pattern or whatever it is.
Starting point is 00:47:21 But I will say there are times that just seeing somebody go through the motions makes that stuff less intimidating for the other people who are watching right because it's like oh oh i thought it was magic but you just did this click and you did that and it's i don't know it it almost instills confidence in the people watching and maybe that's why this is higher oh yeah i guess like you could do this too kind of thing exactly i just think about the times we're like okay first we're going to add the inputs and then higher. Oh yeah, I guess like a you could do this too kind of thing. Exactly. I just think about the times where we're like, okay, first we're going to add the inputs and then we're going to go over here to the controller and we're going to add it
Starting point is 00:47:49 and we're going to add the column to the model. I'm like, oh man, I know what you're doing. Fast forward. If it's vanilla stuff, but then again, you're probably not the target audience for people that are learning from the very ground up. That's true. So that was 30% for demonstration.
Starting point is 00:48:06 Now, here's where we do take a jump, and this is actually participatory teaching methods. So this is – I should have read this if we're talking about it. I think we mentioned we put the notes together for this a while back, so apologies. But participatory teaching methods is when you actually get people involved, and so you're kind of doing some hands-on kind of type stuff, a lead instruction and that,
Starting point is 00:48:29 that jumps all the way up to 50% effectiveness. That makes sense. So that's pretty cool. And then I'm practiced by doing a 75. So that's way up there. How is that not higher? If you're doing it, how are you not up towards the very top? Well, there's a lot of things I've done
Starting point is 00:48:47 that I've totally forgotten. Like every regular expression I've ever written. Okay, that's fair. Alright, and then the tip of the iceberg? Once again, teaching is going to take the cake here. Apparently when you try to teach others, you retain 90% of what you're talking about. And it makes sense because you don't want to tell somebody something wrong i mean we don't mind telling people wrong things but most people do yeah i think a lot of times um when you're trying to just kind of explain something that you know like it forces you to kind of organize your information a little bit differently and sometimes um when you get people those questions sometimes you think about
Starting point is 00:49:21 them in a different way or you need to go find the answers and so i think that's kind of where that comes from it also just kind of helps ingrain that stuff in there so it's funny like i'm the learning permit permit is one of the ones that has the most controversy around it where people just flat out say it's wrong where are the lines where'd you get these numbers from you know like these numbers are awfully convenient 5 10 20 30 percent like yeah i mean sure you could argue about the numbers. But I think it's pretty – I think how they've laid it out makes a lot of sense, right? The ways that people retain stuff. Now, obviously, this isn't going to fit for everybody because some people are very visual.
Starting point is 00:49:56 Some people like to read and they learn better that way, right? But I think this is a pretty decent breakdown. There's something about me and listening where like I can like a lot of times I'll remember like exact sentences or whatever from something I listen to. It's just something that I'm able to do for whatever reason. Particularly with podcasts, especially if I'm doing something physical at the same time. Yeah. Like if I'm mowing the lawn, like I can almost remember like the last three podcasts I was listening to as I was mowing the lawn. And I can almost tell you like where I was in the podcast, like on this hill or whatever. Um,
Starting point is 00:50:26 it's kind of weird. Well, I mean, your mind's not really engaged doing anything else. So it's weird how that works. And that's actually why I love podcasts too, is because when, when my mind's completely not engaged in something,
Starting point is 00:50:38 then, then I feel like I'm not wasting time. So, yeah. I wonder if there's something to that, uh, that would be kind of interesting. No, it's like if you're like kind of interesting to know. It's like,
Starting point is 00:50:48 if you're kind of at your capacity or if you're kind of mixing physical something and mental something, it takes up all your attention so you're not kind of left wandering and fidgeting or whatever. I bet it does. I mean, our buddy Carl from MSDevShow, he listens while he's working, which is just
Starting point is 00:51:04 a... Now, granted, he says he has to listen at regular speed but he retains the information dude i've tried it if i'm working my mind cannot focus like i'll either miss all of the podcast or i'll miss all of what i'm doing what are the other yeah i can't do it either there are times like there's things i'll do like i'll kick off a build or something it takes like eight minutes like i could i could listen to a podcast for eight minutes especially if my computer is like melting at the time uh that's so excellent yeah but uh yeah lots of controversy over this one uh all about those numbers like how did you get him how did you measure how did you test like uh say if you're like um doing a lecture and you test
Starting point is 00:51:45 um your testing after the lecture is over right if you're um doing participatory or practice by doing like um the time to actually testing may be a lot faster and i didn't quite say that right but like if um there's just problems with the testing method so a lot of times if you test them on days later the results are going to be different than if you test them the moment after and some some of the ways that they did some of the testing for this stuff was just kind of shaky on how they got the numbers. And a lot of it was done via surveys and stuff. So it wasn't a scientific approach. Right. And there's also kind of this notion, too, that's like, well, maybe you get different things out of the lecture and different things out of the participatory.
Starting point is 00:52:24 So was the lecture trying to teach you how to swim? If so, that's not going to work out very well, but the demo is probably really good. But if the demo is about the elements in the periodic table, maybe a lecture is a little bit more effective than teaching you the alkali metals and the gases, whereas the demo doesn't have enough. Seeing some stuff in little jars isn't very effective so you know maybe the actual material behind stuff has a big impact on the learning method too and the cone totally ignores that so that's why it's controversial but i did think that it's really interesting to see teaching up there so high and
Starting point is 00:53:01 i like it with all this stuff you got to kind of take it with a grain of salt but we do keep seeing like a lot of the same kind of themes coming up and so it's something worth like chewing on and thinking about and figuring out what works for you definitely and uh last one we got here um the learning styles and so um this one has also been um quite controversial people people hating on it haters gonna. And I'm sure we've all heard this before to talk about the seven learning styles. Like they used to say that someone might prefer learning using pictures. So you're a visual learner. I mentioned I liked podcasts. So they might say that verbal.
Starting point is 00:53:38 So I prefer seeing or hearing words as compared to somebody who is oral, which means that you prefer learning via sound and music somehow, which is kind of weird. But those seven types are visual, oral, verbal, physical, logical, social, and solitary. And the idea behind that is that some people might learn better than others in certain... What am I trying to say here? Like, say, for example, Alan, maybe you're a more physical learner than I am. Like, someone actually kind of shows your hands,
Starting point is 00:54:13 tells you which keys to push, and gets that going. Like, you might learn a skill better, but, like, I might prefer learning kind of via argument. I might get more out of something by kind of debating and having someone explain to me the reason behind why something works, rather than me actually kind of mucking around with a wrench or whatever. Yeah. So I kind of think about a carpenter, right?
Starting point is 00:54:33 You can look at all day how you should do something, but it might be easier for you to put your hands on a saw and see how that works. Right? Yeah. And one thing I've noticed for me is I've gotten into watching YouTube videos for house repairs and all the stuff's in blogs. You can read up a blog and it'll have pictures.
Starting point is 00:54:53 Read up a blog. You can look. It'll have pictures. It'll draw whatever. You'll see the forums. It's nice. When I watch the YouTube video, it actually shows the person doing the thing on the washing machine or whatever. There's something about that that I get it. Even if it's different washing machine, whatever, like I can actually kind of see it happening. And so I kind of wondered with this one too, it's like, maybe this is another case where the problem domain or the thing that you're
Starting point is 00:55:16 trying to solve is, has a big impact on how you need to learn how to do it. Yeah, that's, that's very true. I would imagine. I mean, in interesting, just side thought on this is when I used to do the headphone reviews and all that kind of stuff, I used to do blog, or they weren't blogs, they were written reviews, right? Just huge, tons of pictures took forever to make those things. And at one point I was, I was just curious what, how are people looking at the page? You can do what's called like a click stream, right? And you can see exactly where a person moved the mouse on the page and all that kind of stuff. Kind of creepy if you didn't know it existed, but you can totally, it's not real time
Starting point is 00:55:54 spying, but you can almost record what people do on the page. Dude, people would scroll all the way down to the bottom of the page, read the conclusion and leave. Like it was everything. And I think at the time I was trying to monetize with something like Google AdSense or something like that, or even click throughs to Amazon. I think, I think the first few months I made like $2 a month, like almost nothing. But then to the point of what you're talking about with videos, there's a level of involvement there that is that is way different than just reading and I could take that same product do a 10 minute review on YouTube and I want to say like the first the first time that I did that my earnings in a month was like a hundred bucks and and it was literally
Starting point is 00:56:40 same content same content the only difference was I was showing videos of the device or of the headphones, whatever it was and talking about it. And people are drawn into that more. And, and it was, it was easy to prove. Like I had months of no earnings and no clicks. And then literally, as soon as I went to that other medium, the, the level of, of involvement was just massive. So it's true when you see these things, I mean, and it's funny because trying to break these down, I know we're talking about learning styles, but it's just part of the human interaction. Sometimes people want to be drawn in by other people, you know? So, yeah, for sure. And I kind of wonder too, it's like, you know, I say, like, I have a hard
Starting point is 00:57:28 time kind of reading and like reading comprehension, I feel like later, but I also know that there's whole movies that I've sat and watched in the theater and I don't remember the ending. I can't tell you what happened anymore. So it's like that stuff just went in one eyeball and out the other for whatever reason. So I do think there's something to be said for different things and different kinds of level of involvement. And it doesn't necessarily mean that I didn't like the movie or anything. I just, for whatever reason,
Starting point is 00:57:51 it just didn't stick with me. And so, uh, you know, there's, uh, some controversy around this and all this stuff, like,
Starting point is 00:57:57 you know, the, the five different types and the kind of controversies around it. We've got links in the, in the show notes here, but, um, you'll see that there's just a lot of the same kind of things to say it's how are you measuring this is it really accurate
Starting point is 00:58:08 like so if i say like i'm an audio learner maybe what i'm really saying to you is that i pay attention to things with my mind when i'm mowing the lawn and i do a lot of mowing lawns and what i'm saying also on the other side of that is like well i try reading right before i go to bed and i get really sleepy because that's you know my And so maybe it's not that I'm a better learner one way or the other. It's other circumstances that are, you know, changing kind of how I prefer to learn and don't actually mean anything like systematically. So I am curious, like you kind of had this, the, the series of podcasts that we've done on this now like what drove you to finding learning styles did did you feel like you were struggling to
Starting point is 00:58:53 learn some things and you wanted to know how to like were you trying to hack your learning or what what was it exactly that that drove you to dig into this yeah sure it's basically i'm just trying to figure out kind of like what anyone listening to us is listening to us for. I try to figure out like what's in common, like what are people doing in our Slack? What are people doing commenting? Like,
Starting point is 00:59:13 why are people listening? Like, what are they trying to get out of this? And what I kind of like theorize is that, um, the people listening to, you know, technical podcasts want to be better programmers.
Starting point is 00:59:24 And so I got me kind of thinking, well, how do you do that? How do you help people? How do I get to be a better programmer? And so I read a bunch of different books. I think like the Dilbert Practice Talk, I mentioned like five separate books and different things that kind of pulled out from each of them. And so I just kind of amassed a whole bunch of information. I wrote a couple of blogs on it over at the Coding and um and just put together a whole bunch of notes and so i was just really trying to understand like what it means to be good and what it means to
Starting point is 00:59:49 you know or how you get better at something okay cool so it was sort of trying to figure out how we can best provide information to to everybody listening yep and i was also greedy to make use of it myself. Fair enough. All right. So I think that that go ahead. I think there might be a dog whining at the door. Sorry. I don't hear it at all. Okay, good. Then nevermind. Yeah, there's, there is no dog. So the resources we like for this,
Starting point is 01:00:23 we've gone over several of the chapters in one of them, the imposter's handbook. And then we've got several other links to describe the various things that we've talked about above, as well as we have links talking about the controversy. So if you just want to dig in and find out why people say these are terrible or whatever, that's a good place. Have you ever found too that an argument or a good debate makes things sink in i i find it ironic that almost none of that has shown up here yeah the only the closest thing i saw there was where was it in the i think the drive us model which basically talked about kind of um like
Starting point is 01:00:56 documentation or experiments i kind of thought like when they said experiments like as opposed to like a playground project i kind of thought maybe that meant more like thought experiments like where you kind of pause at something you like get it beat up, and have it shake the truth out. It's funny because some of my – I still remember the conversations, and it's kind of ridiculous, but comments. Our buddy Will Madison, he had – at one point when we all worked together, we had this hour-long debate about whether comments were good or not. And he sort of swayed me to they're not.
Starting point is 01:01:31 And then we read Clean Code and all that kind of stuff. I was like, I totally get it right now. I hate comments. But it's funny how those things do stick with you when you have a very heated or passionate debate about, you know, why something is or why something isn't. So it's kind of ironic to me that that's not part of some of this is, I don't know, having those, those real conversations.
Starting point is 01:01:55 Yeah. It's a really good point. And that's why I like doing the show so much. Yeah, true. All right. So now it's time for my favorite part of the show. It's the tip of the week,
Starting point is 01:02:04 which I totally didn't prepare for. So I'm going to have to find one. I guess I'll go first then. Yeah, man, go ahead. Yeah. So there's this website called dev.tube,
Starting point is 01:02:15 which is basically like a curated list of YouTube videos and channels. And so if you go there, you can go and like find a bunch of like programming videos and talks and stuff from conferences and whatnot. And it's got really nice features for discovery. So you can look for tags on, say, JavaScript or machine learning or whatever and just find tons of videos and even have rankings. So you can sort by machine learning, most popular, and just chow down on tons of free content. And it's just dev.tube. And Codebox is not there, but we're going to be.
Starting point is 01:02:47 I actually looked up, at least I hope they accept my submission. If you've got your own videos, like we've got our own videos over at YouTube, there's a process there that's kind of like you go through GitHub, essentially, and you kind of add your stuff there. And if it gets approved, then you'll get your stuff added. And it looks like they're adding stuff all the time, staff picks, all sorts of stuff. And so it's pretty cool.
Starting point is 01:03:10 And it's amazing to me just looking at how many of these videos I haven't seen or haven't even heard of the channels. And so there's a lot of awesome content out there that you could be watching right now. Most excellent. So I guess I'm going to do mine, even though by the time this thing airs, I will have probably finished my talk down at Ignite. But I might as well give you a little piece of information that I found out with Azure Functions. So in short, you can only have like one function per project, which is kind of
Starting point is 01:03:48 interesting. So if you think of, so if you're not familiar with Azure Functions, it's basically this whole notion of serverless computing, which is AWS has their version, it's called AWS Lambda, Azure has theirs, it's Azure Functions. But it's basically almost like web services that you don't have to host a machine. You don't have to patch the machine, any of that kind of stuff. When it runs, you pay for it. You get to use it. When it's not running, you don't pay anything, right? So that said, one of the frustrating parts for me was typically in a function,
Starting point is 01:04:24 if you're doing Azure functions, you're thinking like services, like microservices, basically. And code duplication was one thing that really bugged me because each Azure function, if you're going to have two web triggers, for instance, which are basically just HTTP triggers, you call a website and then it's going to fire off the function. If you have to use the same thing, like let's say it's an accounting thing, you have a calculator class, right? The way that you have to share, it's not like you would have a VSTS solution or something or a Visual Studio solution file to where you just share this project between things. You can't do that. There's a few different ways you can do it. You either have to create a NuGet package that you could then load in or an NPM.
Starting point is 01:05:10 If you're doing JavaScript, you know, depending on what your language is, pick your package manager and you can do it that way. So that's one way you can share classes. Another way is in Azure Functions, if you're doing C Sharp, they have these CSX script files and you can actually do a pound load, which will allow you to load in a CSX file from a shared directory, right? So here's the interesting thing.
Starting point is 01:05:38 The Azure Functions all have to be in separate projects, but you can have a folder that's in the same space because it's basically, if you think about it, you have to have storage for your functions. You can have a folder that's in the same space because it's basically, if you think about it, you have to have storage for your functions. You can have a folder that's accessible from all these different functions to where you can share those same files. So you can do a pound load. And then there's also another way, and I want to say it was pound ref and I'd have to look it up, but, but just know there are ways to share things. They're not the most straight, like you wouldn't have thought about it just off the top of your head, right? Cause But just know there are ways to share things. They're not the most straight.
Starting point is 01:06:05 Like you wouldn't have thought about it just off the top of your head, right? Because you typically think about deploying your assembly or your program. So there's these other things you have to think about up front. So if you plan on getting into serverless and any of that kind of stuff, know that there are ways to share files. It's not going to be obvious or share classes, but that's how you go about it. Oh, very cool. Yeah, it was really neat, And it's really one of those things that's frustrated. It's kind of like the Docker thing I mentioned earlier. When you start out, you're like, okay, cool. I got this.
Starting point is 01:06:34 Wait, now I need to do something with it. Now what do I need to do? Right? Like it's just, it's that constant learning thing, right? So I was somewhere in between the novice and the beginner levels on that one section. And one other thing I want to point out, I guess this is a super long tip, is if you haven't played in the cloud, this is one of the most awesome ways to get started because it's so dirt cheap. So I have an Azure function up that I was working with to do this talk, right? I want to say, so the storage is separate. You have to pay for the storage. I want to say I paid 30 cents for the month, something like that. It's nothing. But then they also have their pricing calculator, which is really cool. And I'll have a link on here to all this stuff. I have to find them all, but they do things in what's called a gigabyte per second compute. I want to say is what it is
Starting point is 01:07:31 in a nutshell. It's it's dirt cheap. So you first get a free grant of 400,000 gigabyte per second things. And what it boils down to it's consumption based. So the amount of milliseconds that your functions running times the amount of Ram in gigabytes that you're doing. And they have an example here that's, that's kind of interesting. I'll go through it real quick, just to give you give you an idea of how cheap this actually is. So if you have 3 million executions of your Azure function in a given month, and they take a second each, so 3 million seconds, let's say that these things took up 512 megabytes of RAM.
Starting point is 01:08:19 So you divide that by 1024 to get your gigabyte of RAM. It goes down through all the calculation, works it all out. That thing would have cost you $18 a month for 3 million executions at a second each. And it auto scales it all for you. So that's one of the cool parts about it, right? As it runs, if it sees that it's taking too long to finish a request, it's got its own heuristic to figure out, Hey, we need to scale up and run more of these things. So even though you're getting this scale, you're not paying any extra for it. You're paying $18 a month. So really cool stuff. That's my super long winded tip. Yeah. I was just looking at how much QIT is costing us
Starting point is 01:09:02 right now. And, uh, it looks like it looks like we just passed the billing cycle. So it's estimated for the next billing cycle, it looks like we're going to hit one cent. Very nice. You know, roughly 25 days into the billing cycle. And that's because you're using the free Azure services, right? Yeah, but it does do serverless too. It's got a trigger, which is something you can do with serverless.
Starting point is 01:09:24 You can say, like, I want this to run, like, every couple hours. So that's what I do for checking the feeds to see if anything's updated. But it just, like, the actual feed loader thing only runs in a couple seconds. So it's basically every day I'm running this thing for much less than a minute. So are you using an Azure function for that? Yep. Okay, so you're using the HTTP or using on a scheduled trigger. Yeah, the timer trigger.
Starting point is 01:09:45 The timer trigger. Yeah, so all your executions, like I forget how many are included in there, but you have a bunch of executions that come free. And then after that, you know, like I said, it's a nominal charge. Yeah, I think I'm doing like five day or something. So it's not anywhere near it. Yeah, you'll never touch anything. The one cent is probably the storage account. that's probably just the file storage on the
Starting point is 01:10:09 system it's i mean it's truly if you want to get into cloud services and just see what it's about get you an account okay you hook up a credit card just don't do something stupid that you don't realize that you're doing like because you did unfortunately we had some money in the bank so it wasn't a problem but um but yeah i mean if you're doing redundant storage with you know multiple region failover and that kind of stuff you can get into some cash um but if you just go with the free tier stuff and and you can even set your caps in there for it man it's a great way to learn this stuff. Shoot, I was just looking at Azure and I'm wondering why I've got a service
Starting point is 01:10:51 named delete me now. Well, I'm kind of scared to delete it. Dude, I am the same way. I have code like that that I'll look at and I'm like, wait a second, why didn't I delete it back then? Yeah, exactly. That's exactly what I'm thinking. Like, oh boy. So I might have just taken QIT down. I don't know. Oh man, that's
Starting point is 01:11:12 awesome. Alright, so yeah, wrapping up, you know, Joe kind of walked us through the different ways to learn. So yeah, if you forgot any of these models that we talked about, we've got awesome show notes. So, go check those out.
Starting point is 01:11:28 Yeah, and let us know, too, in the comments if you've got anything that you've kind of learned or any kind of learning hacks that you think have worked out really well for you because I want to steal them. True. I want to learn from somebody else how to learn. So, yeah. With that, subscribe to us on iTunes, Stitcher, or more using your favorite podcast app. Be sure to leave us reviews by heading to codingblocks.net slash review. And while you're up there, as we mentioned, check out our show notes, examples, discussions, and more. And send your feedback, questions, and rants to the Slack channel at codingblocks.slack.com.
Starting point is 01:12:01 You can slide up there at codingblocks.net slash slack. We'll have a little form. And make sure to follow us on Twitter at Coding Blocks, or you can go to Facebook or anywhere else. We've actually got a bunch of social links there at the top of the page. That's it? That's it.

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