Latest / DevQuestions with Tim Corey / 153 Top 5 Mistakes Developers Make
Transcript
- 0:00SPEAKER_01: Welcome to the Dev Questions Podcast with Tim Corey.
- 0:03SPEAKER_01: Join us each episode as we tackle the questions you are asking about a career in software development, understanding the industry, and new technology.
- 0:12SPEAKER_01: If you're just starting out or you want to grow stronger as a developer, this is the place to get your questions answered.
- 0:19SPEAKER_01: Now, here's your host, expert developer and online educator, Tim Corey.
- 0:25SPEAKER_02: What should a software developer not do?
- 0:28SPEAKER_02: There's lots of advice out there on what you should do as a software developer.
- 0:33SPEAKER_02: In fact, this podcast series is all about what things should I do and how should I do them well?
- 0:39SPEAKER_02: And what you know were the answers to my questions.
- 0:42SPEAKER_02: But this one especially is really important because yes, you should do a lot of things, but there's some things you should avoid doing.
- 0:51SPEAKER_02: And so I've chosen my top five.
- 0:53SPEAKER_02: Top five things that I think that every software developer needs to not do.
- 1:00SPEAKER_02: And these things are, if you avoid them, will really save you a lot.
- 1:04SPEAKER_02: And if you don't avoid them, if you fall into these traps, then it's gonna cost you a lot of time, money, and effort.
- 1:12SPEAKER_02: In fact, the last one we talk about can really kill your career.
- 1:16SPEAKER_02: So let's talk about the five things that you should not do as a software developer.
- 1:22SPEAKER_02: And these are pretty common.
- 1:24SPEAKER_02: So, number one, think that programming is about syntax.
- 1:30SPEAKER_02: This is especially true of newer developers who are just coming in.
- 1:34SPEAKER_02: They're learning about programming.
- 1:36SPEAKER_02: And they'd say, okay, I've learned about the if statement, the for loop, and the while loop, and I learned about different variables and generics and object-oriented programming and inheritance and encapsulation, and I got all these things, and I've learned how to do these in, let's say, C sharp.
- 1:51SPEAKER_02: And so they focus in on, I know how to do all this stuff.
- 1:57SPEAKER_02: That's not what programming is about.
- 2:00SPEAKER_02: That's not what software development is about.
- 2:02SPEAKER_02: You absolutely need to know the syntax.
- 2:06SPEAKER_02: You absolutely will benefit from knowing more syntax.
- 2:11SPEAKER_02: But that's not the job of a software developer.
- 2:15SPEAKER_02: A software developer's job is not to just know syntax, it's about putting together that syntax into logic, taking logic and saying, hey, this syntax will help me enact this logic.
- 2:29SPEAKER_02: And here's how I build this application using the syntax that I have.
- 2:34SPEAKER_02: Because quite frankly, you don't have to know a lot of syntax in order to build a highly functional application that does what it needs to do.
- 2:44SPEAKER_02: What you need is the experience and logic abilities to build the application.
- 2:50SPEAKER_02: That comes from practicing, from building applications.
- 2:54SPEAKER_02: It doesn't come from knowing more stuff.
- 2:58SPEAKER_02: This is why changing languages too soon is a real problem for new developers.
- 3:04SPEAKER_02: Because you say, hey, I've learned most of the syntax of C sharp.
- 3:08SPEAKER_02: Now I'm going to skip over to React.
- 3:11SPEAKER_02: I'm going to learn about the JavaScript syntax and specifically the React syntax.
- 3:17SPEAKER_02: No, you need to build stuff because that's where you get your skills from.
- 3:22SPEAKER_02: That's where you become a better developer.
- 3:25SPEAKER_02: So the first thing that you should not do as a software developer is think that programming is just about the syntax.
- 3:34SPEAKER_02: Now, number two, you should not just follow tutorials.
- 3:40SPEAKER_02: And as a person who creates tutorials, what I'm not saying is don't watch tutorials.
- 3:46SPEAKER_02: I'm not saying that.
- 3:47SPEAKER_02: Definitely use them.
- 3:48SPEAKER_02: They're important, they're valuable.
- 3:50SPEAKER_02: I wouldn't create them otherwise.
- 3:53SPEAKER_02: However, just following along with tutorials isn't going to accomplish what you need to accomplish in order to become a great software developer.
- 4:05SPEAKER_02: Think of it this way: when you learn to walk, or when your child learned to walk, the first thing you do is you help them, you hold their hands.
- 4:15SPEAKER_02: When I my boys were younger, I would sometimes hold both of their hands.
- 4:19SPEAKER_02: And then I'd help them and help lift them up so they could start to learn the process of moving their feet and walking.
- 4:26SPEAKER_02: And they got there eventually.
- 4:29SPEAKER_02: Started to figure out how to move their feet to move forward.
- 4:33SPEAKER_02: But at some point, I let go.
- 4:35SPEAKER_02: And at some point, they started to walk on their own.
- 4:39SPEAKER_02: And it was not an instant success.
- 4:42SPEAKER_02: In fact, they fell down a lot.
- 4:45SPEAKER_02: That's what kids do is they start to walk and they fall down.
- 4:49SPEAKER_02: They start to pick themselves back up and they try it again, they fall down again.
- 4:54SPEAKER_02: And that's okay because you know what?
- 4:56SPEAKER_02: That process teaches them.
- 4:58SPEAKER_02: And that process helps them learn okay, this is what caused me to fall down.
- 5:03SPEAKER_02: Now they're not thinking analytically about it.
- 5:06SPEAKER_02: They're just learning reactionary.
- 5:08SPEAKER_02: How do I do this thing?
- 5:10SPEAKER_02: And eventually I figure it out.
- 5:11SPEAKER_02: But you know what?
- 5:12SPEAKER_02: The same thing is true with learning software development.
- 5:16SPEAKER_02: Using a tutorial is kind of like having somebody hold your hands as you start your first steps into that thing.
- 5:23SPEAKER_02: And to be clear, this is not just for new developers.
- 5:27SPEAKER_02: I use tutorials almost every day.
- 5:31SPEAKER_02: And so, yes, as a senior software developer with over two decades of experience in the field building professional applications for huge companies and small ones, I have built thousands of applications.
- 5:46SPEAKER_02: I still hold somebody's hand and learn to take new steps in new areas and new things and new ways of doing things.
- 5:57SPEAKER_02: But at some point, you let go.
- 5:59SPEAKER_02: And at some point I let go and say, hey, I'm going to try and build this down my own.
- 6:04SPEAKER_02: And it doesn't work right the first time.
- 6:07SPEAKER_02: Almost always I'll have mistakes or have issues and errors and problems come up because I'm trying to figure out how do I do this myself?
- 6:15SPEAKER_02: How do I walk in this?
- 6:18SPEAKER_02: And when I do that, instead of panicking, freaking out, and emailing the person who created the tutorial and say, hey, this doesn't work.
- 6:26SPEAKER_02: Why doesn't it work?
- 6:27SPEAKER_02: I try and figure it out.
- 6:28SPEAKER_02: I try to figure out why I fall.
- 6:31SPEAKER_02: And through that process, I learn new things.
- 6:34SPEAKER_02: Sometimes things that weren't even covered in the original tutorial.
- 6:38SPEAKER_02: And then from there, I practice it some more.
- 6:40SPEAKER_02: And so it becomes natural.
- 6:42SPEAKER_02: And soon walking becomes jogging and jogging becomes running.
- 6:46SPEAKER_02: And I become an expert in that area, not because I just held someone's hand and said, oh, I want to go over there now.
- 6:54SPEAKER_02: I want to go over there now.
- 6:55SPEAKER_02: I want to go over there now.
- 6:56SPEAKER_02: No, I learned how to walk so I could do that myself.
- 7:01SPEAKER_02: So when it comes to learning to become a software developer, the number two thing that I say, hey, don't do this.
- 7:10SPEAKER_02: And that is don't just follow tutorials.
- 7:14SPEAKER_02: Absolutely use them.
- 7:16SPEAKER_02: But make sure at some point you practice on your own, you figure out how to walk on your own and move beyond just what a tutorial covered.
- 7:27SPEAKER_02: Number three thing to avoid as a software developer is avoid focusing on only one way of doing something.
- 7:34SPEAKER_02: I hear this a lot.
- 7:35SPEAKER_02: People ask me the question, and you know what?
- 7:38SPEAKER_02: It's absolutely a legitimate question to ask.
- 7:41SPEAKER_02: They'll ask, what's the best way of doing this?
- 7:45SPEAKER_02: What's the best web application in.NET?
- 7:48SPEAKER_02: What's the best desktop type?
- 7:50SPEAKER_02: What's the best database to put my stuff in?
- 7:54SPEAKER_02: And the answer is always going to be, it depends.
- 7:58SPEAKER_02: And the reason why is because when you focus in and say, hey, this is the best, you're wrong.
- 8:05SPEAKER_02: Not necessarily in that particular circumstance, but overall.
- 8:09SPEAKER_02: So if you say that SQL Server is the best database to choose from, you're wrong.
- 8:17SPEAKER_02: It's a great choice for a lot of situations.
- 8:20SPEAKER_02: And I use it personally quite a bit.
- 8:22SPEAKER_02: But I also use NoSQL databases.
- 8:25SPEAKER_02: I also use SQLite.
- 8:27SPEAKER_02: I also use just text files or APIs or the list goes on.
- 8:32SPEAKER_02: The situation needs to dictate what the most important or best thing to do is.
- 8:39SPEAKER_02: And that situation isn't just, okay, I'll explain it more.
- 8:42SPEAKER_02: It's a it's a mobile application that has no, no, no.
- 8:46SPEAKER_02: The situation is also what's your team makeup?
- 8:49SPEAKER_02: What are your skills?
- 8:50SPEAKER_02: What are your team skills?
- 8:51SPEAKER_02: What are you comfortable with?
- 8:53SPEAKER_02: What do you already have in place?
- 8:55SPEAKER_02: What are the things that your company already uses?
- 8:58SPEAKER_02: What do you have access to?
- 8:59SPEAKER_02: What are the costs associated for you specifically?
- 9:02SPEAKER_02: Where are you going to host this?
- 9:04SPEAKER_02: The list goes on of the questions that you need to answer to figure out what is best for a specific situation.
- 9:12SPEAKER_02: And once you figure out, okay, for us, that will be SQL Server.
- 9:17SPEAKER_02: That's great.
- 9:18SPEAKER_02: Great.
- 9:19SPEAKER_02: But then don't get locked in and say, okay, for our next application, also SQL Server.
- 9:24SPEAKER_02: You know what?
- 9:25SPEAKER_02: The answer probably is SQL Server.
- 9:27SPEAKER_02: But don't get so focused in that that you don't take a step back and look and say, hey, let's evaluate this at least a little bit.
- 9:36SPEAKER_02: Because when you focus on one way of doing things, you are leaving out a lot.
- 9:42SPEAKER_02: Software development is not about prescriptive ways of doing everything.
- 9:47SPEAKER_02: It's not just this cookie cutter, we have, you know, this puzzle piece always fits this situation, therefore always use this puzzle piece.
- 9:56SPEAKER_02: That's not how software development works.
- 10:00SPEAKER_02: We have different ways of accomplishing the same thing because different ways will fit better in different circumstances.
- 10:08SPEAKER_02: This is why when.NET comes out with new features to C sharp, where there's new language features or new ways of doing things.
- 10:17SPEAKER_02: And people say, oh, that's that's stupid.
- 10:19SPEAKER_02: It's just one more thing, it's just polluting the language.
- 10:22SPEAKER_02: It's not.
- 10:23SPEAKER_02: What it's doing is giving you options.
- 10:26SPEAKER_02: And options are good because in certain circumstances, that option will be better than this option.
- 10:32SPEAKER_02: For example, records and classes.
- 10:34SPEAKER_02: Well, records are just an improved version or a stuff added on top of classes.
- 10:41SPEAKER_02: I use classes a lot, but there are times when records are the right choice.
- 10:46SPEAKER_02: And be able to say, give me a record, is great.
- 10:50SPEAKER_02: So don't just focus on we only ever do things one way.
- 10:56SPEAKER_02: Make sure that you have at least look at the other options.
- 11:01SPEAKER_02: Okay.
- 11:02SPEAKER_02: Number four of things that software developers really should not do, number four is be closed off to change.
- 11:10SPEAKER_02: Change is going to happen.
- 11:14SPEAKER_02: I hear people a lot with.NET, especially.NET changes every year.
- 11:19SPEAKER_02: So right now we are at.NET 7.
- 11:23SPEAKER_02: But in November of 2023, we'll have.NET 8.
- 11:27SPEAKER_02: And in November of 2024, we'll have.NET 9.
- 11:30SPEAKER_02: And then November 2025, we'll have.NET 10.
- 11:34SPEAKER_02: And people look at that and go, oh man, there's things are changing too fast.
- 11:38SPEAKER_02: Well, actually, you can go every other year if you wanted to.
- 11:42SPEAKER_02: But even then, people say, why would they have a stop?
- 11:46SPEAKER_02: Well, do you really want that?
- 11:49SPEAKER_02: Because as soon as Microsoft were a stop, you'd say, oh, it's left them behind.
- 11:55SPEAKER_02: The world has changed now.
- 11:57SPEAKER_02: Because again, remember, 10 years ago, the world's a vastly different place.
- 12:02SPEAKER_02: And so change is going to happen.
- 12:04SPEAKER_02: Whether your language changes or not, change will happen.
- 12:08SPEAKER_02: And so everything is going to change.
- 12:11SPEAKER_02: How browsers work.
- 12:13SPEAKER_02: It used to be that the place you accessed the internet from was a desktop.
- 12:20SPEAKER_02: And so widescreen layouts were the thing.
- 12:25SPEAKER_02: But now more people access the internet from a mobile device than they do from a desktop.
- 12:33SPEAKER_02: Change happened.
- 12:34SPEAKER_02: That was not something that was dictated by the industry.
- 12:38SPEAKER_02: It was dictated by how people were able to access it and what they liked and how it worked.
- 12:44SPEAKER_02: And yes, different things are going to happen that drive change certain ways, but you have to be able to embrace that change.
- 12:53SPEAKER_02: The language, the way you like it, is going to change.
- 12:57SPEAKER_02: The systems and the way they work are going to change.
- 13:00SPEAKER_02: The best practices for what to do, it's going to change.
- 13:04SPEAKER_02: The companies that are the good guys, and let's put that in big old quotes because, you know, but the good guy companies, they're going to change.
- 13:12SPEAKER_02: In fact, right now, I would argue that Microsoft is probably the biggest good guy in the space.
- 13:19SPEAKER_02: This was absolutely not the case a decade ago or 15 years ago.
- 13:25SPEAKER_02: At one point, Microsoft said, hey, if you want to develop, you're going to develop on Windows.
- 13:32SPEAKER_02: And it's going to be using Internet Explorer.
- 13:34SPEAKER_02: And that's the way it's going to be.
- 13:35SPEAKER_02: We're going to crush all the competition.
- 13:38SPEAKER_02: It's going to be us or nothing.
- 13:40SPEAKER_02: And they really tried hard to say, you know what, we're going to dictate what happens.
- 13:46SPEAKER_02: And at some point, that stopped working.
- 13:48SPEAKER_02: And that's a good thing because that was not the right approach.
- 13:52SPEAKER_02: But in the last 10 years, things have radically changed.
- 13:58SPEAKER_02: Now Microsoft is a leader in open source.
- 14:02SPEAKER_02: They're the number one contributor to multiple open source projects that don't even have to do with Microsoft.
- 14:09SPEAKER_02: Okay?
- 14:09SPEAKER_02: They pay people to work on open source projects that aren't theirs or under their control.
- 14:17SPEAKER_02: They also open source all of.NET.
- 14:20SPEAKER_02: They have a very developer-friendly policy over things like Visual Studio is free for developers, SQL Server is free for developers.
- 14:30SPEAKER_02: They have tons of things.
- 14:32SPEAKER_02: Azure has a ton of free stuff and more for developers.
- 14:36SPEAKER_02: There's a lot of stuff that they do that encourages collaboration with people outside of Microsoft.
- 14:44SPEAKER_02: They decide, hey, you know what, we're going to follow the industry and go with Git because that's what the industry went, instead of using our own system.
- 14:53SPEAKER_02: And they said, you know, GRPC, that's not a Microsoft thing, it's actually came from Google.
- 14:58SPEAKER_02: But the industry said this is the tool.
- 15:00SPEAKER_02: And so Microsoft said, sure, we'll support that and we'll try and do it the best.
- 15:05SPEAKER_02: That's a great move by a big company.
- 15:08SPEAKER_02: On the other hand, there are other companies that used to be the good guys that are now saying, hey, our way or the highway.
- 15:16SPEAKER_02: We're going to lock down our ecosystem.
- 15:18SPEAKER_02: For example, for Mac, you have to have a Mac in order to deploy to the iOS store.
- 15:23SPEAKER_02: Well, why?
- 15:24SPEAKER_02: Because you have to.
- 15:27SPEAKER_02: That's not a great encouraging move.
- 15:30SPEAKER_02: That's not encouraging the industry to move towards Apple products.
- 15:34SPEAKER_02: That's saying we're a walled garden and you need to either get inside the garden or don't come near us.
- 15:40SPEAKER_02: That's what Microsoft did a decade ago.
- 15:43SPEAKER_02: You see how the tables kind of flip?
- 15:45SPEAKER_02: That happens.
- 15:46SPEAKER_02: You need to be able to adapt to change and be open to the idea that things are different now than they were five years ago or 10 years ago.
- 15:55SPEAKER_02: My code needs to update with it.
- 15:59SPEAKER_02: So the last thing, the most important thing, a software developer should not do.
- 16:06SPEAKER_02: And I have seen this go wrong a lot.
- 16:09SPEAKER_02: In fact, I have been paid lots of money to help people recover from this.
- 16:16SPEAKER_02: And that is you should not stop learning.
- 16:21SPEAKER_02: This is a career killer.
- 16:23SPEAKER_02: Now, it does not mean you'll be out of a job.
- 16:27SPEAKER_02: However, I have seen dozens of developers and quite a few companies that have worked themselves into a corner where they're like, I don't know what to do.
- 16:40SPEAKER_02: And some of them have even, companies have gone out of business and developers have lost their jobs and lost a lot of their income because of this.
- 16:50SPEAKER_02: Because what happened was at some point they said, you know what?
- 16:52SPEAKER_02: I don't have time.
- 16:54SPEAKER_02: I need to put more features in.
- 16:56SPEAKER_02: I need to build more things for this application.
- 16:59SPEAKER_02: I don't have time to learn new things.
- 17:03SPEAKER_02: Or their boss dictated that and said, you know what?
- 17:05SPEAKER_02: No, you don't have time to learn.
- 17:07SPEAKER_02: Just build stuff.
- 17:08SPEAKER_02: And they said, well, then I guess I can't learn.
- 17:12SPEAKER_02: I'm not going to use my time outside of work because that's not right, right?
- 17:18SPEAKER_02: You need to keep learning, even if that means a personal investment outside of work.
- 17:24SPEAKER_02: And that may feel hard and it may feel like you don't want to do that.
- 17:30SPEAKER_02: But you know what?
- 17:31SPEAKER_02: You have a couple of options here.
- 17:33SPEAKER_02: Either find a job that'll let you learn in the job, which is awesome, that'd be great.
- 17:38SPEAKER_02: Or you're going to stagnate in your career.
- 17:40SPEAKER_02: And if you stagnate in your career, you will still have a job.
- 17:43SPEAKER_02: In fact, there are still people being hired today to be.NET Framework developers.NET Framework is in maintenance mode.
- 17:52SPEAKER_02: It's paused.
- 17:54SPEAKER_02: Now, it's still a platform you can build down, but it's paused.
- 17:59SPEAKER_02: That's not the way of the future.
- 18:01SPEAKER_02: And so if you just always focus there, well, you know what?
- 18:06SPEAKER_02: The world is passing you by.
- 18:07SPEAKER_02: We're already on.NET 7 and we're moving well beyond what's in the.NET framework.
- 18:14SPEAKER_02: But you know what?
- 18:15SPEAKER_02: You can stay there for a while, but at some point you have to keep your skills up to date so that let's just say that an economic downturn comes and your company lets you go.
- 18:28SPEAKER_02: This has happened quite a bit in the industry.
- 18:31SPEAKER_02: Well, if the company lets you go, what job can you get?
- 18:37SPEAKER_02: Well, to be fair, you still have years of development experience.
- 18:42SPEAKER_02: Absolutely.
- 18:44SPEAKER_02: However, if you don't have relevant experience in the modern pieces of the language, then you're at a disadvantage compared to others.
- 18:56SPEAKER_02: And so you might not get a job working in.NET 7 or in.NET 6.
- 19:01SPEAKER_02: Instead, what you get a job in is maybe.NET framework.
- 19:06SPEAKER_02: And at some point, those jobs are going to reduce in number until it's harder and harder to find a job.
- 19:14SPEAKER_02: Now, don't despair.
- 19:15SPEAKER_02: At some point, that goes back up because at some point people drop out from doing.NET framework, and then there's still a need for, and so that market kind of picks back up.
- 19:27SPEAKER_02: It's not going to go away forever.
- 19:28SPEAKER_02: You can be a cobalt developer today.
- 19:30SPEAKER_02: Okay.
- 19:30SPEAKER_02: If you know cobalt, you can get a job today as a cobalt developer.
- 19:34SPEAKER_02: However, you're kind of stuck there.
- 19:36SPEAKER_02: Okay.
- 19:37SPEAKER_02: If you're a cobalt developer, you're not getting hired for.NET 8 or.NET 7.
- 19:43SPEAKER_02: You're going to be hired for COBOL.
- 19:44SPEAKER_02: And so you're not going to get the new stuff.
- 19:46SPEAKER_02: You're not going to be able to progress and change with the industry.
- 19:50SPEAKER_02: You're kind of stuck in that niche.
- 19:52SPEAKER_02: And you're stuck with a few options for jobs rather than having a wider range of jobs.
- 19:59SPEAKER_02: I've come into companies, multiple companies, where they did this as a company.
- 20:03SPEAKER_02: They stopped learning.
- 20:04SPEAKER_02: They stopped growing as a company.
- 20:06SPEAKER_02: And so they paused at a certain technology.
- 20:09SPEAKER_02: And they kind of picked their head up one day and went, uh-oh.
- 20:15SPEAKER_02: We're kind of up a creek where we can't hire new developers and train them up because no one wants to work with this old technology.
- 20:23SPEAKER_02: And it's expensive to hire the people who do have a skill because they are in a little bit of a demand.
- 20:29SPEAKER_02: If we can find them even, because no one wants to do this.
- 20:33SPEAKER_02: And it's starting to become harder and harder to get our applications to work because they're not modern.
- 20:40SPEAKER_02: And so they don't work with modern things.
- 20:43SPEAKER_02: And so they've hired me to come in and change over their entire system and do a bit of a rewrite.
- 20:50SPEAKER_02: And rewrites are expensive.
- 20:53SPEAKER_02: And sometimes companies have not succeeded in that.
- 20:57SPEAKER_02: And if they don't succeed, sometimes they even fail.
- 21:02SPEAKER_02: I'm watching a company right now where I'm pretty sure that's what's coming.
- 21:06SPEAKER_02: So it happens a lot.
- 21:10SPEAKER_02: Now you can move forward, you can pick your head up, you can start to learn again, but it's going to be hard.
- 21:17SPEAKER_02: It's going to be hard.
- 21:19SPEAKER_02: So the key is if you can, don't stop learning.
- 21:23SPEAKER_02: Because learning little bits over time is going to help you stay on track.
- 21:28SPEAKER_02: If you try to learn all this stuff at once, it's going to be really hard to get back up to speed.
- 21:35SPEAKER_02: Okay.
- 21:35SPEAKER_02: It's important for your career, even if you have to do it outside of work.
- 21:40SPEAKER_02: Okay, so those are the five things that software developers should not do if you want to make sure that you have a long, healthy, and successful career as a software developer.
- 21:52SPEAKER_02: Thanks for listening.
- 21:53SPEAKER_02: And as always, I am Tim Corey.
- 21:55SPEAKER_00: Thank you for joining us for this episode of Def Questions.
- 21:58SPEAKER_00: Tim is committed to making it easier for you to become a developer.
- 22:02SPEAKER_00: If you would like to help make more content like this possible, please like, subscribe, rate, and share Dev Questions.
- 22:09SPEAKER_00: You can also send your questions to questions at IamTimcorey.com.
- 22:14SPEAKER_00: Until next time, remember, you are too smart and your time too valuable to waste it making all the mistakes Tim did.
- 22:21SPEAKER_00: When you're ready to learn to think and code like a professional developer, head over to imtimcore.com and enroll in a course.