« All Episodes

Learning Environment

Published 8/28/2017

In today's episode, we discuss what it takes to create a learning environment that can get your gears turning immediately.

Today's episode is brought to you by Linode.

Linode provides superfast SSD based Linux servers in the cloud starting at $5 a month. Linode is offering Developer Tea listeners $20 worth of credit if you use the code DEVELOPERTEA2017 at checkout. Head over to spec.fm/linode to learn more about what Linode has to offer to Developer Tea listeners!

Transcript (Generated by OpenAI Whisper)
What is your process for learning? I don't mean this in terms of how do you study or how do you google. I also don't mean it in terms of where are you going to school. I mean, where do you go to learn? The answer may immediately come to you or it may not, but this is one of many things that you should be able to answer at any given point in your career. That's what I want to talk about today. Your process for learning or I guess a better way of putting it is your method, your chosen parameters for learning. That's what we're talking about in today's episode. My name is Jonathan Cutrell. You're listening to Developer Tea. My goal on this show is to help you become a better developer and what way to become a better developer than to have a way to get the most out of your efforts when it comes to educating yourself. We aren't just talking about educating in school and we also aren't just talking about educating with online courses or something like that. Of course those things aren't included in this, but if you are not currently taking a course and if you're not currently in school, then you may have this sense that you're kind of coasting. If you're a developer and you're coasting, then you aren't actually moving forward and you're also not standing still because everything else around you is progressing and it's your job to continue progressing. I've talked about having my podcasting setup ready to go at any given point in time. The reason I do this is so that I can walk up to the microphone with an idea in hand and get started recording right away. This is super critical for me because I produce three of these episodes per week and I need to be able to get in front of the microphone before I have a chance to tell myself that the idea that I had wasn't really good enough. I need that barrier to entry to be very low. What I want to talk about here is the same concept except for you as a developer to set up that barrier to entry to your learning processes to make that very low barrier allow you to propel your learning forward at any given juncture. In other words, you should be able to very quickly get into learning mode. What are a few ways that you can get into learning mode? We're going to talk about that right after we talk about today's sponsor, Linode. We've talked about Linode quite a bit recently and I've been sharing my own opinions on what Linode has to offer and that's because they've been a sponsor for a long time. Here's the thing about this sponsorship. Linode cares about developers and they care about reaching you where you are. That's why they sponsor Developer Tea. That's why they want to give you the best service. They're providing you 24-7 service and they're also providing you the best deal per gigabyte of RAM on Linux servers. If you're not really sure whether or not this is worth it, I can tell you for almost anybody listening to this show, $5 a month for a Linux server, if you don't already have a server set up. Linux should be the first one that you set up because $5 a month to do anything you want to, by the way, on these servers. It's totally open. You can do whatever you can do with Linux. You can do on Linode. $5 a month is such a low barrier for that and on top of that, the flexibility of Linode's pricing structure mixed with the flexibility of Linode's tools, like for example, node balancers and backups. These are things that allow you to create with Linux tools. Linode allows you to create with Linux tools and Linode's specific tools to kind of tailor your experience to whatever development you're doing. For example, if you have a couple of days that are really heavy, you have a couple of really heavy traffic days on your server, you can actually respond to that and only scale up to multiple nodes. You had $5 a month server, $25 a month, and then you had one day's worth of node balancing or you had a month's worth of node balancing. Linode allows you to do that kind of stuff and it's very simple. They also have an API to automate that kind of stuff. If you're building a startup, for example, you never know when somebody's going to cover that startup on product time or something like that. You can actually respond to that kind of demand automatically with an API while you're sleeping. On top of all that, Linode also even has other Developer That you can hire at Linode to help you with, for example, system administration. Let's say you're not really good at SysApp and Linode can provide those services to you. There's so much that Linode has to offer. I highly recommend that you check out what they have to offer by going to spec.fm-linode. That's spec.fm-slash-linode. If you go to that link and you use the code Developer Tea 2017 at checkout, you can get $20 worth of credit whenever you check out. Thank you again to Linode for sponsoring today's episode of DeveloperT. How can you set yourself up? What is your method for learning? We aren't talking about the actual learning process, although that's worth talking about. You've talked about it in other episodes, actually engaging content in a way that helps you learn. Rather, we're talking about setting yourself up all of the things surrounding that learning process. How do you actually go about that in your day to day or how do you create space for it? First of all, what I want you to do is write out on a piece of paper right now, write out what your learning objective is. Any given point in your career, you should have a learning objective. Right now, I am involved in a couple of Coursera courses. My learning objective, as it relates to that, is to become a proficient in machine learning. I want to be able to understand the various vocabulary and at a high level, I want to understand the different algorithms that make machine learning work. This is kind of a big goal. It gives me kind of a guiding principle, a guiding path for what I should be learning. If you sit down to learn and you don't have that guiding principle, that guiding path, this objective, this learning objective, if you don't have that, then it's possible that you're just going to learn a random assortment of things based on whatever is most immediately available to you. In other words, you might get a link and slack from a coworker or maybe you get a newsletter in your email inbox that talks about a new cool tool and you go and you learn that for a day. Then tomorrow, you learn something totally different. The following day, perhaps you don't learn anything at all. The problem with this is that while it may feel like you're progressing and you're staying in the know, and you have your mind kind of open to all these new things, there may be a little bit of a benefit to that, but ultimately, you're not going to progress anywhere significant. You're just going to kind of float around barely learning a little bit of everything. What you're going to find is when it comes time to actually use what you've learned, when it comes time to implement something or maybe guide somebody down the path of implementation or even to have a conversation, meaningful conversation with a client about a given technology or a given concept, you're not going to be able to actually have substantial information about any given thing. You may be able to tie some things together, but ultimately, you won't be able to actually have a substantial amount of information that you can utilize. That's a problem. That's a problem as a developer because having the substantial information and having a complete picture of how a tool works, that's really kind of a fundamental piece of being a great developer. You really need to have an understanding of various tools that you're using or various tools that you could use in the future. This is very important to understand that having a deep understanding of various things, three or four or ten things is better than having a very surface level shallow understanding of a hundred things. We've discussed this more at length in previous episodes, specifically in the episode about specialization. You can go back and find that episode at spec.fm. The important idea here is that for most people in most career paths, you need to have knowledge of multiple things and to a substantial level. You can't have a little bit of knowledge about a hundred things and you can't have a lot of knowledge about only one thing and expect to succeed in a dynamic environment. It's important to continue developing your knowledge. Regardless of what it is that you're developing knowledge around, whether it's a new language or framework or maybe you actually want to study philosophy or perhaps you want to understand finance or business or any given subject. I'm going to give you two tips today really to take forward. The first one I've already said, I want you to set out your learning objective. A lot of you probably when I asked you to write this out on that piece of paper, you didn't have a learning objective readily available. But I want you to always have this in your mind. Any given stage, you may not have to be actively engaging yourself every single day or for five hours a day or anything like that. Certainly, you should have a point to why you are educating yourself. What is it that you are trying to achieve with that education? There should be a measurable point. For me, that measurable point, I said previously that it's to learn enough about machine learning that I can have a common language of vocabulary to talk about it and to see where it fits and really a measuring that by completing these two courses in Coursera. That's how I'm measuring whether or not I've met that goal. It makes sense for you to also tie that measurement to that objective. You can say, okay, this is exactly what I am progressing towards. I'm not an ethereal concept, but rather, once I've done these things, then I will have met my objective. Then you can evaluate if you feel like you are actually competent in that particular subject to the degree that you want to be competent in that subject. That's tip number one. Tip number two is that you have a consistent place to go to to learn. This can be a physical place, doesn't have to be. Really what we're talking about here is when you are ready to start educating yourself, which really this means actually taking time and dedicating towards learning. When you are ready to start doing that, you know exactly what to do to get into that mode. For school, this is really kind of a given, right? You know that you go to class. Now, one of the things that a lot of students struggle with, I struggle with this as well, is not knowing exactly how to get into that mode for homework, right? As it turns out, a lot of students end up figuring this out accidentally. For me, if I went to the copy shop, I was kind of giving my brain that signal that I need to go and study. I need to actually get something done. I would make myself go to this particular place and not allow myself to leave until I had finished whatever that particular objective was for my assignments, for my homework assignments. But the reality is you don't have to have a physical place, a physical representation of a place in order to get your mind into the right mindset. Instead, what you could do is create a virtual place. And this isn't as ethereal as it really seems. For me, that virtual place is indeed Coursera, right? And if I can tie Coursera.com and a specific habit, particularly for me, it's a part of the day, a time of day, then I'm creating a place. I've created a space and I've started to create that habit where I know that at this time, I'm supposed to be going to Coursera in order to do my learning objectives, to progress towards my learning objectives. For you, it may not necessarily be a specific appointment, although I do encourage you to do an appointment so that you have a moment in time where you know that this is the time to do that particular thing. Of course, people with careers time sometimes is a little bit difficult. People who are already working, you may have a meeting that overlaps with that time. So the most important piece of this puzzle is when you decide it is time to learn, hopefully you do that on a regular and scheduled basis, but when you decide that it's time to learn, you know exactly where you're going, whether that's a website or a room in your house or your apartment or a coffee shop, a specific seat at a coffee shop, even. These are all signals that can give you this mindset that now is the time to learn. This will avoid a lot of the trouble that you otherwise would have with procrastination and with putting off learning as a secondary, you know, non-critical thing. So again, step one is going to be create a specific learning objective. Find something that you can absolutely measure against whether or not you actually accomplished it. That's step one. And step two is create a place, create a space. This is something that's really more in your mind than it is physically. Of course, once again, it can also be represented in a physical place. There's a very strong connotation that you can receive from a physical place. You know, there's a lot of things that you can do to help create this even more rich environment for learning. You could have specific types of music that they listen to when you are learning. You could have a particular routine that you follow when you're getting ready to start learning. For me, I actually make coffee right before I start learning. This is a really common one. I've said coffee quite a few times in today's episode, but having a specific routine that you follow, that can help your mind prepare for that learning process as well. Thank you so much for listening to today's episode of Developer Tea. Thank you again to Linode for sponsoring today's episode. With Linode, you can get started on a Linux server in just a few minutes and it's the best price that you're going to find per gigabyte. Excellent deal. One gigabyte server, by the way, for $5 a month, really fantastic. You also get $20 worth of credit when you use the code Developer Tea2017 to check out. Thanks again for listening. Make sure you subscribe if you're enjoying these episodes. If you're getting something out of it, if you're actually feeling like your career is benefiting from this, then if you don't want to miss out on future benefits from this podcast, make sure you subscribe in whatever podcasting app you use. Thanks so much for listening and until next time, enjoy your tea.