Inspired by a blog post from earlier this year that stated learning is hard, we discuss our different styles of learning. We also discuss learning from the other side where we are helping other people to learn and how we teach and coach. We move on to explore the difference between “Just in time learning” vs “Just in case learning”? How the difference between these two can help people new to technology utilize these ways of learning to relieve the pressure of “keeping up”.
ReferencesDownload MP3 (31.7 MB)
Toran Billups - 00:13 - Welcome to Developing Fatigue. I'm Toran. Today, I'll be joined by my co-host, Kris Van Houten and Brandon Williamss and today we're going to be talking about learning. This is kind of inspired from a hacker news post of all things earlier this year that stated something like learning is hard in 2018. Now, learning is kind of an interesting subject. Uh, there are many different styles of learning and so maybe to get a definition and get some idea of what these different styles look like, we have to spin it over to our man Kris Van Houten. Kris, what's up?
Kris Van Houten - 00:39 - Not too much, man. Just enjoying this hot, humid weather in North Carolina right now, which really means I'm not enjoying the weather right now. But yeah, so I think when it comes to, you're talking about learning styles, I feel like whenever I sit down with somebody for the first time, uh, because I'm someone who's historically wrestled a lot with learning, one of the first questions I ask is how do you learn? Because there are people who learn by doing. There are people who learn by just reading a series of blog posts and somehow they had this magical ability just to retain everything. So I feel like for myself, I've historically been someone who learns by doing, and I know Brandon, you're on the opposite side of that spectrum where you tend to learn by, uh, by teaching and, and kind of by, by listening to yourself. Am I right?
Brandon Williams - 01:26 - Yeah. So actually, um, I had this great three step process that I follow or I've identified, this is how I learn. I am a see one, do one teach one type of person. I'm like, if you and I are gonna sit down and we're going to pair up and you're going to teach me something new. I just want to sit there and just absorb what you're doing. I want to watch. I'm like, the first time I was learning them, first time as learning emacs, I just sit there and just watch. I'm like, okay, how are you doing that? Um, and then I, you know, after, after a while I say, okay, now it's my turn and I get to practice it. And you know, that practice phase, like each one of these phases could be longer or shorter, just depending on what I'm learning, how engaged I am and where my mental state is that time. And then after you've transitioned through those first two, have seen one doing one, then it's my turn to go turn around and teach somebody else how to do that thing because that's when I feel like you really solidify like I know this thing enough that I can go show somebody else.
Kris Van Houten - 02:24 - Nice. Nice. That's funny because I'm like the opposite of that entirely. If someone was to come and sit down with me, be like, okay, like let me, let me, let me show you how I do this and you're just going to like absorb all the stuff like that is, that is like the worst way for me personally to learn. Well. So I think it's really interesting to see and hear about how other people learn. Um, especially in that regard because for me, and this is something that I've actually gotten some complaints from people in the past because instead of reaching out and asking for help, I just sit there and I stew at my desk and tried to work through problems on my own and sometimes this is, this is frustrating because, you know, if I'm working at a new technology, maybe I don't understand the whole methodology behind it.
Toran Billups - 04:06 - Yeah, I think just like you guys, you know, I have to get my hands on the keyboard. Traditionally I am unable to read a book about something and then be an expert in whatever platform framework language that is. I have to really get some miles, I guess get some miles with that on the keyboard and kind of fail. So nothing too interesting there. Just learning by doing. Yeah.
Brandon Williams - 04:29 - That's something that I, I've, uh, I've identified is that early on I thought that this is how everybody learned. Like as, as a young person just like, oh, that's, that's just how everybody learns. So, um, you know, we're going to pair up and I'm going to do, I'm going to show you how to do this and so Kris and I would pair up and I'd be like, all right, watch me do this, and you'd be frustrated because you're not learning. And as a, as I've gotten older, my mentors have really said, hey, make sure that you're approaching it and you're helping them learn. It's not your. They actually said because of the way that I like to learn and because of the way, you know this, see one, do one, teach one. When I would go to teach and think that that's how they want to learn as they want to see one first.
Brandon Williams - 05:11 - They're like, it's not your job to impress them. It's your job to help them learn. I was like, okay. So I'm turning that mindset around insane. How is it that you learn? Do you want me to sit here and let you, um, you know, uh, and teach you by coaching you through walk walking through that problem? Or do you want me to teach you by showing you how to do it? Um, do you want me to teach you, just buy a kind of guiding you saying here's, here's the general direction. No, go figure it out on your own and I won't sit right next to you or hover over your shoulder type of a thing. So just helping them learn the best way that they can.
Toran Billups - 05:49 - Well, yeah, I ain't got to call out you, uh, you mentioned pairing. I don't think that's Kris as a learning vehicle of choice.
Kris Van Houten - 05:56 - I, I just suck at it.
Toran Billups - 05:58 - So we love you Kris.
Kris Van Houten - 06:01 - But I think on top of what Brandon's been saying, I think also, you know, if your just starting out at a new company, obviously you're going to be sitting down if he's hopefully with some people to kind of get you up to speed to show you the code base, what it looks like, what technologies are you using, how your application or applications are put together. And I think, you know, so if you're someone just coming to a company, whether you're a junior, senior, whatever, uh, you know, keep that in front of your mind as you're sitting down to those first few days. And you had those introductory conversations with people to say, Hey, like just saying like I really learned by doing so there's some, there's a way we can kind of cater this to me actually getting the code and touching stuff and tinkering around.
Kris Van Houten - 06:45 - Like I'm going to learn a lot better than just having someone kind of tell me how everything works. And so, you know, I encourage you guys to really kind of take that upon yourself to let your, your teammates or your bosses or whoever know that if he's, whoever needs to know in those situations how you learn best that way, you know, they're not wasting their time and you're not wasting wasting yours. So I'm so very cool. I like hearing how people, people learned that. It's really interesting topic for me. Uh, and again, like I said, it's one of the first questions I tend to ask people when I start working with them. But obviously we work in 2018 where there's tons of new technology to learn. There's tons of stuff always coming out every week. Everyday on twitter there's, hey, check out this new tool that does X, Y, Z better than ABC.
Kris Van Houten - 07:31 - And so I was curious for you guys and I definitely wanna hear from you, Brandon, being more on the devops side of things, what are some triggers that a kind of point you to needing to learn something new?
Toran Billups - 07:45 - Wait, you guys learn new things. Have I been failing Kris?
Kris Van Houten - 07:52 - Um, yeah, yeah, I mean every once in a while
Toran Billups - 07:53 - there's new things to check out.
Kris Van Houten - 07:55 - Well I guess I, I think about for myself, there was a podcast on the or an episode of the Tim Ferriss show probably like four or five months ago now and he had this line that has resonated with me over the last few months and it's the difference between them just in time learning and just in case learning, uh, and you know, to kind of vet that out some more. We have these things that we learn a just in case like I need to learn how to manage a Mongo database just in case I ever have a job that uses Mongo
Toran Billups - 08:30 - and it doesn't need to retain any data yet.
Kris Van Houten - 08:32 - I was waiting for, um, but then you have the other side of that, of that coin, which is learning just in time, so you foresee in the near future that you're going to have to learn or use this certain technology, whether it's react or view or a low dash, I don't know, whatever it might be. And so you see like, hey, in three months I'm going to be needing to be productive in this code. So let me learn it now when it's necessary. And sorry, I know I'm ranting, but I just want to share my story. Learning react for example. Uh, and then I definitely take it back to you guys to hear your input on this. But you know, about a year and a half ago I decided I need to learn, react because it's all the new hotness right now. And if I don't learn it right now, I'm going to be out of the, out of this industry for good.
Kris Van Houten - 09:18 - And so I learned it, but then I didn't use it. And so over the last year and a half I've basically forgotten it and barely know anything about we had again. And so I'm like, well, that kind of stinks. That was, that was time wasted in my opinion because I learned it just in case. Whereas no, I decided, you know, what, I want to start using react. I want to start using it in my personal projects because I want to, uh, I've been tinkering with it a little bit over the last couple of weeks. I'm like, I have a few things I want to build. I want to build it and react and so I actually want to use it now. And so now I'm learning it using the just in time approach where it's like, now I'm, I'm personally vested in this and it's not just something I'm going to forget about it in two weeks because I'm not actually using it at my job or my personal time. And so, uh, that, that's one of the, I don't want to call it out as we talked about, like what triggers us to learn something, but I was curious a Toran and Brandon, if you guys have any examples of what kind of triggers you guys to learn new things or you know, examples that whole just in time versus just in case learning.
Toran Billups - 11:06 - And the real, I guess the real outcome I was hoping for was a job where I could do a single page APP development. I was very interested in that beyond just a hobby. And what I thought at the time was any way that the back to your point about just in time versus just in case is that, you know, I could just in time learning on the job, but for the most part I didn't really feel like I would be able to invest that number of hours and it might take, I don't know, let's just say three years to just in time learn how single page apps were done way back then. And I feel like, and about six months heads down outside of work nights and weekends, I didn't really become an expert. Especially ember was, was still very young. And evolving even the API back then, but I got in early enough that kind of hooked me. And then continuous learning that happened afterwards was just kind of part of the story. I didn't really feel like work. It didn't feel like anything. Not enjoyable. I loved it. Um, so that was kind of mine, that motivation to go do some new tech that isn't really happening yet, but you sort of have a strong conviction that it will be the future of APP development. That's what I thought at the time. And you got to get some experience, right?
Kris Van Houten - 12:09 - Yeah. Yeah. So you kind of in a way that that is definitely falls under just in time learning because you're learning it so you can use it soon, you know, maybe it's true. Maybe that might be at the next Gig. Even. So Brandon, did you have anything you could add to that, to that whole storyline here?
Brandon Williams - 12:25 - I do. But before that, I want to kind of highlight on something that torn just said he, he said that he got in early and he learned, he spent a lot of time learning the ember, the framework, and then as it, as you grew with the framework, it wasn't work. It wasn't hard. It was he just continuous learning. So, um, something I want to really call out here is that if you do spend some time and really go deep and understand that that topic, maybe correct me if I'm wrong, Toran, but at that time you're just, the learning that you're doing is more maintenance and it's, it's more just, how do I see, you know, just I have to learn one new thing, one new thing, one new thing instead of, oh my goodness, I don't know anything about ember. I'm coming in, in the project is two years old. I have two years worth of stuff I have to try and catch up on and then I can start just doing learn the one new thing and the one new thing. Can you speak into that a little bit maybe?
Toran Billups - 13:20 - Yeah, I think that was my original thought on this whole, uh, topic of learning or is learning more challenging today in 2018 specifically for the web developer. That was the context I was thinking of because like you mentioned a way back when you just had a single file, right? Index html and you wrote some CSS. He wrote some html, it was all in that file and over time that's evolved right now we actually have this separation of the client from the server and we have different APIs and different patterns, graph Ql, json API, things like that and all these different things. As you mentioned, Brandon, there sort of things. I've had the luxury to learn over time, so every time I pick up a new thing it's just like, oh, it's just one new thing. It is just kind of a maintenance tax versus someone coming in today and maybe out of a bootcamp who feels overwhelmed by the sheer number of things they have to learn.
Toran Billups - 14:10 - In fact, I challenge you guys just maybe outside of the show here to write down all of the little things, you know, all the command line tools, uh, all the source control stuff you're doing and write all that down. Stuff that you just, almost like you don't even think about anymore. It's just muscle memory. And one time I did this like maybe a year and a half ago and I was just surprised or maybe shocked at all of the things that I just assume. And as a result I sort of give them no value. I'm like, oh, of course I know how to get a used get and that if I've committed something and blew it away, I can go back into the raft log and pull it out. Like little things that we often take for granted. But to a beginner, they're like, ref what? And so like you, you had this time was like the frog analogy.
Toran Billups - 14:52 - Know I've just kind of been sitting in the pan getting boiled over years versus jumping in and being like, well this is really hot. I better get out of here right now. So I think there is something to that and you know, that is probably why this topic is so on my heart these days are so close to my heart is that I really feel for new people coming in and they're very hungry, very smart. They have the aptitude, the right attitude. But to be honest, they've got a lot to learn. Um, so that's why I like to Kris's point about just in time versus just in cases that channeling that back to my younger self, I felt a lot of pressure to oh I have to learn, react or I have to learn ember or rails or elixir because you know, if I don't I won't have a job. And that was actually a lot of the pressure of the undue pressure that made it just in case. And I don't like just in case learning. So that's my small rant today is do yourself a favor. Younger developer or somebody feeling some anxiety about this is just become a good problem solver, a good developer and all of these frameworks and things will fly past us in our career and it'll be fine. You'll learn those things as Kris said just in time when the time is right. So rant over.
Toran Billups - 17:11 - Love that man.
Brandon Williams - 17:13 - So some, if I can jump in with an extra, uh, an actual example of a failed just in case, just in time example,
Toran Billups - 17:21 - those are the best,
Brandon Williams - 17:24 - uh, about a year and a half ago, our systems team said we're going to start using docker. And our first application of docker was in batch processing. So all of our batch jobs, we would get some code base from the developers and we'd have to um, rvm creating rvm gem set and bundle, install into their and use the right version of Ruby and um, all that stuff. And so it was very painful. Set up batch jobs for the developers come along and like, hey, docker can solve that because we just do docker run, we don't care what's inside that container. The developers figure all that out and they manage that and then we just do docker run and it's changed our batch processing. So not every team uses docker. Um, um, but anyways, so about 15 months ago we decided, hey, our team is going to do some training on docker to level up our whole organization. We started doing that and we thought this is just in time learning just in time teaching.
Brandon Williams - 18:23 - Um, but not like I said, not everybody was using it yet and we weren't using docker for our web applications. That wasn't until about six to nine months later. So by the time that rolled around, all the developers had gone through the first round of training on this is how to use docker. But because they weren't using it at that time, all that teaching that our team did was just for not. And by the time they were actually a dockerizing, their web applications, they were struggling again because they had forgotten it. Because it wasn't something that they were using, it was more of the just in case they were going to use docker for docker batch and they weren't using it for their web application. So that was a very failed example. And so I'm getting a lot of, uh, we're getting a lot of requests now. Like, Hey, can you help me understand this docker stuff now, you know, a year later. And so we're, we're gonna circle back around and we're going to do another training and say, okay, now everybody's using it because all of our web applications are dockerized.
Brandon Williams - 19:22 - So this is something you're using on a daily basis and if you're not currently in the next month or two, you will be. So this is truly just in time, um, as we convert all of our applications over.
Kris Van Houten - 19:34 - So I want to pivot over a little bit if we could sue. So we talked about what are different learning styles are, uh, you know, what kind of triggers the need for us to learn something and what that looks like. But I like to Kinda dig in a little bit to how it is that we, we, we learn. So I know, you know, we talked about like I'm a visual learner, I learn by, by doing or the see one do one teach, one methodology is. But I'm curious like if you're just sitting at home at night or throughout the day whenever and you find yourself wanting to dig into a new piece of pizza technology, what does that flow look like for you to do start learning it? So I know Toran, you've talked about over the last eight or nine months you've been looking at learning or even actually learning overexert. I was wondering if you could share a little bit about what that process has looked like for, for you?
Toran Billups - 20:25 - Yeah, a little shame. I haven't actually touched elixir since April 15th. I know that date because it's the last commit on get hub when I was actually actively reading and committing. But anyway, no more shame. I'm going to get back into it later this year. I just know it. Uh, but yeah, when I was learning it, I took actually a different approach. It is new technology, it was new to me and rather than do what I did in the case of ember or honestly when I was learning Django or pretty much any tech from back in the day where I started at the highest level of abstraction, meaning I picked up the framework and didn't really care about any of the underlying primitives and just kind of used it until something broke. And then I learned about the thing that broke by reading about it this time around though with Elixir, the technique as you're calling out here, Kris, that I wanted to use those instead of top down.
Toran Billups - 21:13 - I wanted to go bottom up. And the idea was that, you know, I, I'm not using Elixir at work on, no one's calling me for an elixir job yet. Wink, wink and a versus like torn. I've gotten no elixir job for you. But, uh, no. I mean one day I hope to do some elixir. It's actually really interesting. Distributed computing is sort of fascinating to me. Um, long story short is I started at the bottom with this really primitive idea in elixir called a process and I just sort of slowly worked my way up again because productivity for me, uh, was not defined by shipping an APP. And so that, that might be, you know, learning new tech is probably context sensitive like learning new tech at your job to remain employed might be just picking up rails, doing rails new and, and there you go.
Toran Billups - 22:00 - But for me, in this case, you know, I wanted to start at the bottom so that I understood every piece of the stack that by the time I got all the way up to plug in Phoenix and these other things, he's abstractions that I already knew how everything worked. In fact, as a result of getting that high, I'd probably already built a mini phoenix or I'd probably already built a mini plug in and use those abstractions as I climbed my way to the top. And what's kind of interesting or the reason I took this approach is that when I get up there and I hit any stone or I fall down along the way, I pretty much know every piece all the way down to the bottom of the stack, something that I honestly have not done at this point in my career. And I worked with this guy a few, a few jobs back and I felt like he knew every primitive to every system, all the way down to the kernel level. And I still just have him in such high regard a, b from that experience. We work together. And so I kind of want that for me, you know, selfishly want that for me. What about you, Kris? Bottom up top down where you think so?
Kris Van Houten - 23:41 - And so there were several things, even after working in ember for a couple of few years for, I was like, I have no idea how this works. It's still magic to me. Uh, but that's just how we do ember. And, and so I've realized that there's some negatives to that approach. And so, you know, something that I've been doing with how I've been learning react is kind of similar to what you've been doing. Toran where it's like, you know, maybe not as in depth as what you were doing with Elixir, but just going through like the react documentation on their website and just reading through the entire getting, getting started guide and even if I think I know jsx or I've used it in the past here and there on random things like read the article that they have written up on that and I'm always learning something new even if it's just one sentence of an entire page of information.
Kris Van Houten - 24:29 - And so it's just, it just kind of refreshes my memory. And then an evernote, which is the note taking application that I use right now. I basically have a template for new technologies that I learned and it has sections for various things about the technology that I'm learning. So if I'm learning react, I have a section for like, you know, what are some terms that this framework or this tool is using a that I should probably define because these words are getting used a lot. So like I know for example like cycle js. It talks a lot about engines and, and, and what is it? Buckets. I think I'm good. Yeah. So that there's, there's engines and there's their sinks is what it's called. Oh my, you know, so you spend a lot time like what, what does it sink in? So I have a section where you got kind of just to find out all those terms and then you know, I have a section for like what are questions that are coming up I should probably dig into as I'm going along.
Kris Van Houten - 25:21 - And then I have a section just for general notes and there's a few other pieces to that as well. But like that's kind of been. I've been a hardening up my learning style or last few months is by focusing on that method. So it kind of bottom up and correlation with the whole like just in time learning is I want to start using this technology for myself but also trying to do so in an organized fashion because I'm an organization junkie. But um, that's my approach. I wasn't sure a Brandon. And what do you got something like totally mind blowing to, to kind of drop on us. That's totally different than anything we're saying.
Brandon Williams - 25:53 - Actually, I'm just gonna come at it from the complete different angle of Youtube where I actually find that most of my learning is top down and I think that's because um, I find that I liked being the generalist and my role really leads me to be that generalist. So I just try and learn as many new things as I can and I know how to go deep when I do need to go deep. And so I'll, I'll figure that out when I, when I need that, try and do that just in time learning that we talked about earlier. Um, but I, I've found that I am the most successful than I would. I just have that really broad, um, skill set and I may not know right now, but I know I can go no that deep if I need to.
Kris Van Houten - 26:40 - Yeah. Yeah. So you don't feel the need to go deep initially until I need actually arises, you're saying
Brandon Williams - 26:40 - right, yeah
Kris Van Houten - 26:47 - And you are not. I know you're a smart dude, so you feel confident basically saying like, okay, well now there's this need to go dig in deep on this one area of a docker container docker setup and you can in you're accountable just digging in and saying if I can figure that out.
Brandon Williams - 27:00 - Exactly. Yeah. That's just a couple of quick examples. We use the tool and supple and I didn't totally understand how, um, something called an action plugin worked. I'd used them for a month or two and then I needed to write my own action plugin. I said I don't really know how these work yet. So I spent, um, a good two or three hours just digging down into one action plug. Insane. I know it does this thing, how does it do this thing? And then, um, uh, just seeing how somebody else implemented one diving into the source a little bit, coming back out. Um, I remember an another quick example was we're using, um, the agent it was, it's a ruby thing to get your logs off your boxes. Um, and we didn't understand how it was we needed to configure it to use TCP connections instead of UDP. So we dove down into the source and figured out, okay, so if we tweak these two settings and we can see what it's doing right here, I'm one of the guys smarter than me. That actually kind of helped me navigate that and uh, show me like, Oh, if we tweak this thing right here, this old work, just the way we want. So just kind of navigating that. Um, but that, I mean that, that kind of stuff is the stuff that I know I can do if I need to do it.
Kris Van Houten - 28:22 - Brandon is drop a whole bunch of acronyms. I need to go google now.
Brandon Williams - 28:29 - Uh, another, another episode.
Toran Billups - 28:34 - No, I love Brandon's perspective. They're on top down because yeah, one thing I want to make really clear as top down, bottom up, sideways, out of a dumpster. I, whatever you do, it's context specific. And as we hit on, learning styles are very tailored to the individual. So whatever, you know, whatever your successful learning, however you are able to do that. I think what Brandon and Kris were talking about as far as confidence, that's the reason that I've struggled to work top down is I'm a am I guess an imposter like Kris here and I sort of feel like I'm not capable. I'm, but I've seen Brandon actually do this in person and it is phenomenal. This guys is a beast. So pray praise to you on our brand. And one day I hope to have the confidence to work top down. I guess that's less than learning. So let's dive into some big wins here. Um, I'm gonna start out just by sharing that, uh, I've learned recently I'm going to be doing some more mentoring. So back to our mentoring episode. Shout out episode three.
Toran Billups - 29:27 - Uh, getting back into that. I haven't done really any pairing since late 2015 so I'm kind of excited just to get back into fulltime pairing or cause I full time to kind of help grow and mentor somebody who has the right attitude, the right aptitude. So, um, what about you Kris? What's your big win?
Kris Van Houten - 30:46 - And I was like, well, like, I don't want to bring in this whole CSS library to do functional CSS. What if I just try this whole like CSS and js saying and that way if I'm going to hate it, I hate it from a position of knowledge that I used it and it sucks and I actually found it really enjoyable. And, and I find that in programming sometimes you had to get out of your own way if you're going to move forward and you know, whether that that's shifting your mindset to learn something like typescript or to learn a whole different language like elixir or a whole different philosophy on how to do CSS, which is like CSS and js or even functional CSS, sometimes you had to kinda have to like let your biases to get out of the way so you can look at something for what it is and be like, oh, like this is actually really useful and in many cases. And so I guess that's a big one for myself. This continually learning to get out of my own way so that I can learn good things. So what do you got, Brandon? I want to hear. I want to hear what you have.
Brandon Williams - 31:46 - Uh, so my big win this week is just learning how to do new physical thing, so I've been working out for quite a while now and something that I always struggle with and I'm learning to do better at his pull ups and it's just fun. It's a, I've got a good group of guys that I go workout with, there's five of us and we just encourage each other when we're working out over lunch and it's just a really good time. So I'm learning how to stretch myself in that, in that area.
Kris Van Houten - 32:18 - How many pull ups can you do? Uh, you don't have to answer it.
Brandon Williams - 32:24 - So today we were supposed to do 50 and I, um, I, let's just say quote unquote, I did 50 and they might've been. I jumped up and had my chin maybe within three inches of the bar type of thing.
Toran Billups - 32:39 - That's still good, man.
Kris Van Houten - 32:40 - He's a solid man. I'm jealous.
Toran Billups - 32:43 - That's the way to wind it down. Well, you guys, it's been a great show. I'm learning. Hopefully those of you listening don't feel that learning is overwhelming or hard in 2018. Now that you've listened to this amazing show from Kris, Brandon and I, so I guess we'll see you all next week. Thanks guys
Kris Van Houten - 32:43 - Okay
Brandon Williams - 32:43 - Later