Software Development Career Paths: Starting Out
For those starting out in software development, there are a lot of questions that should be answered. From learning to a former developer at its peak, there are a lot of questions that need answers that most newbie developers are still inexperienced.
One of these questions is: What type of developer should I become?
If you follow me, you've probably heard me talking about specializing and how important it is for any aspiring developer to pick a specialization.
Web Development. Java. Python. SQL Development… There are tons of career paths you can pursue…
So, how do you pick the right type of software development for you? Watch this video and find out!
John Sonmez: Hey, what's up? John Sonmez here from simpleprogrammer.com. Coding Dojo is a programming school that turns beginners into developers in only 14 weeks. If you're serious about landing a career in tech but lack the formal education or background, Coding Dojo will get you there in no time. With over 3000 graduates to date, over 90% of their grads land job within three months of graduating, often making over 70k per year at tech firms of all sizes from companies like Google to local startups. To learn more, visit codingdojo.com or click the link the description below.
Today, I want to answer a question that I get a lot about becoming a software developer. I did this video on how to become a software developer which you can check out here, but I also get a lot of questions about what kind of developer should I become. In that first video, I talked about how you need to pick, or you need to specialize and pick what kind of developer you want to become, because if you don’t it's going to be really hard to aim towards a target that you don't know what it is. It's like I said, being an athlete, like I want to become an athlete. What does that mean? That doesn’t mean anything. You need to become a kind of an athlete like a runner, a football player, swimmer. Whatever it is. Same thing here.
Let me give you some advice on how you can determine what kind of developer should I become. Here's the first thing. The first thing I would say about this is like I said in the other video, look at job search sites and look and see what kind of developers are out there. It's good to have a good resource of the kinds of developers that are out there and think about it on your own.
Do you want to do web development? Do you want to work on—what kind of things do you want to work on? There's different roles. You don’t have to know exactly what the role is, but just think about what it is that you'd like to do. Would you like to make webpages? Would you like to maybe make mobile applications? Maybe, would you like to make the kind of code or build things that go in hardware themselves? There's a software that runs a hardware like computers or monitors, or electronics or cameras. There's all software running in everything. Today. Would you like to do that? That's sort of embedded systems development for the most part. Would you perhaps like to do something really interesting like maybe—there's a lot in data science and there's a lot of things in artificial intelligence. Maybe you would like to make self-driving cars or to create intelligent applications or platforms that are able to solve problems or interact with the real world. Robotics. There's a lot of artificial intelligence in robotics that you could be doing. Well, maybe you want to send astronauts into space and help them land on the moon and in the next moon mission.
Think about these things like what is it that you like to do. Maybe you'd like to make medical devices and help people in the medical field to be able to prolong people's lives and save lives, or maybe you'd like to work in the fitness field and you'd like to create devices like the Apple Watch or the Fitbit, or things like that that will help people to monitor their health. You think about what these things are and then—or maybe you just want to work inside of a corporate development shop and make software that people love. Maybe you want to make video games. I mean most of us want to make video games. I want to make fucking video games. Let's make some damn video games, but maybe that's what you want to do. Okay?
Think about this. I want you to sit down and stop saying, “I want to be a software developer, I want to be a programmer, I want to make money” because that's not good. That's not a motivation. You got to be more focused on that. You can still want to make money. Who doesn’t want to make money? Right? You got to like think about how you're going to do it. You're going to do it. If you want to—and I'll give you a little bit of a secret, a little shortcut here just in general, which is if you want to make money in the world, you got to provide value to people. What's the value you're going to provide and how are you going to enjoy creating that value? Because if you're going to be creating value, you better fucking enjoy it. Otherwise, it's going to be a long slog. I mean it's still going to be a long slog. Don't get me wrong. It's a grind. Life is a fucking grind and you got to grind it out. You got to be able to do the hard work, but it's going to be a lot more easy to do that if you know the why and you know what you're supposed to be doing. These are the important things.
I want you to brainstorm. I want you to think about all the kind of things, all the kind of things that you might want to do and the technologies out there. What's interesting to you? What excites you? For me, like I said when I was starting out, I was excited about making games. I wanted to—I liked playing MUDs and I was excited about that. Then at one point, I got interested in printers. I happened to get a job working at HP and I was really interested to know how do these printers work. I thought it was kind of cool like how the timing of the paper going through this machine and everything that works to make that image actually appear on the paper and to print it, and at the right time and everything. How was that all worked? I was really interested in that and what languages do printers use? The printer languages, PostScript and PCL and stuff like that you might not be interested in at all, but it was interesting to me at one point. Then I've gotten interest in mobile development. There's a lot of different things that you can do and become, but you got to think about—you start from what might be interesting to you.
Now, the other thing that you could do here that I'd recommend is talk to people that are developers. I mean there's a lot of roles that you might not even talk about because one interesting role that maybe no one dreams of but is really, actually, I enjoyed quite a bit is working on a team creating tools for other developers to use or for the team to use. It's not a very high-profile position. You're not creating software that gets distributed out there in the world, but it's kind of fun and kind of cool to make stuff that makes other people's jobs easier.
In a lot of corporate jobs, that role exists. Honestly, some of the most fun I've had is like figuring out how I can make teams more efficient by making tools for them. A lot of game development shops have positions where, in fact, that's a lot of the way to get in your foot in the door sometimes is to be a tools developer first, which is it sounds like something that wouldn't be very fun, but go talk to someone who is a tools developer. See what that's like. Go talk to developers that you know and ask them, “What do you do in your job? What kind of development do you do? What kind of technologies do you use?” Then you can start to—you can get to that second layer.
If you know kind of the broad level, I want to make web applications. I want to make mobile applications. I want to do game development. Whatever it is. Then you can start finding people that do those things like self-driving cars. A lot of people email me saying, “Hey, John. I want to do AI,” and I'm like, “What does that mean?” Do you want to make fucking robots like death machines and like the next robotic armies so we don’t have human fight battles? Do you want to make self-driving cars? Do you want to make refrigerators that automatically like know who you are and like lock you out because they're like, “You're too fat, John. Sorry. You can't have the—I'm only opening my vegetables drawer for you, John.” What do you want to do? It's not just AI.
Again, you start there and then once you have an idea of that, then go and talk to developers that are doing those things. Most of them are happy to talk to you about what they're doing. Especially if they're passionate about their job. Ask them, say, “Hey, what kind of technologies? What do I need to learn?” If I were to follow you around for a day, I mean you can ask them, “Can I like come in and follow you around for a day?” They will say, “Well, I need to get permission from my boss, but that's a kind of a cool thing.” I mean you can probably get permission as a guest to do that.
Think outside the box. How can you learn what it is that you need to know in order to be that? Also, just to see if that's something you're interested in. You talk to a bunch of developers and you get this information. I would probably do that then you find out. What technologies do they use? What do I need to learn? What kind of steps would I take to get there? That's how you're going to figure this stuff out. Some other questions, you might not ask yourself.
I'll tell you this. The quality of the answer you get is determinant by the quality of the question you ask. If you ask good questions, you get good answers. Ask them good questions. Like I said, ask that question of what am I interested in, technology wise. What do I want to do in the world? What kind of industry might I want to work in? Where do I want to impact people? What inspires me? Do I want to impact people's lives? Do I care about—do I want to work on back end stuff? Do I love solving problems and algorithms? A backend developer does a lot of this.
Ask yourself these questions and then ask some questions like, “What kind of environment do I want to work in? Do I want to work in a cubicle? Do I want to work at home working for myself? Do I want to work with a lot of people? Do I want to work crazy hours? Do I want to work more of a relaxing job? Do I want to work with the latest and greatest technologies or do I want to work with like the stable and mature technologies?
Think about those things because that's going to influence what kind of developer you become and what kind of company that you're eventually going to want to work for. Right? Big corporations usually are a little bit slower to adapt technologies where small startups, they're on the bleeding edge and they're using the new tools and technologies, and stuff like that.
Think about these things and ask yourself these questions. Again, you don’t have to have perfect answers for this, but you got to have some kind of answer. Don't be—I was just watching this movie someone recommended on this, on a channel called Whiplash. Maybe I'll put a link to the Amazon rental here for Whiplash. It's funny. There's a conversation, this boy and this girl and they're on a date and he asked her. He knows what he wants to be. He wants to be a fucking drummer. He wants to be the best fucking drummer in the world and he's like asking her like, “You know, why did you go to this college?” and she's like, “Oh, yeah. I don’t know.” He asked her what is her major and she's like, “I don’t really have one yet. I don’t know.” He's like, “Well, what do you want to do with your life?” She's like, “I'm kind of undecided. I don’t know at this point.” You could tell. He's like visibly—he's like raged up out of his skin because he's like, “How could you not fucking know?”
Don't be that girl who doesn’t know what to major. Pick something and you can change it later. My career has taken many different paths in life. I didn’t ever think that I would be doing YouTube videos essentially for a living like—that I will be coaching people and giving them life advice, but that's what I fucking do. I changed it. I was a programmer and now I'm not. You can change it later, but you got to have a different direction. Get somewhere.
It's better to get somewhere and then go a different direction on your path in life than to just be wandering aimlessly floating in the ocean of possibility. Fucking choose a thing. Go and do it. Then when you get there, if you want to go somewhere else, go somewhere else, but at least you'll live a life that has punctuated points of success, triumph, failure, passion of the actual living rather than just floating around and hoping for the perfect thing. Then when you find out that—when you go finally do go in that path and you find that it's not all that's meant to be, you've wasted so many years and then you feel like you've made a permanent decision in life. Better be the person that picks path, goes down that path, sees what's there. If they don’t like it, then fine. Then pick another path and they go down that path, but you got to start walking paths. You hear what I'm saying?
All right. I hope this is helpful to you. Again, a lot of this information, a lot more information is in my book, The Complete Software Developer's Career Guide. I definitely encourage you to pick up a copy. It's on Amazon. I will put the links here. The link is in the description below and it's got a whole section on becoming a software developer and how to get started. It answers a lot of the questions that you might have around that.
All right. That's all I got for you today. Click that Subscribe button if you haven't already. Make sure you click the bell so you don’t miss any videos. See you later.