DevQuestions with Tim Corey
I am Tim Corey. I teach coding online and my inbox is full of questions from current and future developers. I wish I could sit down with each of you and share the answers I know will help you go further, faster in the world of development. This podcast is the next best thing. On this podcast, I will answer the biggest questions people are asking! Send us to your suggestion for a future Dev Questions at https://suggestions.iamtimcorey.com/ To keep the podcast coming, like, subscribe, rate, and share it with your friends and colleagues. See why thousands of students have chosen to learn to think and code like a professional developer at www.DevForge.com.
DevQuestions with Tim Corey
154 How Do I Keep Up with the Latest Technologies?
Use Left/Right to seek, Home/End to jump to start or end. Hold shift to jump forward or backward.
How do I keep up with the latest technologies? What are some good resources for keeping me up to date? How do I learn what to learn? We will answer these questions in today's Dev Questions episode.
Website: https://www.DevForge.com/
Ask Your Question: https://suggestions.iamtimcorey.com/
Sign Up to Get More Great Developer Content in Your Inbox: https://signup.iamtimcorey.com/
Welcome to the Dev Questions Podcast with Tim Corey. Join us each episode as we tackle the questions you are asking about a career in software development, understanding the industry, and new technology. If you're just starting out or you want to grow stronger as a developer, this is the place to get your questions answered. Now, here's your host, expert developer and online educator, Tim Corey.
SPEAKER_02How do I keep up with the latest technologies? Technology is changing all the time. There's new stuff coming in at an extremely rapid pace. And it feels like especially right now. So, how do you keep up with it all? Well, I'm going to give you my three layers of learning and how I keep up with as much of the technology as I can in the industry. And really, there's a fourth layer, layer zero, we'll talk about, but that's the layers that I use to identify here's what I need to do for this technology. Okay. So this question was asked on a suggestion site. And if you have a suggestion for a future episode of DevQuestions, feel free to leave it there at suggestions.iamtimcorey.com, and hopefully you'll see your question answered on a future episode of DevQuestions. So I have three layers of learning. Like I said, there's actually a fourth layer, layer zero, which layer zero is I just don't learn it. I say, you know what? Nope, I'm gonna ignore that. But really, that's for stuff that's just totally outside the realm of what I am doing. For example, you know, if there's something you know cool and flashy that comes out about Java, I'm not gonna learn it. I'm just, you know what? Cool. I'm I'm glad for you. I'm glad that if you like Java, that it's it's something great for you. It's just not something I'm gonna use because I'm not using Java every day. So I'm not gonna worry about even learning it. But the three layers of things that I am gonna learn something about, things that might affect me. Because when you don't learn about something at all that's in your area, you might have a gap in your knowledge. For example, for a long time I didn't know about source control. I didn't realize I should even know what it was or how it worked because I didn't think it was necessary for me. But that was a gap in my learning that was a big problem that I had to overcome. So I've learned to have these three different layers to keep up with basically everything. So layer number one, we'll talk about all three layers, and then I'll go over an example for each from my life to kind of give you an idea of how I think about this. Okay, so layer one is I know about this thing. That's that's kind of the surface level knowledge. So I know basically what it is and what it does. An example of this might be hey, you know what? I learned that Microsoft has this database thing called SQL Server. Um, what is it? Well, I know basically that it stores data relationally and that it's from Microsoft and that it's used by a lot of C applications. That might be all you get. That's what you know is the basics of it. You know, hey, there's a database option out there for me if I ever decide I need a database option. And it's SQL Server, and this is a relational database, a little bit about it, just enough to know kind of where it fits in the ecosystem. So that's kind of layer one. A lot of things fit into layer one. There's a ton of things that I know about. I know where they fit, and I know that I'm not going to learn more about them, at least not for now. Things don't have to be in layer one forever. But just having that high-level knowledge about a lot of different things allows you to know where the pieces are, what things are available should you ever need them. This is really important to put as much as possible in this first layer, because trying to cram everything in your brain all at once is just it's a recipe for disaster. There's a lot of areas about C sharp, even in a syntax, where I'm like, hey, I don't use that very often, so I don't know a ton about it. And it's okay. It's okay that I don't have super in-depth on this piece. I don't use it that often. Or it's not relevant to what I do. So that's the high-level level one. Level two goes a bit deeper. And it's, I know the basics of this thing. So for instance, hey, I've played a bit. I've made a simple prototype. I've I've started to learn more about it. I've used it a little bit. I know how it works in the basics. I know the general stuff. May have gone through a tutorial or two, and I've just kind of played a little bit to understand where it fits in the ecosystem, how it might work, and how I might use this in a future application or project. So that's layer two. And then layer three is I want to use this thing. This is where I've gone through layer one, I've gone through layer two, and now I want to go to layer three with this, where I've built multiple samples. I've tested the edge cases, I've put this into a sample application. So I've gone a lot deeper into this. I've really dived deep into how to use it, how to implement it, what bugs are gonna pop up if I use it certain ways, what are the things that I need to look out for? How do I think about using this in a larger ecosystem? You know, all the stuff you need to know to really understand how to use a technology. So that's my three layers for learning. The one that's the most full is layer one. And that's just, you know, I know that it exists, I know about it. Layer two, I've got less things in, but I know the basics of them. And then layer three, I have even less things in, but I know how to use that thing. So that's kind of my funnel for learning. Now, let's talk about some examples of this from my own life right now. So, level one, the things that I know about this thing. Well, machine learning. I know about machine learning. C Sharp has some great tools for machine learning. And I've had people ask me, hey, can you do a video on machine learning? And probably the answer is being no for a long time because I'm at layer one with machine learning. I have seen it in demos. I know that it takes a lot of math knowledge to really understand how to use it well. And I know where I would go if I wanted to learn more. And that's you know, docs.net. Um, it's Microsoft documentation. So um that's where I would go to learn more is Microsoft documentation, the learn site, because I know they have great tutorials there and a great place to get started. But I'm not gonna use machine learning. There's a lot of math involved. There's a science to how to do it well and how to make sure that you understand the results and make sure the results are correct. And this is all stuff that's it's really cool, it's awesome, it's fun, but it's not something that is in my skill set. While I can do math and I've gone through calculus one and two, I've kind of left those behind. I try to avoid doing in-depth math. And so that's not my area where I want to spend a lot of time. And so I have left machine learning at I know about this thing, but that's where it sits. Now, my level two to know the basics of something. AI and GPT tools. So there's a ton of stuff around AI right now. The the GPT, let's just use GPT as kind of the overarching umbrella of everything that's out there for tooling that right now. There's a lot of tools out there that allow you to integrate your software into these machine learning systems, these AI systems. And you can build great things off of AI. Well, I've gone a little deeper there because I was interested in hey, how can I implement this in my own day-to-day operations? So I built a prototype to get transcripts and chapters and summaries out of a video I create. And I figured out how to do that. And there's actually a really great tool out there now that does most of it for you. And then I tweaked a local Docker version so I could automate it and so I could use bigger files, I could have an offline version and figure out how to do it so that I could run all of my YouTube content and even my paid content through it and verified how it works. In fact, there was a video on this channel where it didn't have captions. And that was a glitch from YouTube. I don't have access to tell YouTube, hey, put captions on this. It just happens. And if it doesn't happen, oh well, unfortunately, well, I ran it through that video through the system, generated the captions, and put them on YouTube, and they're great. They work great. So I wanted to learn more about it, and so I learned the basics of it. Now, what I did not do is build a full end-to-end application. I didn't figure out how to get around some of the edge case stuff. I didn't make sure that it would be work, you know, rock solid and that there would be no bugs that would cause problems. I didn't verify and validate the code that I wrote to make sure that it was automated in a correct way so that I could reuse it and then deploy it and all the rest. I didn't do that. I just learned the basics. And the reason why is because, quite frankly, I don't have the time to build the full application. I'm getting there and I'm hoping to have some help with that at some point. I might even hire somebody to, I will hire somebody to do some of that work. But I at least know the basics so I understand: hey, here's here's what I know, and here's how I've played with it, and here's how it kind of integrates, and here's the the pitfalls that I discovered, and we need to work around, and here's what I know we need to do in order to get started with this. So that's level two. I know the basics of it. Now, level three is I want to use it. And this is one that might surprise some people, hopefully uh encourages some people. Uh, Unity. So Unity is a game engine for building games with C sharp. And you know what? It's been on my radar for a long time to teach you how to take your C sharp knowledge and build some games. Well, I have been working very hard on getting to level three and really going really deep in level three for Inmunity for a long time now. I've built dozens of demo games. I've tested my assumptions, I've asked lots of questions to go deeper. I've continued to build demos and test projects. I've watched tons of tutorials, I've figured out where the gaps are, where people are confused. I've figured out how to make this thing work, and I've figured out what the pitfalls and the best practices, and how do you make this right and do a great job. So I've gone really deep into Unity, and because of that, you're gonna see a lot of Unity content coming out. I think it really dovetails well with your C sharp skills. Hey, you wanna build a game? Great, here's an engine, and you can reuse your business skills. Or you wanna take your gaming skills to the next level, you can become a software developer. Like it it really dovetails well together using the C sharp language. But I needed to go deeper. I couldn't just say, hey, I know the basics, so let's go ahead and teach it now. That's not fair. And that's not a great way to teach, because then you perpetuate some of the problems. And in fact, I have seen a lot of that in the tutorials that I've watched, where people say, I don't really know C sharp, so I just kind of do this and it works. That's not a great way to learn because then you don't know its magic. And so when it breaks, what happens? And so I don't want to be there as a developer, and I don't want to be there as a teacher either. And so I went a lot deeper to figure out why it works that way? And is there a better way of doing that? And yes, this way works, but there's better options out there, and here's why. And so I've gone a lot deeper into my knowledge of that. So those are the three layers of learning and kind of some examples of how I approach that in those three layers. I don't do layer three for most things. Layer one, like I said, I know a lot about a little, or a little about a lot, how about that? And I know a lot about a little for layer three. So it's important that you don't burn yourself out trying to get to layer three on everything. Accept the fact that you're not gonna know everything about everything. It's just there's too big of a swath of things you could do around even just C sharp, which is a narrower set of the overall market. Okay, so accept the fact you won't know everything, but make sure that you do go to layer three in the things that are most important to you, okay, the things that are most relevant to you. Make sure you have that knowledge of the things that are around that that might be of use so that when you say, hey, you know what? I need a database solution. I know about five or six. Let's go deeper with these and figure out which ones might be useful, narrow it down, and then we'll go deeper into that one that we choose. Okay? So that's my three layers to effectively learning what you need to in the industry. Hopefully that's been helpful. Thanks for listening. As always, I am Tim Corey.
SPEAKER_00Thank you for joining us for this episode of Dev Questions. Tim is committed to making it easier for you to become a developer. If you would like to help make more content like this possible, please like, subscribe, rate, and share Dev Questions. You can also send your questions to questions at Iamtimcorey.com. Until next time, remember, you are too smart and your time too valuable to waste it making all the mistakes Tim did. When you're ready to learn to think and code like a professional developer, head over to imtimcore.com and enroll in a course.