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
207. 4 Other Careers Software Developers Where Can Excel
Use Left/Right to seek, Home/End to jump to start or end. Hold shift to jump forward or backward.
Are there other careers that a software developer could do well in? If I don't want to write code all day long, are there other jobs that might fit me? I'm considering a career switch. Where could I go? 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/
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_02Are there other careers that a software developer could do well in? If I don't want to write code all day long, are there other jobs where I might fit? I'm considering career switch. Where could I go? Not everyone wants to be a full-time developer forever. So where can you go that will allow you to use some of your existing skills while being in a new role? Today we're going to discuss four job types where software developers typically excel. Now, this is an episode of DevQuestions where people ask questions, and then I try to answer them in this podcast. Now, if you have a question, you can go to suggestions.iamtimcorey.com, ask it there, and hopefully you'll see your question answered in a future episode of DevQuestions. Now, first, let's talk about what skills software developers have that are valuable. Because if you don't know why you're valuable, then how do you know what you can bring to a new role? So, first of all, logical thinking. So, as a developer, you have to learn how to not skip steps. So when it comes to writing code, you're not saying, well, you know, kind of hand wavy things and then stuff happens. No, no, no. There's a very clear one, two, three, four steps, and what you do along every step is important so that you have a clear understanding of how the application works and that there's no missing pieces to it. So that's kind of the first skill is that logical thinking. And that doesn't have to be just for software development, right? That can be for if you want to plan a party, thinking through logically what are all the things I need to do, and making sure you don't skip anything or skip any steps to do that. That's very valuable. So there's a lot of different ways that logical thinking can be applied that don't just mean writing code in the end. Number two, and this is one that if you're going to become a great software developer, and we're talking about leaving software development, but if you're become a great software developer, you have to build this skill, and that is perseverance. The ability to stick with something to the end. So you don't quit halfway through, or the worst part is typically I see people quit at 90%. So they have an idea and they're getting all enthusiastic about it, and they they start building something, they get close, but you know, they have to worry about payment system, they have to worry about, you know, publishing to a site, or they have to worry about, you know, continuous integration and deployment, and they have some questions there and they just kind of fizzle off and they go to a different thing that excites them, and they, you know, they start building something up. But a great software developer has to persevere through that and has to push through the end. And those skills are very valuable when it comes to the workplace in general. Being able to push through even hard times, things that are are a struggle, things that you don't want to do or things that you're confused by, figuring out how to learn enough to get the job done and then do that job, that perseverance is really valuable. And kind of coupled with that is number three, which is troubleshooting. What do software developers do? They fix bugs. Usually the bugs we don't we create ourselves, but tracking down bugs, diagnosing things, these are really valuable skills in the real world because not every problem is caused by code. As a developer, it feels that way. But when you have a problem and maybe you know you work at a restaurant and you're ordering hot dogs, but you find that when you order too many hot dogs, that you, you know, you don't ever run out of hot dogs and they end up going bad. Um but then if you don't order enough hot dogs, then you're always running out of problems. So how do you troubleshoot that problem? And that's a weird little problem, but how do you troubleshoot that? How do you diagnose the issue? How do you track down the real root problem? Maybe when you have a too many, too few hot dogs, you're selling them too cheaply. Or maybe when you have too many, you're not discounting them properly. So there's different things you could do to troubleshoot a problem that isn't necessarily a bug and code, but those same skills will help you because you'll be thinking logically, you'll be persevering through the problem, and you will be identifying and diagnosing what's going on in the root cause so you can fix the actual problem, not just the symptom of the problem. And then number four, system thinking. So looking at the bigger picture. This is a very valuable skill, again, not just as a software developer, but something a software developer should do well, is to be able to kind of step back and look at the larger picture, look at the environment and the long-term implications. So, for instance, as a software developer, if my boss comes to me and says, Hey, I want you to write this little piece of code, okay, well, I have to think about which language to use. Well, I could say, hey, I'm going to use C sharp, but the rest of the code in the organization is written in Java, that's not a great idea, even though my app would work in C sharp. But thinking at a kind of zoomed out level, like, oh, wait a minute, we have a whole inventory of code written in Java. I should reuse some of that and write my application in Java so that then when other developers try to support my application, they're more familiar with my application and how it's written because it's written in Java. Or maybe it is thinking through the long-term implications. Yes, we could fix this bug in this cheap and easy way, but down the road, it's gonna be a problem again, and it's gonna be a bigger problem. So if we spend a little bit more time and fix this bug in a more thorough manner, well then it won't be a problem in a month or a year. Those are the kind of things that software developers need to cultivate and need to be able to do well. Well, those things apply in other organizations as well. So being able to think in system thinking, kind of that zoomed-out view, allows you to be a much better employee in other roles. But let's talk about you know, what are the big roles where software developers kind of just fit, even though it's not primarily a software development role? The number one is probably the most obvious one, IT or information technology. The idea that you're working in other parts of technology that aren't necessarily software development. For instance, I was an IT director for six, seven years, something like that. Um, I think six years. So I was in charge of the networking and the servers and the help desk and also software development. So why did I fit so well into that role? Well, I was a consultant for a number of years, I'd done that, but that's because my skills transferred well into those other areas. A server administrator. Well, guess what? Servers are almost always in it the Windows space powered by PowerShell. If you're on Linux, it's bash. And so these command line tools use a lot of programming-esque types of things. In fact, you're going to integrate with programming, or you can write scripts that do tasks against your servers. And so you can take those skills almost directly and apply them. But then there's the idea also of, again, system thinking, thinking a bigger picture. And how do we integrate this into the overall architecture? Or we're evaluating a new type of server. What should it be? Well, maybe the absolute best is this one type, but it doesn't fit the rest of your ecosystem. And so you pick one that's not quite as good, but it fits better in the ecosystem. Thinking through those things is something a software developer can do really well. Or maybe you get into the networking side of IT. Well, again, you're building scripts and you're you're thinking through logically how does the data flow throughout the network? What should I do as far as firewall design? How should I set up my VLANs and my routers and all these other things in order to create the best possible design for my network that will support what we need to do while also protecting us from outside influence or even from things inside of our network. Or maybe it's help desk. So on help desk, guess what? You're gonna do a lot of troubleshooting. Guess what you're should be good at as a developer? Troubleshooting. So that's a natural fit. There's so many different areas of information technology, or just to technology in general, where software developers fit really well. So that's number one. Number two, the second role I can think of that is a great fit where software developers tend to excel is application design. You may think, well, Tim, that's what developers do. No, I'm saying design, not necessarily building. So maybe it's the user experience or the user interface design. So understanding not just that an application needs to look good, but understanding how things work, the limitations of the back end code, maybe, or the limitations of how people think and how people work, it's really valuable and important. So maybe you're not writing code, but you're creating something that code can be supported by the code. And if you have a good design eye, but also have that knowledge of how code works, that can be a really great and valuable tool. And it might not even be application design. Maybe it's website design. Okay, knowing how people interact and how people think, valuable. Knowing how to create a user interface or which is a web page, knowing how to create that in a way that's going to fit in with how users think and work, really valuable. So some of your programming skills can apply to even a design role if you're also good at design. Number three, this is the one that seems like it's the typical one for developers. People think that that's the next step as a developer. And I disagree that this is always the next step for a developer. Sometimes this is not the right step for a developer. But if it's the right step for you, management. Because if you step into management, maybe you don't want to write code every day, but knowing how the code is written can be very valuable when it comes to managing developers. Knowing how to be empathetic, knowing that when a person gives you an estimate of a day and it takes them three, that they're probably not slacking off. It's probably that they came across an unexpected issue or they didn't estimate well because they didn't understand the full scope of the issue. Knowing how that works and knowing that evaluating a developer isn't about lines of code or bugs fixed, but it's more ethereal than that, it's it's it's less specific, it's less measurable than that, is really important because you can create a better environment for the developers that work underneath you. Also, you will have a better idea of what questions to ask because you already know how code is written. And so when it comes to managing developers, and they say, Well, we're gonna do this, you can ask, have you thought about this? Have you thought about the big picture? Have you thought about the other uh pieces of code in our code base? Have you thought about how our system works? Have you thought about the bigger picture of this environment, not just your specific little part of it? And then when it comes to interacting with other managers and working with other managers to, you know, guide your department and how to build your application, well, you can have a better big picture view and be more versed in seeing the larger picture rather than just your little piece. So you can have a better impact on the direction of your company and the direction of how your company utilizes the development department or whatever department you're in. So management can be a great place for a developer, but it doesn't have to only be managing developers and it doesn't have to be the next step for developers. I really think that a senior developer, maybe they just become a more senior developer. They stay in development because sometimes the best place for a developer is development. But if you feel like you want to get out of development, maybe you're tired of that type of life, well, management might be the next option for you. And number four, and this is one people often overlook, but it's really one of the more obvious ones as far as a good fit, and that is logistics. So if you're a software developer that's looking to change careers, getting into logistics is a great fit usually. Because logistics is optimizing how things work. It's just not code, it might be people or groups of people, or you know, moving things around in a warehouse or shipping routes or just groups of people in general, whatever it is, be able to have a big picture view, thinking logically, troubleshooting problems. These are all things you can do in logistics that don't involve code, but at the same time involve code-like behavior. And being able to create those systems with people rather than with code can be a very valuable thing for you. And it can be something you can provide to your company as a huge value because you're already trained in a lot of this, and so you bring a lot to the table in logistics. So those are the four that um I think are the easiest. You can move into any career pretty much based upon your skills, but these are the four most natural I see: information technology, application design, management, and logistics. So there's lots of jobs that software developers can excel at. But these jobs can also work in reverse, too, just so you know. So maybe you're in one of these types of jobs and you're thinking, I'd love to be a software developer. Well, guess what? You're building some of those skills already. So since you already are starting to build those skills, maybe adding software development is the right next step for you. And maybe you do the reverse. You go from logistics into software development. Or you go from IT and writing scripts into writing software. And those people can also be really valuable when it comes to having a previous knowledge of other areas that then you bring into software development. We'll talk about that in a future episode. But the key to really excelling at your job is to find the job that best fits what you can do and what you like to do. And that may change over time. Don't be afraid to change over time with it. All right? Thank you for the question. And 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.