From the experienced devs subreddit, the author wrote to ask about what switching roles looks like if you're picking up a new language. Do you need to start all the way back at junior?
Let's discuss.
📄 Auto-Generated Transcript ▾
Transcript is auto-generated and may contain errors.
Hey folks, we are going to Reddit experience devs for a topic today. This one's how have you managed career-wise when switching to a different programming language. Um, they want to say, "I have 10 years of experience in back-end web development, but I'm getting tired of my programming language. Would like to switch to a different one. Would open up the possibility of higher salaries, more interesting projects." Um, so they're saying they don't have a problem with learning new things, but they're more concerned about like how they get a job. So, um, I figured we'd talk about this, um, because I I have an opinion on this, I guess. And Oh, man. I need to get gas. I'm going to be so behind today. I'm already late to leave for work by like 15 minutes. 15 minutes later than I want to be. Someone scheduled a meeting for me exactly at 10:00, which I would not I didn't accept because I'm usually just getting in by 10:00.
I have a meeting every morning at 8:30. So, I've already started my workday, but um now I have to get gas. There's I was like maybe I'll be a little late. I will absolutely not make this meeting. Um so, friendly reminder for folks. I got to caught myself off guard with the gassing. If you want questions answered, leave them below in the comments. Otherwise, I go to Reddit. And if you have something that you want to be kept anonymous for, uh, just feel free to write into, uh, dev leader on any social media channel. Uh, it's also my main YouTube channel. So, happy to try my best to answer software engineering and career related questions as best as I can. Um, okay. So this topic around the language um I guess the focus for them is going to be about um I don't know if it's applying for jobs if it's the actual ramp up period.
So we'll talk about that. I'll only very briefly go over the learning part because you know from their perspective when they wrote the post it seems like um they don't have an issue with learning things or like how to approach it. So, we don't need to spend much time on that. Um, I'll only spend a little bit just in case for for you as the listener. You're kind of curious like how would um how does someone go about this? Um because maybe it's top of mind for you and you're a little nervous about the switch or how to how to go about it. We'll talk. Um so, let's let's kick things off with that because I don't need to spend too much time on it. The general situation I would say is that for most developers we find um and obviously I'm generalizing here which I don't love to do but I I think most developers probably find that they gravitate towards like a primary programming language right now.
Um, some people may have like one or two. Uh, especially say if you're like a full stack web developer and you have something that you like using in the front end more and something in the back end more, let's say. I think that's probably a pretty common scenario. Um, but most of the time I would say that people have like one language where they're like, "Hell yeah, like this is my jam." Now that doesn't mean that they don't know any other language and that doesn't mean that they can't use other languages very effectively. But I mean probably most of us have like one language where we're like you could tell me to build anything and I go do it. For me that's C. Um but I you know I self admittedly have like an overreiance on C. Um and based on the work I do it's panned out pretty well.
I'm just not suggesting that's a great strategy for anyone um to just like you know hyperfixate on one language. So um with that said, I think that if you're trying to explore other languages and stuff, you kind of you have to get outside of your comfort zone, maybe that's obvious, but I think if you're trying to figure out like how do I start, um I would say minimizing the discomfort is probably a good way in my opinion. And what do I mean by that? Well, if you're trying to pick up another language, I would personally what I wouldn't recommend doing is switching all of the variables at once. So, for example, um I'm trying to think of something off the top of my head.
Say you're a uh you're a mobile developer and you've been building Android applications in Java and um you're like I want to I want to go learn I don't know JavaScript now like I wouldn't recommend go build a project and then you know most mobile apps are dealing with SQLite databases so now you're like okay like I have to go I have to go learn Postgress on top of that or uh you know my SQL because people are using that and like now I have to go learn about a cloud provider cuz it's a web app and um and basically just switching like literally every part. Uh I just wouldn't necessarily recommend doing that if you're the kind of person who's uh I don't know a little bit turned off by by change, right? And and odds are if you're someone who's watching this and you're already like, "Oh man, like I wanted to pick up a different language, but I'm kind of nervous." You're probably in this camp.
So again, not to say that you cannot have success with switching everything or whatever. Um it's more just that if you're trying to minimize the amount of friction and uh sort of change that I would try to fix some variables in place. So um you know if you're going to go you want to use that same example like I wouldn't worry about deploying your app right away into the into the cloud. like let's park that for a little bit and who cares like go use a SQLite database because you already know how to do that. Um you can find you know different database connectors for your web application whatever language you're using. Let's say it's uh I can't even remember if I suggested a language. Say you're going to learn JavaScript in the front end and the back end and you could find a JavaScript database connector for SQLite.
Like JavaScript has libraries for everything. um is even, is odd, is one, is two, is three. Um so, you know, just try to fix some of those things in place so that it's not um overwhelming and like a learning curve in every technology you're touching. That would be my recommendation. And one more thing that I'll just add on to that, and I've talked about this in lots of other videos, by the way. So, if you're if you want more on this kind of topic, just kind of poke through um either videos on this channel or on my main YouTube channel. I have like live streams and stuff where I've talked about this kind of thing. Um pick a like if you're going to go build a project and you're like, I don't even know what to go build.
just like start with a hobby of yours like you like soccer like make a an app that or a website or whatever you're trying to build that uh track or like is a player roster or I don't know make a little team manager UI or like anything right um sports stats like anything you want that uh is related to a hobby of yours and that will kind of help keep your interest a little bit better because if you're like new language new tech stack everything and now I have to go build a project that's not even of any interest to me. Like pro probably your learning is going to feel like So I'm at the gas station. Let's stop there. All right, just to finish off that thought, I was going to turn off this stupid beeping, man. Um going to say that one of the last things that I was dabbling in that was like a new tech was uh was Blazer.
And instead of trying to go, you know, completely change every variable, um I was uh migrating my blog from WordPress over to Blazer and um Steven Gizel who is a net developer had built a Blazer blog engine. actually really like his blog and his content. Um, so I said great. Like I looked at some of the code for it. I said I think this is going to be what I what I want to migrate to and like I'm not a Blazer developer. I know. So I'm going to talk about the variables that I'm fixing in place, right? But I'm not a Blazer developer. Uh, front-end web development is kind of crappy for me. Like I'm terrible at it. Um, so I said, "Okay, it's a it's my blog." So, there's the interest alignment, right? That's going to keep me interested in making sure this is successful.
It's C, so I'm keeping the language consistent. Um, I didn't want to think about all of the hosting stuff yet. I knew it was going to be hosted in Azure cuz I was sick and tired of using AWS. Um, and I was having more success with Azure recently, not just because I work at Microsoft. Completely unrelated, totally honestly. Um, and so for me it was like the tech stack was the different thing. So I the database I to start off I just said like it's going to be in SQLite. I just want to run it locally on my computer without running a server um for the database. Just do this. Um so I stood it up. I was playing around with it. Uh had it working and then I said I was going to migrate the stuff in. So then I migrated some data in and I said great okay still working.
I was tuning some of the user interface a little bit just to style things differently. Uh different menu options and stuff like that. So I got to play with Blazer but all of the other variables were fixed in place. Then once I had something that I felt pretty good with then I started saying okay like how do I want to host the database? How do I want to do the deployments in Azure? So, I got to go address those parts of the, you know, of the project completely separately and not just be like completely overwhelmed by it because I might have been right. I might have been like, I don't have time for for learning all of this all at once and the barrier to to getting there might have been too great. Um, fortunately, you know, I was also picking technologies I was at least familiar with.
Um, but just one quick example. So more time than I wanted to spend on that. Let's get back to the topic. So this person's saying like their kind of concern is like do I need to start as like an entry level? Um but I think the the reality is that and this person's probably about to kind of live through this is that for the most part like programming languages and tech stacks have a lot of extremely transferable skills. Okay. So the reality is right now based on the uh the landscape for for jobs and stuff like because it's so competitive if you had two candidates that were like basically identical but the language that they they knew like in terms of the programming language that was like the differentiator and one person happened to know the language that's primarily being used in a role and the other person didn't but everything else was the same.
they're they're probably going to pick the person who has the experience in the language, right? It's it's one less thing that they have to go ramp someone else up on. But the reality is that if especially if you're like a more experienced developer, there's so much that you learn in programming and software development that it's not like specific to the language or very specific to the tech stack. There's going to be patterns. There's going to be practices. There's going to be um you know, maybe specific to the tech stack or the language. There's nuances that it's good that you know them and understand them and you can work with them, but like there like every language and every tech stack is going to have those. So, it's it's going to be a a constant thing in your career that you're always having to like pick up on different things and learn nuances of things.
Like that is a skill in of it in and of itself. So my take on this is that um probably the the most impactful part in a career or like you know switching roles and for a different language or tech stack is going to be the fact that the competition's so high right now but but I think that's it personally u and I say this as someone who has hired software engineers in big tech um or joined a team and the people were hired right before me and people didn't know C. Right? So at literally at Microsoft I've been on been at Microsoft for almost 5 years now just under across two different teams I've had people that were hired right before me.
So I didn't do the hiring or they were hired uh after I joined so joined the team and then they were hired on after and they didn't know C like the major almost I think there's only been like a couple of people that joined being like yeah like I'm I code in C or like I I would consider myself like fluent in it and the rest were like nope don't know it and it has not been an issue at all. Now, another thing, and I've talked about this in previous videos, too, is that the idea here is that, and I need to be like maybe more explicit about it, is that a company like Microsoft has resources to be able to do that, to be able to say, "Hey, look, like we're going to hire you on, and yeah, we know that like you don't know this language, but that's okay.
Like, it's a general purpose language, so it's like that shouldn't be an issue. And it's not like if you're not cranking out bug fixes and features by the end of the first day, like we're going to go bankrupt or something. So like it's cool. Like if you need a little bit of time to ramp up on it, we'll get you there, right? Bigger companies can have more resources for this type of thing. Um startups, it's a little bit different. And I'm not people need to uh need to understand why I'm saying this. Uh it's not like a I'm not saying in startups versus bigger companies. It's like I don't know like we don't it's there's a difference in what people value in terms of people being able to learn and and grow. It's just like in a startup if you don't have financial resources because everyone is working their asses off and like people are, you know, it's like week to week you're like we don't even know if our company's going to exist.
Like you probably realistically don't have a ton of time to ramp someone up in a new language. It's just the reality of it. So, I'm trying to pick completely different ends of a spectrum here to illustrate that like my point around, hey, you don't know this language, it's okay. Um, that might not be applicable at all in some circumstances. Some companies might be like, hell no, like you you need to learn it like before you come here because we can't afford the time to ramp you up. And if like if you don't like that, that's okay. just don't apply there. That's fine, right? It's that's what I'm saying. It's not that I'm trying to claim there's no value and like ramping people up. I think there's tons of value in it. But I also understand that if a company like is so strapped for resources because I don't know how many people have worked at startups like it's it's not and especially if they're not like uh they don't have funding.
It's not it's not all sunshine, right? It's not like you don't get the you know some sort of like quarterly learning budget and stuff like these companies might not even exist from like week to week. So it's it's uh it's a little bit more challenging in these circumstances. So just consider that when you're applying to places. Um, you know, if you're getting frustrated because you're trying to do a career switch into a different type of role and maybe the feedback you're getting is like, "Sorry, you don't know this this language or this tech stack." And you're like, "That Nick guy on YouTube said it didn't matter." Like, I'm not saying it doesn't matter. I'm saying from my perspective, like being at Microsoft, it's never mattered.
And even before that to be totally honest when I was working at a startup once we reached a certain point it didn't matter in the beginning and it's been a long time now but in the beginning cuz it's like almost what 13 years or so I assume we were looking for net we were building in C. I'm pretty confident we were explicitly looking for C developers because we needed people to write in C right away. Now I don't know when that would have changed for us because I can remember having conversations with like with people in HR with like you know the recruiters and stuff where it's like well what what do we want to list as the requirements right like what what are the technologies that people like should know and I think like over time it's like if they know an object-oriented language then like that's fine because they're they're going to learn C and it'll be okay.
So, that's one part of this. The other part that this person was asking about was like, does it put them like do they have to go back to like entrylevel roles? Right. Right. Like, does it reset their career? And again, my highle answer here is no. But if we go back to that like that point around how competitive it is right now, the answer might be maybe. Right. And sorry, I'm getting I have like five work messages that have come in on this drive already and it's like it just it's obviously Monday. Um yeah, the answer is like unfortunately maybe but it's only because of how competitive things are right now. Now to say does that is that going to move me back in my career like the answer I don't think is yes like I think it's it should be no it's not but um if you were if you're like I'm hellbent on trying to go into a different direction.
It might feel like a temporary step back, but it's not like as a software developer you just got worse or you suddenly had less experience overall because there's so much transferable, right? I can't like I can't state this enough. There's so many transferable skills between programming languages and tech stacks that like it would be silly for me to sit here and say like oh like no like you're only a junior level now. The reality is there's going to be a learning curve for you for um for any different language or tech stack just like there would be for any human. It's normal. But we're talking about like, you know, weeks, weeks to months, not years. And the learning curve is probably going to be, I don't know the exact shape, but the point is that it's not going to be like, what's a good way to say this?
It will likely be very accelerated compared to someone who is actually junior. And the reason that's the case is because of all the other you already know. You're not learning how to use source control for the first time. You're not learning how to do a code review for the first time. You're not learning about how planning processes and stuff work or how to collaborate on things for the first time, right? You're you're learning a language. And if it's like a similar language like I was using the example of object-oriented languages if you're like okay like I understand that we can have inheritance or I understand that I'm creating like an object and that's going to allocate you know a bit of memory for this and then I can assign methods and stuff on this thing or it can have state like you're not learning about
like fundamental concepts you're just learning about how to represent them in the language or if it's a text stack you're learning about the paradigm that the tech stack uses that might be different from other things you've seen and maybe it's the first time you've used it but the the concepts you can probably relate to much easier than someone who is very very new. So my point here is that it might feel like a very temporary step back if you're trying to switch companies to go learn, you know, um get exposure to a different language or tech stack. But I think that's probably only if you're like uh not waiting out companies that will will hire you on at the level you're at for not knowing the language. I'm sure there are plenty. It's just that it's going to be very competitive, right?
Anytime I talk about the job market being competitive, I try to remind people like um cuz I think some people get bothered by this kind of thing and I'm like, we need to step away from what our opinions are cuz people will say, "Well, it's not fair." And I'm like, "I agree with you. I agree with you that if you have a lot of experience and you're not getting a job, that that is unfair. I'm no disagreement from Nick at all. I hear you. But we can only focus on what we can control. Right? So if there's someone else who has the same amount of experience as you, but it happens to be more focused in the language or tech stack that you're trying to move over to. Odds are on paper they're going to look like a better candidate. It doesn't mean that they are right.
I think we have to like try understanding these things. It's like you have so many more applicants than what we used to have. So competition is up. Um, another thing is like sometimes people don't realize like how they're conveying themselves in resumes. So they'll say like, "Oh, well, I have all this experience. I I am so good and I've I've done all these things." And that might be true. And then you see their resume and you're like, "Well, I can't get that from your resume." So all of a sudden it's like you've you've not presented yourself well to someone who has to make a decision about going to the next step. So in this case, if we're if we want to focus back on this question, it's like I would look for ways to really try and stand out against other people that are um that are going to have this, you know, this programming language or tech stack under their belt, right?
So that means being able to uh in my opinion some ways that you could do that are showing that you are a very fast and effective learner, right? That you've been dropped into situations and like we're able to overcome them. That could be really powerful. Uh just focusing on demonstrating impact could be really powerful, right? You might have, just to give you an example, you might have someone who has a resume and they're like, "Uh, I've been a Java developer for 10 years." And you're like, "Okay, well I haven't. that sucks and I wanted to get into Java. Um, maybe you've been a programmer in general for 10 years, but not in Java. So, all of a sudden it looks like this Java developers got you beat. I realize I'm greatly oversimplifying this. Um, but it's like, okay, what if that Java developer, the only thing that stands out on their resume is that they've been a Java developer for 10 years.
the impact and stuff that they've had is like really really hard to like understand but like okay like it they've been doing it for 10 years that's got to it's got to mean something but you can come along and say hey look I've also been a developer for 10 years uh was not in Java it was C also a very comparable language maybe you don't want to have such a contrived example and you want to say like I don't know like C++ or Python or something another language that has been heard of people use. Um, and it's not almost the exact same as Java. Um, so you're like, I've been doing that for 10 years. Um, not Java though, but like here's all the impact I was able to have at these different jobs or here's a scenario where, you know, I was put onto this project and, uh, ramped up on this technology very fast and was able to deliver awesome results.
like you could blow this other person out of the water and you're sort of minimizing the risk of oh this person doesn't know this language already. Let's let's speed up a little bit buddy. So that's what I would recommend is like and I I mean I recommend this for everyone who's trying to put together resumes and they're doing their job search and stuff, right? Like you got to think about how do you stand out? Like how do you showcase you the best? But also try to think about other people that are applying to these jobs. How are you going to stand out against them? which I think in in this particular case is is really a good focus to have because that's who you're going to be competing against. The whole, in my opinion, the whole reason this person's asking this is because they're um I don't know what the right word is, nervous, fearful, concerned.
Um that they're not going to stack up against um they're not going to stack up against the other people that are applying for these roles and that's why they have to go take a step back, right? So that is their concern. But I think if you can make yourself stand out, then at least from the uh getting the interview part, you can kind of get past that step. I think that's one of the hardest parts is standing out. And it certainly doesn't get easier when you're, you know, trying to say like, hey, I'm just learning this this language now or I want to be. Um, I think obviously that makes it a greater challenge, but there are ways you can stand out and I I I don't know if it's come across, but like I wouldn't want that to be a reason that someone doesn't go apply.
Like I I strongly encourage you like if you're like, "Hey, this is what I want to be doing. This is the direction I want to move in." Like I absolutely encourage you to go do that. for sure. I'm not saying it's going to be easy. It's and it's probably going to be, you know, realistically more challenging than a job switch into something that you're already very familiar with. But I think if that's the direction you want to go in, like you should work at that. I just think it's a matter of like setting your expectations and then trying to I don't know to like get whatever feedback right get your feedback loop going. If you're not getting any interviews then like how do we go change your resume so that you stand out more whether that's against your competition or highlighting the things that you've done amazing at.
There's there's so many different vectors to go at here. Um, but overall, um, you know, as I get off the highway here, I think some some things to consider are going to be, um, you very likely very likely will spend parts of your career learning new languages and tech stacks. So, it's a skill to be able to ramp up in these different things. Um, given sufficient resources, a company um shouldn't have to be overly concerned about, you know, you not knowing a particular language or tech stack. Um, especially if you're more senior, you should be able to pick up on things pretty quick, right? Uh, and I would say, you know, for more junior people, the reality is like if companies are hiring for a junior position, they should already should, I'm not saying they do, they should already have the expectation that they're going to be ramping you up anyway because you're junior.
This does change if you have tighter resource restrictions as a company. And that was something I wanted to point out earlier, right? just to make sure that people understand if they're getting frustrated and stuff. It's like it might just be that a company cannot they literally cannot accommodate that as much. Even if they really wanted to, they might not be able to realistically. There's a really cool colored red Mercedes behind me. It's too rainy to have the the 360 on, but I would like to see it more up close. I can't tell what model it is. Looks nice. I don't think it's a I don't think it's a GT, but the red is really nice. Oh, that's a very big uh tractor. Um, okay. Yeah, if you thought that was helpful, um, if you want, I would appreciate if, uh, if anyone's watching this, if they want to go check out Experience Devs, go look for the thread.
Um, I can't even remember what the title is and I'm driving. So, uh, maybe when I park, I'll pull it back up again. But, if you want to share the link back um, to this video on that thread, I think that would be super cool. um kind of said to on these videos like I'm not I'm not doing the self-promotion there because uh I've already been banned from a couple subreddits even when people ask for videos and links. It's like nope, you're self-promoting and I'm like this is literally what this thread was about. Um I don't know. I can't win, I guess. So I'm just trying to be more careful. Um but you know it's uh it's super helpful for me to get more exposure.
There's people There's people who have had like just to give you a quick example, there's people who have had their videos shared and then like someone like the primogen like does whatever like I don't know a quick video on it and they get more subscribers than two of my channels put together across two years after hundreds of videos and all they had to do was get a little bit of exposure uh in the right spot. So, like when I say a little bit goes a long way, I I truly mean it, right? Because it just takes like one thing like that to get some some momentum because I've done over across my two channels now, like over 500 videos. Like, it's it's a lot. Um, so yeah, the more exposure helps. Um, but yeah, the Reddit thread, let me put it in park so I don't do anything too embarrassing.
Um, it's called, "Have you ever managed career-wise or how have you managed career-wise when switching to a different programming language?" This was two days ago on experienced devs. So, by the time you see this, it might be three or four days ago now. But, thank you so much for watching. I appreciate you being here and I'll see you next time. Take care.
Frequently Asked Questions
These Q&A summaries are AI-generated from the video transcript and may not reflect my exact wording. Watch the video for the full context.
- How should I approach learning a new programming language without feeling overwhelmed?
- I recommend minimizing the discomfort by not switching all variables at once. For example, keep some parts of your tech stack familiar, like using the same database or deployment environment, while learning the new language. This way, you reduce the learning curve and avoid being overwhelmed by too many changes simultaneously.
- Will switching to a different programming language require me to start over in an entry-level role?
- In my experience, switching languages does not reset your career or make you an entry-level developer again. While there might be a temporary learning curve, your transferable skills and experience still count. However, due to high competition, you might face challenges getting hired at the same level initially, but it’s not because you lost your experience.
- How can I stand out when applying for jobs in a new programming language?
- To stand out, I suggest demonstrating that you are a fast and effective learner and highlighting the impact you’ve had in your previous roles. Focus on showcasing your transferable skills and your ability to ramp up quickly. Tailor your resume to clearly convey your achievements and how your experience applies, even if it’s in a different language or tech stack.