Latest / DevQuestions with Tim Corey / 258. The Pitfalls In Learning Software Development
Transcript
- 0:00SPEAKER_01: Learning software development is full of pitfalls and mistakes waiting to happen.
- 0:04SPEAKER_01: As a self-taught developer, I've made a ton of mistakes that I want you to be able to avoid.
- 0:10SPEAKER_01: As a teacher with over a decade of experience training students, I've seen the same patterns repeated over and over with students at all levels.
- 0:18SPEAKER_01: Some patterns are good, but others are easily avoided pitfalls that swallow up people who would have made good developers.
- 0:26SPEAKER_01: And finally, as a developer with almost 30 years of experience working for dozens of companies on hundreds of apps of all sizes, I've seen firsthand the mistakes that current developers make around their continued education in software development and what that can lead to.
- 0:42SPEAKER_01: In this episode of Dev Questions, I'm going to give you the eight major pitfalls that I see developers fall into when trying to learn software development.
- 0:52SPEAKER_01: This way, you can avoid the pitfalls and have a greater chance of success when trying to grow as a software developer.
- 1:07SPEAKER_00: Welcome to the Dev Questions Podcast with Tim Corey.
- 1:11SPEAKER_01: Software development is more than just writing code.
- 1:14SPEAKER_01: So let's talk about the rest of it.
- 1:16SPEAKER_01: Specifically, let's talk about the pitfalls in learning software development.
- 1:21SPEAKER_01: Now, number one pitfall, and these aren't in any order, but they're all kind of important.
- 1:26SPEAKER_01: But number one is not practicing.
- 1:29SPEAKER_01: Now, if you've watched any of my content, you've heard me say it before.
- 1:33SPEAKER_01: But I used to teach in the classroom.
- 1:36SPEAKER_01: I spent five years teaching in a college where I was teaching C sharp from the ground up.
- 1:41SPEAKER_01: Okay, so you know nothing coming in, and I'm going to teach you how to be a C sharp developer.
- 1:47SPEAKER_01: And I had 16 weeks to do that in.
- 1:49SPEAKER_01: And each week was about three hours of instruction.
- 1:53SPEAKER_01: And I would tell the students on week one, listen, I'm going to give you a lot of information.
- 1:59SPEAKER_01: And you know what?
- 2:01SPEAKER_01: You're going to be tempted, because it's one class a week, you're going to be tempted to just ignore what I said for six and a half days.
- 2:10SPEAKER_01: And then you're going to go, wait, I had homework.
- 2:14SPEAKER_01: What should I do there?
- 2:15SPEAKER_01: And you're not going to remember because you didn't practice all week.
- 2:18SPEAKER_01: And I'm not expecting them to practice every day of the week, but I said you should at least practice two or three days and kind of review what we went over in that previous class.
- 2:28SPEAKER_01: In fact, the YouTube channel that I now operate came out of that classroom experience where I would create YouTube videos just for my students and say, hey, here's what we practice, here's what we did this week, so that you can see me show you how to do it again when you're practicing.
- 2:45SPEAKER_01: And I would tell students at least two or three times a week, I want you to practice what we learned in class.
- 2:53SPEAKER_01: Otherwise, what's going to happen is that you're going to keep coming to class, you're going to feel like you're making progress, but about week five, you're going to realize, oh no, I can't do this.
- 3:07SPEAKER_01: This is all overwhelming.
- 3:08SPEAKER_01: I'm missing things.
- 3:10SPEAKER_01: And why is it that I'm falling so far behind so quickly compared to all the rest of the students?
- 3:16SPEAKER_01: And the first question I told them, week one, I told them, the first question I'll ask you in week five is, did you practice?
- 3:24SPEAKER_01: And your answer is going to be, no, not really.
- 3:28SPEAKER_01: And my solution is you're going to have to go back and practice.
- 3:32SPEAKER_01: Go back and practice weeks one through five.
- 3:34SPEAKER_01: You've got a lot to catch up in.
- 3:36SPEAKER_01: Well, that's true, whether you're going through my class in the classroom or a different class in the classroom or on your own, watching YouTube videos or reading books or going through a boot camp or anything else.
- 3:51SPEAKER_01: If you don't practice, what's going to happen is you're going to feel like you're making progress.
- 3:57SPEAKER_01: But then at some point, it's all going to come crashing down.
- 4:01SPEAKER_01: And you're going to feel like a failure because you don't know this stuff and it feels overwhelming.
- 4:06SPEAKER_01: It feels like there's just so much going on.
- 4:08SPEAKER_01: It feels like you can't get past that hump.
- 4:11SPEAKER_01: And the reason why is because you didn't practice the little things.
- 4:15SPEAKER_01: You didn't start building on top of a good foundation.
- 4:19SPEAKER_01: You just kept chucking bricks over the wall, hoping that they'd be a good foundation to stand on.
- 4:24SPEAKER_01: And they're not really.
- 4:25SPEAKER_01: So that's number one is not practicing.
- 4:28SPEAKER_01: Number two is not focusing on one topic at a time.
- 4:33SPEAKER_01: There is so much going on in software development at any one time.
- 4:37SPEAKER_01: When you start practicing something, you may start going down rabbit holes.
- 4:43SPEAKER_01: So let's just say that you're a C sharp developer already and you're a web developer, but you want to learn Blazor.
- 4:49SPEAKER_01: You go, cool, I'm going to learn Blazor.
- 4:52SPEAKER_01: Well, but Blazor relies on Bootstrap 5.
- 4:55SPEAKER_01: Oh, we got to learn that now.
- 4:56SPEAKER_01: Oh, but Bootstrap 5 is built upon HTML5 and CSS3.
- 5:01SPEAKER_01: I'll learn those two things now.
- 5:02SPEAKER_01: And well, it does have some JavaScript plugged into it.
- 5:05SPEAKER_01: Oh, I should probably learn that.
- 5:06SPEAKER_01: And oh, while I'm here in JavaScript, I should learn about NPM.
- 5:10SPEAKER_01: And while I'm doing that, I should also learn about Angular Reactor View.
- 5:13SPEAKER_01: And while I'm, and before you know it, you're 10, 15, 20 different technologies in and you haven't learned anything about anything yet.
- 5:25SPEAKER_01: There is a huge advantage to focus when learning software development.
- 5:33SPEAKER_01: Now, it is very difficult.
- 5:35SPEAKER_01: I totally get that.
- 5:36SPEAKER_01: Because going back to our Blazor example, if you haven't covered some of those things, you probably should have learned those things first before diving into Blazor.
- 5:45SPEAKER_01: This is where having an order or a learning path is really helpful.
- 5:49SPEAKER_01: Knowing what things to learn in what order, it's really important.
- 5:53SPEAKER_01: Otherwise, you start going down rabbit holes, which are necessary, but that lead you away from focusing anywhere.
- 6:01SPEAKER_01: And before you know it, you're so far off a track that you don't know where you came from and you don't know where you're going, and you haven't really learned anything of any value.
- 6:12SPEAKER_01: So focus is really important.
- 6:15SPEAKER_01: And that means focusing through to the logical end, not knowing everything on a topic, but knowing the logical end of where you should stop learning at that point.
- 6:27SPEAKER_01: So that means not just the you know, the inch deep and a mile wide.
- 6:31SPEAKER_01: No, you want to go deeper in a lot of topics, but you need to know how to focus on one topic at a time.
- 6:38SPEAKER_01: Now, mistake number three is not continuing to grow.
- 6:42SPEAKER_01: Maybe you're a developer, maybe you went to school for it, maybe you went to boot camp for it, maybe you learn on your own, whatever the case may be, but you have done the work, done the training, you have learned how to be a developer and you got a job.
- 6:58SPEAKER_01: And you're in that job and you're you're working at that job, you're a developer, you're kind of heads down just doing the job.
- 7:05SPEAKER_01: And you don't continue to grow.
- 7:08SPEAKER_01: Maybe you grow in that job, but that's very specific to one job.
- 7:13SPEAKER_01: And so what happens is you kind of stagnate, where you're not really looking at things outside of your job to learn.
- 7:21SPEAKER_01: This is where I always encourage companies to establish a lunch and learn program.
- 7:27SPEAKER_01: A lunch and learn program is where you get together as developers, however many you have, on a regular basis.
- 7:34SPEAKER_01: I encourage once a week, but that's a that's a lot for some people, and so maybe once a month.
- 7:40SPEAKER_01: Whatever it is, once a month is not very often, but whatever it is, you get together and say, hey, once a month, we're gonna get together and eat our lunches together in the conference room.
- 7:51SPEAKER_01: And we're going to have one developer present something new they've learned.
- 7:56SPEAKER_01: Not something that is they've learned from the company or for the company necessarily.
- 8:02SPEAKER_01: It's more a new technology, a new technique, a new design pattern, a new, you know, something in the industry, a new database, a new whatever.
- 8:13SPEAKER_01: Because even though it might not directly apply to your job today, seeing how to do things in a different system, or seeing how a different database works, or seeing how a different messaging system works, or any of those things can sometimes spark creativity and improvements in your current code base.
- 8:36SPEAKER_01: And it can open up the idea of that's an option for us at some point, where maybe right now we're locked into using SQL Server and that's it.
- 8:46SPEAKER_01: But when we come up with a new application, maybe it's a good fit for a NoSQL database.
- 8:54SPEAKER_01: And so that might be something you consider now that you know what it is and how it works, because you continue to grow.
- 9:01SPEAKER_01: And what that does is it provides you more options.
- 9:05SPEAKER_01: So when you come to a choice, a fork in the road, you have more choices about which way you could go.
- 9:12SPEAKER_01: When you only have one direction you can go, well, then that's the only direction you will go, even if it's not the most efficient or the best for your organization.
- 9:20SPEAKER_01: So continue to grow beyond just the heads down, what do I need to do to do my job is really important.
- 9:28SPEAKER_01: It's vitally important for both you specifically as well as for your organization to not just have stagnant developers.
- 9:35SPEAKER_01: Otherwise, you just don't grow your application.
- 9:39SPEAKER_01: Your application kind of grinds to a halt.
- 9:42SPEAKER_01: And the only way to really solve that is to bring people in from the outside who have a fresh perspective.
- 9:48SPEAKER_01: But how do you bring people in from the outside?
- 9:50SPEAKER_01: You can't continually add new developers.
- 9:53SPEAKER_01: That means you're gonna lose people.
- 9:55SPEAKER_01: Okay, so not great.
- 9:57SPEAKER_01: That's not the way you want to set yourself up.
- 10:01SPEAKER_01: Number four, kind of goes number three, but it's also separate, and that is not paying attention to your career.
- 10:08SPEAKER_01: This is a big pitfall.
- 10:11SPEAKER_01: Your career is your responsibility.
- 10:14SPEAKER_01: And you may say, well, Tim, my employer should train me.
- 10:17SPEAKER_01: Sure.
- 10:18SPEAKER_01: What if they don't?
- 10:19SPEAKER_01: What if they don't care about you?
- 10:21SPEAKER_01: What if they just want you to put your work in and they want to use you up and spit you out?
- 10:27SPEAKER_01: Well, what are you gonna do, right?
- 10:29SPEAKER_01: You have to pay attention to your career because you have to address reality.
- 10:35SPEAKER_01: And the reality is that your job at your current company is not guaranteed.
- 10:41SPEAKER_01: It's not.
- 10:42SPEAKER_01: The economy could change, circumstances could change, your business could get bought out, your business could fail.
- 10:49SPEAKER_01: There's so many other things that could happen where your job is no longer available to you.
- 10:55SPEAKER_01: Now what?
- 10:57SPEAKER_01: Well, while it's not too late, it is much more difficult to address your career shortcomings, to get a new job when you haven't been spending time paying attention to your career.
- 11:15SPEAKER_01: So if you get laid off tomorrow, are you ready to get a new job?
- 11:20SPEAKER_01: Have you set things up to be prepared for a new job?
- 11:24SPEAKER_01: If a new opportunity came along, are you ready to take advantage of it?
- 11:28SPEAKER_01: Even if your job is stable, maybe there's a better opportunity.
- 11:32SPEAKER_01: But if you don't take advantage of it, well, then guess what?
- 11:36SPEAKER_01: You're not ready.
- 11:37SPEAKER_01: It passes you by.
- 11:39SPEAKER_01: So pay attention to your career.
- 11:42SPEAKER_01: Number five is not pushing through when things get tough.
- 11:48SPEAKER_01: This is, and this I was gonna highlight and star this.
- 11:52SPEAKER_01: Like if we were writing this on a piece of paper somewhere, like this would be our number one bold, bright, flashing neon lights.
- 12:00SPEAKER_01: If you want to be a developer or a better developer, push through when things get tough.
- 12:08SPEAKER_01: Because that is what separates you from all the people who fail and fall away.
- 12:15SPEAKER_01: Don't be one of those people that fails and falls away.
- 12:18SPEAKER_01: This is the biggest pitfall I would see in my students.
- 12:21SPEAKER_01: I've seen it in interns, I've seen it in young developers, I've seen it in older developers, where they hit a hard spot and they give up.
- 12:31SPEAKER_01: And you know what?
- 12:32SPEAKER_01: Software development is nothing but hard spots.
- 12:35SPEAKER_01: I'm sorry to have to give you that news.
- 12:37SPEAKER_01: Yes, it's a lot of fun.
- 12:39SPEAKER_01: I love it.
- 12:40SPEAKER_01: I wouldn't trade it for the world.
- 12:41SPEAKER_01: I wouldn't want to do anything else besides be in or around software development.
- 12:46SPEAKER_01: So even this job here, I teach.
- 12:48SPEAKER_01: I love teaching, but I love writing code.
- 12:51SPEAKER_01: I really do.
- 12:52SPEAKER_01: But you know what?
- 12:54SPEAKER_01: The thing that I would get paid for as a consultant, the thing I'd get paid for when I was working for a company, was to do the hard thing, to fix the hard problem, to say anything's fixable, and to figure out how, even when it seemed impossible.
- 13:12SPEAKER_01: So push through.
- 13:14SPEAKER_01: When you're learning something, you're gonna come to a spot where you're like, ah, this is tough.
- 13:19SPEAKER_01: Like, I don't know, in C sharp, maybe it's a sync and a wait.
- 13:22SPEAKER_01: You're like, this is confusing, and I don't seem to get it.
- 13:27SPEAKER_01: And it's how does this work?
- 13:29SPEAKER_01: And how is it?
- 13:30SPEAKER_01: It just seems like it's magic, but it's not working all the time.
- 13:33SPEAKER_01: And what's going on?
- 13:35SPEAKER_01: Push through.
- 13:37SPEAKER_01: Take the time, slow down, take the time and say, I'm going to get it.
- 13:43SPEAKER_01: And that may mean that you spend more time practicing and trying things out and seeing what works and what doesn't work until you figure out the boundaries and the rules.
- 13:53SPEAKER_01: Or maybe at some time is taking a step back and saying, hey, I'm going to give it a minute.
- 14:00SPEAKER_01: I'm going to do something else for a little bit and come back to this.
- 14:04SPEAKER_01: And it's something else maybe totally different from software development.
- 14:07SPEAKER_01: Maybe it's go take a shower, go take a walk, and then come back to it in the morning because sometimes your brain just needs a reset.
- 14:15SPEAKER_01: But pushing through the hard thing is what is going to get you to the next level.
- 14:21SPEAKER_01: I was just working recently on a web application we have at DevForge here.
- 14:27SPEAKER_01: And so we were building this web application and I want to make a tweak.
- 14:31SPEAKER_01: And I made the tweak and it wasn't applying.
- 14:35SPEAKER_01: Okay, so I was I wrote a little bit of CSS, I put it into the class in the CSS file, I applied the class to the right element, and it just wasn't working.
- 14:45SPEAKER_01: It was driving me nuts.
- 14:47SPEAKER_01: But if I took that same CSS and put it as a style tag directly on the element, it worked.
- 14:55SPEAKER_01: Now, the temptation is to say, it works here.
- 15:01SPEAKER_01: I don't know why it doesn't work in the CSS file, but it works, therefore I will leave it.
- 15:08SPEAKER_01: And when you do that, you start to erode your abilities instead of improving your abilities.
- 15:16SPEAKER_01: Figure it out.
- 15:18SPEAKER_01: Spend the time, bang your head against the desk, take the time.
- 15:22SPEAKER_01: And I was tempted.
- 15:23SPEAKER_01: I was very tempted.
- 15:24SPEAKER_01: I was in a hurry.
- 15:25SPEAKER_01: I had other things to do.
- 15:27SPEAKER_01: I really just wanted to put that in a style tag.
- 15:29SPEAKER_01: And in fact, it got to the point where I was already at the get commit stage where I'm like, let's just commit this code.
- 15:35SPEAKER_01: And I'm like, I can't do that.
- 15:37SPEAKER_01: There's a style tag here.
- 15:39SPEAKER_01: It needs to be in the CSS file instead.
- 15:42SPEAKER_01: Turns out, and just kind of close that story out, I was applying it to a media query, which was for a certain screen resolution, and I wasn't in that screen resolution.
- 15:51SPEAKER_01: I didn't realize that I was in the wrong spot in the CSS file.
- 15:54SPEAKER_01: That's my bad, right?
- 15:55SPEAKER_01: So that's a lesson learned.
- 15:58SPEAKER_01: Like I couldn't figure out why I wasn't applying.
- 16:00SPEAKER_01: I did all the right things with developer tools and all the rest.
- 16:04SPEAKER_01: But now that I was like, oh, that's what it is, not only did I fix that specific problem, but now I put one more thing back into my memory bank.
- 16:15SPEAKER_01: I know this stuff, but remind me one more time hey, when you're making a change in CSS and you don't see it reflected on the page, check to make sure you're applying it at the right media query.
- 16:28SPEAKER_01: Okay?
- 16:28SPEAKER_01: So now I've learned one more debugging thing, or I've reinforced one debugging thing in my brain.
- 16:34SPEAKER_01: Well, that makes me a better debugger.
- 16:37SPEAKER_01: That makes me faster at my job.
- 16:39SPEAKER_01: That makes me better at my job, which makes me a better developer and more valuable.
- 16:44SPEAKER_01: But I wouldn't have gotten that if I didn't push through when things got tough.
- 16:50SPEAKER_01: Okay?
- 16:50SPEAKER_01: So number five, push through even when things get tough.
- 16:55SPEAKER_01: Number six, the sixth pitfall is not focusing on your network.
- 17:01SPEAKER_01: People don't really like to hear this, especially developers, because by and large, if we had to categorize ourselves in one big broad brushstroke, we're introverts, right?
- 17:11SPEAKER_01: We we don't like the idea of going out and talking to people and making relationships.
- 17:17SPEAKER_01: And I get that.
- 17:18SPEAKER_01: I'm an introvert.
- 17:20SPEAKER_01: I really am.
- 17:21SPEAKER_01: I have to work at it every day to be less introverted.
- 17:25SPEAKER_01: And you know what?
- 17:26SPEAKER_01: It's not going to be the same for you as it is for anybody else.
- 17:30SPEAKER_01: You have to figure out how to make this work.
- 17:34SPEAKER_01: But you can focus on your network, whether that is connecting virtually or going to user groups and maybe just sitting there quietly for a while, where you don't actually talk to people, but you start to get comfortable, be in the room.
- 17:47SPEAKER_01: And then eventually people start to recognize you and you can at least say hi.
- 17:51SPEAKER_01: And you start to grow your ability to network with other developers.
- 17:56SPEAKER_01: But you need to grow your network.
- 17:58SPEAKER_01: You need to focus on your network, not just on I need a job today, therefore I go meet people.
- 18:05SPEAKER_01: No, back that up.
- 18:06SPEAKER_01: Meet people, meet other developers, because not only will it help you with getting another job, but meeting other developers allows you to share stories.
- 18:17SPEAKER_01: And you know what?
- 18:18SPEAKER_01: They're probably just as introverted as you are.
- 18:22SPEAKER_01: They're probably just as self-conscious as you are.
- 18:24SPEAKER_01: When you start talking and sharing stories about what you do and what you worked on today and what was difficult, sometimes you'll hear something that's like, oh, I didn't know that.
- 18:35SPEAKER_01: Like me, that that started CSS.
- 18:38SPEAKER_01: Maybe you didn't know that.
- 18:39SPEAKER_01: And you're like, oh, that's something new I could think through and put in my repertoire of things to check, even though I wasn't the one that had to push through the hard thing.
- 18:49SPEAKER_01: But Tim was, and I talked to Tim, and that helps me be a better developer.
- 18:55SPEAKER_01: Well, that's what networking can do for you.
- 18:57SPEAKER_01: I've had, I don't know how many times where I've sat down and talked to our developers, and and they mentioned something totally different than my situation, where they're talking about their situation, what they did, and I went, oh, that could help me.
- 19:11SPEAKER_01: And I learned something new, or I ask them a question, I say, hey, this is what I'm doing.
- 19:15SPEAKER_01: And they're like, oh, have you tried this?
- 19:17SPEAKER_01: Because they have different experiences than I do.
- 19:19SPEAKER_01: That's a good thing.
- 19:20SPEAKER_01: So it's a good thing that you're talking to people that aren't the same as you, that don't have the same experiences.
- 19:27SPEAKER_01: So focus on your network.
- 19:30SPEAKER_01: Number seven pitfall is not making real progress.
- 19:35SPEAKER_01: I call this pretend progress.
- 19:38SPEAKER_01: So let's say you want to start a business, right?
- 19:40SPEAKER_01: And you decide, hey, I'm gonna start a business where we're gonna mow lawns and I'm gonna start a lawnmowing business.
- 19:48SPEAKER_01: What's the temptation, the first thing you're gonna do?
- 19:50SPEAKER_01: Well, I'm gonna buy business cards, make sure that people know my name and I can have my phone number and email address on there.
- 19:56SPEAKER_01: And I'm gonna create a website too, because you need a website for a lawnmowing business.
- 20:00SPEAKER_01: And I've got to create flyers and you know what?
- 20:02SPEAKER_01: Company merch.
- 20:03SPEAKER_01: We need to make sure we have matching hats and t-shirts so that everyone knows who we are.
- 20:07SPEAKER_01: We should probably have either a vehicle wrap or some magnetic clings to the vehicle, and oh, we need new lawnmowers, and oh, we should probably have matching lawnmowers.
- 20:17SPEAKER_01: And guess what you're doing?
- 20:19SPEAKER_01: You're doing pretend progress because it feels like you're making progress towards starting that lawn mowing business.
- 20:26SPEAKER_01: But in reality, what you're doing is going further and further in a debt.
- 20:31SPEAKER_01: You're making it harder and harder to succeed in that business.
- 20:36SPEAKER_01: Because what do you need as a lawn mowing business?
- 20:40SPEAKER_01: Customers.
- 20:41SPEAKER_01: And what do you need to get customers just enough to get started?
- 20:46SPEAKER_01: Knock on a door, have a push lawnmower and a tank of gas.
- 20:50SPEAKER_01: That's all you need, right?
- 20:51SPEAKER_01: You don't have to have the matching polo and hat and the wrapped vehicle and the nice brand new riding lawnmowers and the business cars and the flyers and the website.
- 21:02SPEAKER_01: You don't have to have all that at first.
- 21:04SPEAKER_01: Eventually, those things will come.
- 21:07SPEAKER_01: But by putting the cart before the horse, what you do is get pretend progress.
- 21:12SPEAKER_01: You feel like you're making progress, but you're actually going further and further in the debt.
- 21:17SPEAKER_01: Well, learning software development, it's not any different.
- 21:20SPEAKER_01: Okay.
- 21:21SPEAKER_01: When you say, hey, I'm gonna learn C sharp, be careful that the first thing you do isn't go, okay, now I need to get Visual Studio.
- 21:29SPEAKER_01: I install that, I'm gonna make sure I install all the right features.
- 21:32SPEAKER_01: And oh, you know what?
- 21:33SPEAKER_01: There's some plugins I've heard are really good for Visual Studio.
- 21:35SPEAKER_01: I'm gonna install those plugins.
- 21:37SPEAKER_01: And oh, you know what?
- 21:38SPEAKER_01: Actually, I've heard that JetBrain's writer is a pretty good IDE.
- 21:42SPEAKER_01: I'm gonna install that too and we're gonna compare them.
- 21:44SPEAKER_01: And I'm gonna install that.
- 21:45SPEAKER_01: And oh, you know what?
- 21:47SPEAKER_01: I should probably have a Mac because I want to develop in.NET MAUI, and so we don't want to deploy to iOS, but I need a Mac for that.
- 21:53SPEAKER_01: So let's get a Mac too and have a side by side.
- 21:55SPEAKER_01: And you do all these things instead of actually starting.
- 22:00SPEAKER_01: Starting to learn software development.
- 22:02SPEAKER_01: It's pretend progress.
- 22:04SPEAKER_01: Or maybe, and this might hit closer to home, you decide I'm going to learn new things in C sharp.
- 22:11SPEAKER_01: I'm a C sharp developer, I'm going to learn about something new.
- 22:14SPEAKER_01: Maybe I'll learn about SSDT, which is SQL Server in Visual Studio and deploying SQL Server projects right to SQL in Azure DevOps, right?
- 22:26SPEAKER_01: Or GitHub Actions.
- 22:28SPEAKER_01: So what are you going to do?
- 22:29SPEAKER_01: You're going to watch a YouTube video.
- 22:31SPEAKER_01: And there's a video cover, I have a video covering SSDT, but I have a different video that covers deployment.
- 22:39SPEAKER_01: Watch that video too.
- 22:40SPEAKER_01: And oh, I should probably watch a video on GitHub Actions.
- 22:42SPEAKER_01: And so you watch that video.
- 22:43SPEAKER_01: And oh, there's a video on Azure DevOps.
- 22:45SPEAKER_01: I can compare those and watch that video.
- 22:47SPEAKER_01: And then somebody else has a video on something else that's relevant.
- 22:50SPEAKER_01: So you watch those before you know it, you've watched 8, 10, 12 videos.
- 22:54SPEAKER_01: You've got pretend progress.
- 22:56SPEAKER_01: Okay.
- 22:57SPEAKER_01: You have informed yourself of what's potentially out there, but you've practiced nothing, which means that you can do pretty much nothing because you haven't actually tried it out to see what works and what doesn't work and how it works and get comfortable with the edge cases and all the rest.
- 23:18SPEAKER_01: So that's a problem.
- 23:20SPEAKER_01: Because what you're doing is you're not making real progress.
- 23:25SPEAKER_01: You're making pretend progress.
- 23:27SPEAKER_01: So instead, focus on making real progress.
- 23:32SPEAKER_01: If you watch a video, practice it.
- 23:35SPEAKER_01: Build something.
- 23:36SPEAKER_01: Try it out.
- 23:37SPEAKER_01: Make sure that you're actually understanding what you're doing.
- 23:41SPEAKER_01: If you're going to start a lawnmowing company, go knock on a door.
- 23:45SPEAKER_01: Get your first customer.
- 23:46SPEAKER_01: Okay.
- 23:47SPEAKER_01: Making real progress allows you instead of building up a debt, instead, what you're doing is building up a credit.
- 23:55SPEAKER_01: Okay, so if you're knocking on doors and getting customers for a lawn mowing company, well, now you've got lawn to mow, you've got income coming in.
- 24:03SPEAKER_01: That can start paying for, hey, let's do a little upgrade.
- 24:06SPEAKER_01: What's the upgrade we need first?
- 24:07SPEAKER_01: Maybe it's a better lawn mower?
- 24:09SPEAKER_01: Okay.
- 24:10SPEAKER_01: Or maybe it's a trimmer.
- 24:11SPEAKER_01: Okay, take the profits and buy a trimmer.
- 24:15SPEAKER_01: Instead of going into debt, you're now just using your profits appropriately.
- 24:19SPEAKER_01: In the same way for developers, instead of just spending 8, 10, 12, 15 hours watching videos and getting nowhere, instead take an hour and make progress on one video.
- 24:34SPEAKER_01: Test it out, practice it out.
- 24:36SPEAKER_01: So that now, two weeks from now, you will have more skills and be able to do more things than you could today.
- 24:44SPEAKER_01: Versus you've watched 30 videos in two weeks, but you can't really do anything you couldn't do today.
- 24:50SPEAKER_01: You know more, kind of, but that's it.
- 24:53SPEAKER_01: Okay?
- 24:54SPEAKER_01: So don't just make pretend progress, make real progress.
- 24:58SPEAKER_01: And the last one, number eight, is the biggest pitfall, or the eighth pitfall is not counting the cost.
- 25:09SPEAKER_01: Too many people make unwise decisions about how much something really costs.
- 25:18SPEAKER_01: So if you've worked for a company, your boss may have treated you like free labor, right?
- 25:24SPEAKER_01: They they say, hey, you know what, do this, do that.
- 25:26SPEAKER_01: And you're like, I got so much stuff to do.
- 25:27SPEAKER_01: And they're like, yeah, but I can add one more thing to your plate because I can just say get it done, which means it's essentially free for your boss.
- 25:35SPEAKER_01: But it's not free, right?
- 25:36SPEAKER_01: Like it takes your time, it makes you worn out, it makes you more irritated the company, and it makes you more likely to quit.
- 25:43SPEAKER_01: So there's a cost there.
- 25:45SPEAKER_01: Well, when it comes to building apps, I tell people don't just start with the idea, I'm gonna build an app.
- 25:52SPEAKER_01: Because there's so many cases where it'd be better to buy something, it'd be better to not build an app.
- 25:59SPEAKER_01: Uh, it may be better to use Excel rather than trying to build a custom app.
- 26:04SPEAKER_01: Because when you start to count the costs, you realize, ooh, that's kind of expensive.
- 26:09SPEAKER_01: So, you know, recently there was a big hoopla, and there always is, when Mass Transit said, hey, in about six months, we're going to start charging companies to use our product rather than make it just free and open source.
- 26:26SPEAKER_01: And people freaked out and said, we're going to write our own.
- 26:29SPEAKER_01: Guess what?
- 26:30SPEAKER_01: That's a lot more expensive.
- 26:32SPEAKER_01: If you start actually counting the cost of what's going to take in development hours, and then the cost it takes to maintain that, and the cost it's going to take when production goes down because you have a bug in your code and you have to fix it.
- 26:48SPEAKER_01: And that takes you away from other projects and it loses you time.
- 26:52SPEAKER_01: You know, production costs dollars every time it's down.
- 26:56SPEAKER_01: All of a sudden it gets very expensive.
- 26:58SPEAKER_01: And you go, boy, I'd love to spend$1,000 or$2,000 a year and have something that does it for me.
- 27:04SPEAKER_01: And you're like, oops, that's what we could have done before, right?
- 27:07SPEAKER_01: You didn't count the cost.
- 27:08SPEAKER_01: When it comes to training, count the cost.
- 27:11SPEAKER_01: I used to have a training calculator on my website.
- 27:14SPEAKER_01: I took it off because it wasn't really easily understood.
- 27:17SPEAKER_01: We want to kind of revamp it and bring it back.
- 27:19SPEAKER_01: But the training calculator kind of broke down for you and allowed you to start making decisions about the cost of your education.
- 27:27SPEAKER_01: You see, if you go to let's just pick a four-year college in the United States, I think the average is something like uh$35,000 a year.
- 27:37SPEAKER_01: So that's$140,000 for a four-year degree.
- 27:42SPEAKER_01: If you go through a four-year degree, you're gonna pay$140,000 plus room board and all the rest, and it's gonna take you four years.
- 27:53SPEAKER_01: Now, what if you went to a boot camp?
- 27:56SPEAKER_01: Well, a boot camp might cost you$20,000 and it might be six months.
- 28:02SPEAKER_01: So it's three and a half years less, and it's gonna be$120,000 less.
- 28:08SPEAKER_01: Okay, so now you can start comparing apples to apples and go, what's the end result of what I'll be outside that boot camp versus what's the end result of me after a four-year degree?
- 28:19SPEAKER_01: What are the positives and negatives?
- 28:21SPEAKER_01: Because yes, I have a degree, and that's that's great.
- 28:24SPEAKER_01: Maybe my employers are gonna be looking for a degree.
- 28:26SPEAKER_01: Most aren't anymore, or a lot aren't anymore.
- 28:29SPEAKER_01: But let's just say they are.
- 28:31SPEAKER_01: Well, okay, but is that worth three and a half years difference?
- 28:36SPEAKER_01: Or then you can go down one level below that and say, hey, Tim's got a C sharp master course for$500.
- 28:42SPEAKER_01: It's gonna take me six months to go through as well, but it's$500, and I have it for life.
- 28:48SPEAKER_01: And you know,$500 and six months of my time working part-time at my own pace, maybe that's cheaper than the boot camp, and it's also maybe a better quality education than the boot camp or the college degree, and I get it done three and a half years early.
- 29:06SPEAKER_01: Or maybe you say, hey, you know what?
- 29:08SPEAKER_01: No.
- 29:08SPEAKER_01: Tim's got free stuff on YouTube.
- 29:10SPEAKER_01: Other people have free stuff on YouTube, and Tim even provides the path to learn this stuff in, what to learn in what order for free.
- 29:19SPEAKER_01: So maybe I just take the you know, the free learning path and figure out which videos apply to that learning path and fill in the gaps with other creators for the areas that I'm missing.
- 29:30SPEAKER_01: And I put it together, and maybe it takes me a year, but it's free.
- 29:33SPEAKER_01: Okay?
- 29:34SPEAKER_01: And so you start counting the costs and figure out which one is best, because maybe a year is cheaper because you have the time but not the money.
- 29:44SPEAKER_01: Or maybe$500 is cheaper because you have the$500 and you want to spend less time and get a job earlier.
- 29:52SPEAKER_01: Or maybe you say, you know, you know what, I can get some scholarships and I can get some help and I can get that for your degree, and that's gonna be better for me because it provides me these other benefits.
- 30:04SPEAKER_01: But you start to evaluate and say, what's the cost of each of these options?
- 30:09SPEAKER_01: Because free is never free.
- 30:11SPEAKER_01: Because free takes your time, free takes your effort, and free might not be the right direction.
- 30:16SPEAKER_01: And again, I provide free stuff because I want everyone to have a great education in C sharp, not just those who can afford it.
- 30:23SPEAKER_01: I don't push you to buy my paid content, but I would encourage you to evaluate the cost of every decision you make.
- 30:31SPEAKER_01: Because whichever decision you make is going to cost, it's going to have downsides.
- 30:36SPEAKER_01: And if you go into it with your eyes wide open, then you can make a better decision, right?
- 30:42SPEAKER_01: It's coming back to the idea of if I only have one choice, then I don't have a choice, right?
- 30:47SPEAKER_01: But if I learn more things, I have more options.
- 30:49SPEAKER_01: If I have more options, I can choose the best option for the circumstance.
- 30:54SPEAKER_01: And if you choose the best option for the circumstance and you have enough information or more information than you did before, well, then you can better count the cost.
- 31:04SPEAKER_01: So count the cost of whatever decision you make in learning as well as in software development itself.
- 31:11SPEAKER_01: Okay, so there's eight different pitfalls that I would encourage you to think through, encourage you to avoid, if at all possible, avoid all eight of those pitfalls because it will launch you forward faster.
- 31:23SPEAKER_01: There's lots of mistakes you can make when learning software development.
- 31:26SPEAKER_01: But if you avoid these eight mistakes, you're gonna become a software developer a lot faster and you're gonna achieve your goals a lot easier.
- 31:34SPEAKER_01: Now, next week we're gonna talk about shortcuts that you can take when learning software development.
- 31:40SPEAKER_01: Don't get too excited.
- 31:41SPEAKER_01: Um, I'm not going to give you this, you know, the one simple trick that makes your life better.
- 31:45SPEAKER_01: That's not what I do because we're all about practicality and real world here.
- 31:49SPEAKER_01: But there are some things you can do to make sure that you're being the most efficient possible when learning software development.
- 31:55SPEAKER_01: So we'll call them shortcuts.
- 31:57SPEAKER_01: All right.
- 31:57SPEAKER_01: So thanks for listening.
- 31:59SPEAKER_01: And as always, I am Tim Corey.
- 32:01SPEAKER_00: Thank you for joining us for this episode of Dev Questions.
- 32:04SPEAKER_00: When you're ready to learn to think and code like a professional developer, head over to IamtimCorey.com and enroll in a course.