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
291. Who Should Be a Software Developer?
Use Left/Right to seek, Home/End to jump to start or end. Hold shift to jump forward or backward.
Who can be a software developer? Can anyone learn to write code and make a living off of it? Does it take a certain type of person to succeed in software development? These are the questions we will answer in today's episode of DevQuestions.
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/
Who should be a software developer? Are you cut out for it? Should you recommend it to others? Are there specific requirements or personality types that are required in order to become a developer? Here's what I believe. I believe that anyone can be a software developer. But not everyone should be a software developer. Let's talk about it in today's episode of Dev Questions.
SPEAKER_00Welcome to the Dev Questions podcast with Tim Corey.
SPEAKER_01Software development is more than just writing code. So let's talk about the rest of it. Specifically, let's talk about who should be a software developer. And let's start off with the statements that I've heard that I think are false, and I'll talk about why. So statement number one is you need to be good at math to be a developer. No, you don't. There are areas in software development that will require math. Some of them a little bit of math, some of them a lot of math. For example, if you want to be a game developer, you will probably encounter a lot of math because you have to figure out vectors and figure out angles and the geometries and so on of your characters and of your other things in the world. And so, yes, there's a lot of math that can be involved in game development. Some of that will be somewhat abstracted, but for the most part, you're gonna have to know how to work with math. If you want to work with LLMs, not just use them, but actually start building them or doing some machine learning, then there's gonna be some math involved in that as well. Some really complicated math and math that I don't want to do. So, yes, there are areas of software development that will require math. But in my 25, almost 30 year career, working with dozens, even hundreds of companies as a consultant, as well as working on staff at various companies, I used very little math. In fact, the most of the math that I used was of the addition, subtraction, multiplication, division type of math. Very entry-level math, nothing even approaching algebra for the most part. So, no, you don't need to know math for most line of business applications. Most businesses hiring are looking for just line of business developers, and they're looking for people who can build things that take data from the database and display it to the user and send it back. That's an oversimplification, but that's essentially what most of development really is. Now, yes, there are other areas that will be specific. You know, if you work for an accounting firm, you'll probably have to know more math because of what you're building. But for the most part, no, you don't need to be good at math to be a developer. And you're not limiting yourself by not knowing math or not taking advanced math classes. In fact, if you take advanced math classes, you probably won't use most of them. Now, they can be good for other reasons. They can give you an idea of how to build things logically or think logically. Yeah, that's helpful, but they probably won't go into your most used classes category if you look back at your life 10 years later from college. Okay, number two, only introverts make good developers. No. In fact, there are a lot of extrovert developers. Now, there is a stereotype for developers that developers are introverts. Developers are the ones in the basement, you know, working on a computer instead of talking to people. Yes, that's a stereotype. And the reason it's a stereotype is because it is generally the kind of the way we look at most developers, because a lot of developers do act like that. But that does not mean that you have to be an introvert in order to be a developer or that extroverts can't thrive in this field. They do. In fact, I've got a number of friends who were extroverts that do really well for themselves. In fact, that can be a superpower as a developer because so many developers are introverts that if you're an extrovert, then you can not just be a developer, but also communicate with others outside of our sphere, outside of just developers. You can talk to marketing and sales and your QA and all the rest of the people who aren't really in the know on how development works. You can talk to them and understand how to communicate with other humans besides just developers. So, yes, if you're an extrovert, you can absolutely be a great developer. Number three, you can only have a certain type of brain to be a developer. So you have to be wired a certain way. That's just not true. I have seen a number of different people from a number of different backgrounds with a number of different ways of thinking be developers. And in fact, again, this can be a superpower. Because when everyone else is thinking a certain way, by thinking a different way or having a different way of approaching the world or problems, well, all of a sudden, you can come up with solutions that everyone else overlooks because they don't think that way, and you do. This is why, even if you are artistic and really think in creative ways and are great at drawing or art or things of that nature, you can be a great developer because you can approach things differently while still being a good developer. So, no, you don't have to be a certain type of brainer or think a certain way in order to be a developer. Number four, and this is again, these are statements I believe are false. Certain people are just born developers and they're the only ones who succeed. This is not true. I have seen people who later in life decide, you know what, I've always done this, I want to be a developer now, and they have succeeded. I've seen people who were in totally different fields who said, Yeah, I want to be a developer and switched careers and did just fine. No, you don't have to be born a developer. That's kind of going back to that same, you have to have a certain brain type. These are not true. And this kind of comes to our bonus. Um, this is more of a thought rather than what people say, but I think it kind of encapsulates a lot of the pushback people get as to why they couldn't be developers from people who are developers. And that is the thought process that you need to be like me and approach development like me in order to be a developer. And this is what a lot of developers who are pushing back on others saying, no, you probably couldn't be a developer, or no, only this type of person can be a developer. What they're really thinking in their head subconsciously probably is something like, you need to look like me in order to be a developer, whether that is how they think or how they approach life, or if they're introvert versus extrovert, or if it is, you know, the way that they think about development or think about other things. But the problem is that that's very limiting and that's very um self-focused. And so what you're doing is you're saying, hey, I must be right, and everyone else must be like me in order to be like, to succeed like I have. But that's just not how the world works. And especially that's not how development works. In development, when you look at, let's just say C sharp, there's not just one way to approach pretty much any problem in C sharp. There are multiple different ways. And sometimes people will talk to me and say, you know, this is so frustrating. We already have a way of doing this. But if you look, the new way that's been added is different in some way. And you know what? That way will be beneficial in certain circumstances. Whereas the way you've done things before will work in other circumstances, and maybe most of them. But by having different ways of doing things, we can approach every problem and say, what is the right solution for here? And honestly, say it depends if we can evaluate the situation and find the exact thing that works best for that situation. The same is true for people. We don't want to have one type of developer because that won't help us. We need to have other people who have different ways of thinking, different ways of approaching problems, because we constantly have to think outside the box. And if we're all in the same box, well, then we all look and act the same way. So having those different ways of approaching things can be very, very helpful. So, no, you don't have to have one personality type or one way of thinking or one way of approaching software development in order to be a good developer. You don't have to be a lifelong developer who does it in their spare time and only thinks about development. You might be a person who just does it for a hobby. You might just do it as a side thing. You may do it just to pay the bills. Each of these approaches can be valid for you because is it the right approach? Well, it depends. It depends on you, your circumstances, the way you think, the way you want to approach your life, the way you want to look at your career. So when it comes to can you be a software developer, the answer is yes. So who can be a software developer? Anybody. I really do believe that anyone can be a software developer. I have taught people that other people said no, they can't be a software developer. And they became a developer. They became a professional developer. So, yes, the spectrum of people who can be developers is pretty wide, if not all-encompassing. So, what is it, the big things you have to be to be a developer? You have to think logically. This is what software is a is looking at a problem and saying, how can I break this down into logical steps and think through all of the cases where things might fall off the happy path and try to trying to approach that in a way that can keep the program running forward in the right direction. Now, thinking logically doesn't always come easy. And it's not something that you always just walk in the door and say, Yeah, I got this. But it can be taught. It's something that you can learn to do over time. You can build up those skills. It's like a muscle. The more you work it, the stronger you'll get. You might not be born with muscles upon muscles, but that doesn't mean that you can't put in the work to build up those muscles. So thinking logically is one of the things you have to be as a developer, and it can be taught. Uh, the second thing is you need to pay attention to detail. Ask any developer who's worked with a C-like language, um, and they'll tell you, yeah, I've forgotten a semicolon or two. Um, that's something we do a lot. And you know, if you you fail to close a curly brace or miss that semicolon, or you know, one little character can throw your entire application off or cause it to not run. So attention to detail is really important. But this can be learned. In fact, in my life, I don't have great attention to detail. Outside of software development, I don't have that great attention to these little details. I miss a lot. Um, when my wife gets a haircut, she has to tell me because I don't necessarily notice that she's lost three inches of hair or changed her hair color even sometimes. And that's just, I don't see those details. But yet in software development, I have learned to be extremely detailed. And part of it is the environment, and part of it is I've learned that when I'm writing code, I have to be very careful to pay attention. This can be learned. Okay, so that's the second thing that a software developer needs to be. First, they need to pay it, think logically. Second is they need to pay attention to detail. And then number three is they need to be persistent. This takes willpower. As a software developer, you will bang your head against the desk a lot. You will hit the wall. You will not physically, but logically, you will get stuck where you're like, man, what do I do? How do I fix this bug? I can't figure out what the problem is. This happens a lot. In fact, the higher you go up the ladder at work, the you go from junior developer to senior developer, guess what? Those problems don't get easier. They just scale with your ability to fix them. So you're always working on hard problems, problems that make you struggle. It doesn't matter if you're a junior developer trying to figure out where that missing semicolon is, all the way up through a senior developer trying to figure out why network packets get dropped off occasionally. Like, doesn't matter your level, you're going to find problems that meet or exceed your ability to fix them. So the key here is to be persistent, to push through. Because sometimes a bug will take days to even identify what's going on. It takes a lot of work. It takes a lot of willpower to, when you get stuck, to say, I'm going to continue pushing forward, even though it feels like I'm making no progress. Being persistent. Those are the three things that developers need to be. Think logically, attention to detail, and be persistent. Yeah, those three things, yeah, you can be a developer. So anyone can be a developer, but I don't think everyone should be a developer. And here's why. Number one, it's going to be frustrating. Like I said, you're going to hit the wall logically all the time. You're going to get stuck in bugs all the time. That's your career. From now on, is you're going to have to figure out how to fix problems. And for some people, when they fix those problems, it is liberating. It's the best feeling in the world. I love having a really tough bug that really makes me struggle. I don't love the struggle part, but I love getting through that, figuring it out, finding out what's going on and being able to fix it. That is liberating to me. And it helps me push through all those hard bugs because I know that if I keep pushing, eventually I will push through. And when I do, I get that great feeling of success. But that's frustrating. And if you can't push through that frustration, then maybe this is not the career for you. Number two, it takes hard work. This is something that people have forgotten. Because for a while, just doing a little bit of work allowed you to get a great job as a software developer. But that's not the case anymore. And it hasn't been a case for a number of years. It's just that for a little while that was true. And so people got this mistaken impression that being a software developer is easy, or that somehow that it's not hard work, but it really is. You might say, well, now we have AI. Yeah, that's not going to make work any easier. In fact, it'll probably make work harder. Because what's going to happen? Even if the AI helps us write software, what it's going to do is just elevate the bugs. It's going to make the bugs even harder to fix, even harder to identify. There's more code written that we didn't write, but yet we have to fix it because no, the AI is not going to fix the hard bugs. It's not going to know how to solve the hard problem because it's too large a scope, or it's it's something that it hasn't seen before, or whatever the case may be, it's going to be even harder work. So, no, AI doesn't make our work easy. If it made our work easy, we wouldn't have jobs. But we do have jobs, and actually, we're going to have jobs for a very long time. AI is not replacing them. So it takes hard work. Number three, it engages your mind, but not really your body. This is hard. And some people say, well, software developers are so bad for your body. It can be, but you also have the ability to get up and do something about that. You don't have to be chained to your desk 24-7. You can get up at the end of your day and go to the gym. Now, how often do software developers do that? Not as often they probably should. But you can put in that work. Again, going back to putting in hard work. But in general, you're not going to be walking around as a software developer. You're not going to be, you know, talking to people and having these areas where you're doing things actively. You're not going to be swinging a hammer. You're not going to be going from house to house doing things. You're going to be sitting in a cubicle or sitting in your office looking at a computer screen for a lot of hours. Now, we do get up to move a little bit when we have meetings, which meetings are terrible, but we go from our chair in our cubicle to our chair in the conference room and then back. Like that's that's the extent of what software developers typically do during the workday. So yeah, it's getting hard on your body because you're not doing as much. And it's also hard in your mind because you are thinking a lot. This is what you're doing all day long is engaging your mind, which means it can be mentally draining. And because of that, it can be difficult sometimes to come home and do other things or to engage. And sometimes what software developers do is just kind of check out and do things that don't engage their mind because they are trying to kind of reboot their brain. Um, and that can be difficult. So this career does engage your mind heavily and it engages your body very little, if at all. Number four, it requires constant learning and continual change. The things you learn today will not be nearly as valuable in five years. And in fact, the things you learn today may not be valuable at all in five years. And you have to be okay with that. I have seen developers who have gotten stuck here. I've seen developers who I've worked with developers who they fell in love with a particular way of doing things and they did not want to change to the point that they ended up losing their job because they couldn't change. It's hard. But you know what? This is what our job entails. The language you write today might not be the language that you write in five years. Now, if you're a C sharp developer, it's been around for over 25 years. That's a significant period of time, especially for a high-level language. But that doesn't mean it will be around for 50 years. So if you're going to get in your career now, 25 years from now, you might not be writing C sharp code. Even if it's around, you might not be in it because of the fact it's not the way we do things then. Because everything changes. And some people push back and say, well, it shouldn't change. It changes too fast. The whole world does. Because 25 years ago when C Sharp came out, Windows desktop applications were the way to go. But guess what? Now Mac and Linux have a much bigger market share. Now it's not desktop applications, but web applications or mobile device applications. More people are on the internet, which by the way was in its fledgling stage back when C Sharp came out. More people on the internet now through their phone than they are through their desktop or laptop. So things have changed rapidly. And even the devices we run on change all the time. And so you can't sit here and say, well, I'm going to do things this way. You have to be able to change. And that means continual learning. That's hard for some people. Some developers get in and they're, they they love life and they're working hard, but they just decide, you know what, I'm not going to do that part. I'm not going to change. And so they do well for a while and then they peter off and kind of get pushed into secondary jobs and find that their working environment isn't nearly as fun as it used to be. And that's because they decided not to change and grow. So those are the four things I think that are difficult about being a software developer. And not everyone is willing to put up with those things. So the bottom line is this if you want to be a software developer, you can be. You just need to put in the hard work, you need to push through the frustration and continually work to improve yourself. Don't let anyone hold you back. But if you aren't willing to put in that effort, then this field might not be the right one for you. So it's up to you. Not everyone should be in this field, but I think anyone could be if they put in that work. Thanks for listening. As always, I am Tim Corey.
SPEAKER_00Thank you for joining us for this episode of Dev Questions. When you're ready to learn to think and code like a professional developer, head over to I am TimCorey.com and enroll in a course.