Latest / DevQuestions with Tim Corey / 174 How Much Do I Lose When I Change Languages?
Transcript
- 0:00SPEAKER_00: Welcome to the Dev Questions Podcast with Tim Corey.
- 0:03SPEAKER_00: 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_00: 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_00: Now, here's your host, expert developer and online educator, Tim Corey.
- 0:25SPEAKER_02: How much do I lose when I change languages?
- 0:29SPEAKER_02: So if I'm learning one language and decide to change to a different one, am I starting over from scratch or do I still retain some of those skills when I move over to that new language?
- 0:40SPEAKER_02: This is a question I was asked recently.
- 0:42SPEAKER_02: I want to address it on today's episode of DevQuestions.
- 0:45SPEAKER_02: Now, if you have a question, go to suggestions.imtimcorey.com, ask your question there, and hopefully you'll see your question answered in a future episode of DevQuestions.
- 0:54SPEAKER_02: So when is the right time to change languages?
- 0:58SPEAKER_02: It's probably a better way of saying, what do I lose if I change languages?
- 1:03SPEAKER_02: It's better to kind of evaluate because you're going to change languages.
- 1:08SPEAKER_02: It's probably, it's almost certainly going to happen.
- 1:11SPEAKER_02: Languages change and grow themselves.
- 1:14SPEAKER_02: So even your skills in an existing language will atrophy over time if you don't keep up with the latest changes.
- 1:20SPEAKER_02: But then your circumstances change, the market changes, where you live might change, and that might change what is best for you in your career.
- 1:30SPEAKER_02: So changing languages is almost a certainty in the industry.
- 1:34SPEAKER_02: You absolutely can stay in the same language, but you may be like a cobalt developer is now, where they can still stay in that same language, but the number of opportunities is getting a lot smaller, even though the salaries are probably going to go up a little bit because of that rarity of good cobalt developers.
- 1:55SPEAKER_02: And that is still needed because of legacy.
- 1:57SPEAKER_02: So you could stay in the same language, but if you want to kind of stay in the broad industry and continue to move forward, then you may have to change languages.
- 2:08SPEAKER_02: Or you just may want to change languages.
- 2:11SPEAKER_02: Maybe you find that there's something intriguing about another language, or you want to add a second language in in order to round out your skills.
- 2:19SPEAKER_02: So when should you switch languages?
- 2:23SPEAKER_02: Let's talk first about my history so you better understand where I'm coming from when I talk about this.
- 2:29SPEAKER_02: So I've been a professional developer for 26, 27 years, something like that.
- 2:35SPEAKER_02: And I have developed professionally, as in I've been paid by companies to develop in over 20 different programming languages.
- 2:44SPEAKER_02: So that's a lot.
- 2:46SPEAKER_02: And quite frankly, I was not deeply skilled in all of those languages.
- 2:52SPEAKER_02: I was deeply skilled in Visual Basics for applications first, that's VBA, Visual Basics 6 back before.NET days, and then I jumped into VB.NET and then C sharp.
- 3:06SPEAKER_02: So those are the things that, those are the languages that I really went deep into, but that's only what, four different languages that I really went deep into.
- 3:15SPEAKER_02: I programmed in Python and Java and Fox Pro and all these other different types of languages and systems and frameworks and all the rest.
- 3:26SPEAKER_02: So I've bounced around a lot.
- 3:28SPEAKER_02: I know how that works.
- 3:30SPEAKER_02: And I was a software development consultant, and that's why I switched languages so much.
- 3:34SPEAKER_02: The customer needed something written in Fox Pro.
- 3:37SPEAKER_02: Well, I would write in Fox Pro because that's what's needed, or I needed to debug a system and build a new feature or fix some bugs in a system that's written in Java.
- 3:46SPEAKER_02: Okay, well, I'll jump in and do that.
- 3:48SPEAKER_02: And so I've written in a whole bunch of different languages.
- 3:50SPEAKER_02: And what I've found is there's really three different levels to programming, to writing code.
- 3:58SPEAKER_02: And the first level, the very foundational level, the thing that you probably learn first is syntax.
- 4:05SPEAKER_02: You need to know syntax for developing in a language.
- 4:20SPEAKER_02: But then you have the next layer down, which is the style of that particular language.
- 4:27SPEAKER_02: For instance, is it object-oriented programming or is it functional?
- 4:31SPEAKER_02: And there's different ways of structuring code.
- 4:35SPEAKER_02: And certain languages tend to lean towards one over the other.
- 4:39SPEAKER_02: And so knowing how to work within that language, within that structure that it works best at is important to learn next.
- 4:48SPEAKER_02: And then after that's where you really start to learn logic.
- 4:51SPEAKER_02: Because you understand the syntax, you understand the style, and now you learn how to put all that together and build applications that are needed and build systems that work the way that the customer wants them to work.
- 5:06SPEAKER_02: So of those three, that last one, logic, is probably the last one you learn well, and it's the one that transfers most completely.
- 5:17SPEAKER_02: Okay, so syntax doesn't transfer as much.
- 5:22SPEAKER_02: The style can transfer depending on the language, but that logic transfers almost completely.
- 5:28SPEAKER_02: So you're gonna learn all three at once, but syntax usually comes first because you have to know how to even create code before you can start figuring out how to structure the code, and before you can figure out how to apply logic.
- 5:42SPEAKER_02: So then the style comes next because you're trying to figure out how to how to structure this code well using the syntax you know.
- 5:50SPEAKER_02: And after that, you refine your logic skills once you more fully know how to use a language.
- 5:55SPEAKER_02: Now, there's still going to be logic that gets learned right away, and there's still a style that gets learned right away, but roughly you learn your syntax first, then you learn your style next.
- 6:10SPEAKER_02: And that's after that is when you really go deep into logic.
- 6:15SPEAKER_02: So uh the syntax, the basic idea transfers.
- 6:20SPEAKER_02: So if you are in C sharp and you write an if statement and you go over to, let's say, JavaScript and write an if statement, it's still called an if statement.
- 6:30SPEAKER_02: And it looks very, very similar.
- 6:32SPEAKER_02: So basic ideas transfer.
- 6:34SPEAKER_02: We have variables that are in every language.
- 6:38SPEAKER_02: And so saying, okay, I know it and need a variable, that transfers pretty easily, even if the language is a little bit different.
- 6:45SPEAKER_02: For example, in C sharp you might say this is an int, whereas in JavaScript you might say it's a let or a const.
- 6:54SPEAKER_02: So these are the things that you know that they're similar, but the syntax might change a little bit.
- 7:00SPEAKER_02: And so this is the least amount of transfer you're gonna get because the idea transfers over, but not really where you put the curly braces or if there's curly braces, or if you have an if and and if versus an if with an open and closed curly brace.
- 7:15SPEAKER_02: So the basic idea transfers uh, but not much else.
- 7:20SPEAKER_02: And this is also why uh most people, a lot of people think that, oh, this language copied that language.
- 7:26SPEAKER_02: Well, uh, that's because syntax really isn't unique.
- 7:29SPEAKER_02: It's not unique to a particular language.
- 7:32SPEAKER_02: If you go to practically any language, you're gonna find if statement.
- 7:36SPEAKER_02: And so this kind of structure, if if we get into the you know, styling, well, there's a lot of languages that are object-oriented, and so they're gonna deal with objects in a similar manner.
- 7:46SPEAKER_02: They're gonna have similar concepts.
- 7:48SPEAKER_02: So the syntax is gonna be similar, but not necessarily the same.
- 7:53SPEAKER_02: Now, style, that's the object-oriented programming versus functional versus something else.
- 7:58SPEAKER_02: The OOP languages are gonna work in a similar manner, which means that switching between you know C sharp to Java is gonna be very similar in style.
- 8:10SPEAKER_02: Whereas switching from, like, say C sharp to JavaScript, which JavaScript is functional by default, um, that's gonna be harder.
- 8:19SPEAKER_02: Now, the common mistake people make is, oh, I've been an OOP programmer in C sharp for 10 years.
- 8:26SPEAKER_02: I'm gonna switch to JavaScript and write OOP code.
- 8:29SPEAKER_02: And JavaScript will let you write OOP code, but it's not designed for that.
- 8:33SPEAKER_02: It's a functional language.
- 8:35SPEAKER_02: And trying to make it into an OOP language can cause major issues.
- 8:40SPEAKER_02: It can be done, it can be done well, but it can also cause major problems.
- 8:44SPEAKER_02: And that's why you have to kind of leave behind some of the things you've learned and gotten used to in one language when you change to a different style of language.
- 8:54SPEAKER_02: Okay, so be careful of that.
- 8:56SPEAKER_02: Now, the third category logic, that's how you compose an application.
- 9:00SPEAKER_02: And that really doesn't change from language to language.
- 9:04SPEAKER_02: So concepts like data security, business logic, logging, error checking, and more apply regardless of the syntax or style used.
- 9:14SPEAKER_02: So if you ask the user for information, whether it's on a Java console application or a C Winiform application or a JavaScript front-end application, it doesn't matter.
- 9:30SPEAKER_02: When you ask the user for data, you're going to want to validate that data.
- 9:36SPEAKER_02: That type of logic applies regardless of what language you use.
- 9:40SPEAKER_02: And the way you build an application applies regardless of what language you use.
- 9:47SPEAKER_02: So logic transfers most fully of those three.
- 9:52SPEAKER_02: So that's kind of an overview, but now we come back to the question: when should you change languages?
- 9:59SPEAKER_02: Well, the answer is it's after you've spent a significant time using one language.
- 10:06SPEAKER_02: After you feel comfortable with syntax and the style, spend time building things.
- 10:12SPEAKER_02: That's gonna grow your logic skills and greatly add to the skills that transfer to that new language.
- 10:19SPEAKER_02: You see, if you learn the syntax of one language, you're gonna feel like you know how to write, let's say, C sharp.
- 10:26SPEAKER_02: And so you can then you might feel like, okay, I can transfer over to JavaScript.
- 10:31SPEAKER_02: Well, the problem is that you haven't spent any time looking at the style and making the style really uh work well in C sharp, and then you haven't applied any logic to any depth.
- 10:43SPEAKER_02: So you're very much a surface level developer in C sharp, and then you switch over to JavaScript, and then you spend a couple of years there, but you're still just learning the surface level, and then you switch over to something else.
- 10:54SPEAKER_02: And what happens is you say, I've been in this industry for 10 years, and I feel like no one will hire me.
- 11:01SPEAKER_02: And the reason why is because you have not strengthened those logic skills.
- 11:07SPEAKER_02: You have become a junior developer in multiple languages rather than a mid-level developer in any.
- 11:16SPEAKER_02: And so that's why I say go deep with one first.
- 11:20SPEAKER_02: Learn one language well before you just jump to the next one.
- 11:25SPEAKER_02: Otherwise, you're making yourself feel good and you make yourself feel like you've got more skills, but the reality is you have less than if you were just spent more time building things in that one language.
- 11:38SPEAKER_02: It may feel like a waste of time, but the reality is it's just the opposite.
- 11:42SPEAKER_02: It's helping strengthen your skills so that you are marketable when it comes to that one language.
- 11:49SPEAKER_02: And then you can expand on that and make yourself even more marketable because you have a breadth of skill, but you have to have that depth because that depth is what's going to allow you to transfer from one language to the next and really add value in more than one area.
- 12:04SPEAKER_02: Okay?
- 12:05SPEAKER_02: So I encourage you when you ask the question, when's the right time to move languages?
- 12:10SPEAKER_02: It's only after you've spent a lot of time in one language really understanding it and building real applications.
- 12:18SPEAKER_02: Because when you build real applications, you really stretch and grow those logic muscles, which is what's going to transfer from language to language to language.
- 12:28SPEAKER_02: All right, so that's the answer to the question when do you switch languages?
- 12:32SPEAKER_02: I hope you've enjoyed it.
- 12:33SPEAKER_02: Thanks for listening.
- 12:34SPEAKER_02: And as always, I am Tim Corey.
- 12:36SPEAKER_01: Thank you for joining us for this episode of Dev Questions.
- 12:39SPEAKER_01: Tim is committed to making it easier for you to become a developer.
- 12:43SPEAKER_01: If you would like to help make more content like this possible, please like, subscribe, rate, and share Dev Questions.
- 12:50SPEAKER_01: You can also send your questions to questions at IamTimcorey.com.
- 12:55SPEAKER_01: Until next time, remember, you are too smart and your time too valuable to waste it making all the mistakes Tim did.
- 13:02SPEAKER_01: When you're ready to learn to think and code like a professional developer, head over to imtimcore.com and enroll in a course.