Developer Tea

DCR Step Two: Picking a Base Language

Episode Summary

In today's episode, we talk about step one in the Developer Career Roadmap: picking your base programming language. The Developer Career Roadmap is intended to provide guidelines for someone at any point in their career who wants to become a full-time software developer. Today's episode is sponsored by Whiteboard. At Whiteboard, we leverage technology daily to accomplish great vision. Come work with us - send us your resumé and your thoughts at work@whiteboard.is, and learn more at spec.fm/whiteboard.

Episode Notes

In today's episode, we talk about step two in the Developer Career Roadmap: Picking your base programming language.

The Developer Career Roadmap is intended to provide guidelines for someone at any point in their career who wants to become a full-time software developer.

Today's episode is sponsored by Whiteboard. At Whiteboard, we leverage technology daily to accomplish great vision. Come work with us - send us your resumé and your thoughts at work@whiteboard.is, and learn more at spec.fm/whiteboard.

Episode Transcription

Hey, everyone, and welcome to Developer Tea. My name is Jonathan Cottrell, and in today's episode, we're talking about the second step in the developer career roadmap. We've been talking about the developer career roadmap for two episodes now. In the first episode, I gave you an introduction as to why we created the developer career roadmap. And in the second episode, I talked about the first step in the developer career roadmap, and that is budgeting your time, creating a budget for your time. And this first step is something that you should be able to do in less than a day, probably less than a morning. I wanted to create the developer career roadmap so that the first step was easy enough for you to start today and hopefully see some value from it, even if it's the only step in the developer career roadmap that you decide to take. But step two is critical if you want to become a great developer and you want to be a great developer. And that is to simply pick your base language. Pick your base language. Now, this is more applicable for brand new developers than it is for developers who have done this, who've walked through these steps, and essentially they've already gone through this process of picking a base language in the past. Because the reality is you need a single base language, kind of a home base, a primary language that you can come back to. The truth is, you need a single base language The truth is, you're going to learn more than language in your development career. It is very unlikely that you will have a single language career with the current landscape of software development. It's just very unlikely that you're going to stick with just one language, even if you are learning multiple supporting languages. So, for example, a suite of languages that work well together. So, I recommend that you find a base language and you do it very early. The reason for this is because a ton of people get caught up in the process of learning a language. They get caught up on this specific subject. They get caught up trying to decide which language they want to pursue or trying to pursue too many languages at once. This is a common problem and it ultimately ends up handicapping some otherwise promising developers because they can't decide on which language to pursue or they're so excited about multiple languages that they end up only moving the ball forward an inch on each of those languages rather than becoming truly a single language. So, I'm going to explain to you kind of the process that I want you to go through to pick a single language. But again, we have to return to the context of complexity. Because of the complexity of the software development industry, you can only take the words that I say on this podcast with a grain or maybe a shaker of salt. The point of the guidelines that I'm going to give you today is to provide the average developer with a way to understand the context of the software. So, I'm going to explain to you a way of making a decision about which programming language to choose. Now, I'm going to go ahead and disappoint some of you and say, I'm not going to give you a specific language to walk away with today. That's not what today's episode is about. Instead, I'm going to give you a way of thinking about programming languages, specifically your base language. Now, what do I mean when I say a base language? Well, first of all, I do mean a programming language, a true programming language. This means that it can't be a markup language. It can't be a styling language like CSS. It needs to be a programming language that allows you to perform logical operations. And the base language is going to be the language that you default to to write programs in. Whether you're using a framework on top of that language or not doesn't really matter. What we're really trying to do here is find a language that you feel at home in that if somebody were to give you a programming task, that would be your kind of go-to language to use. Now, again, I feel like I have to come back and talk about complexity. Of course, different languages can do different jobs better than other languages. Some languages are suited better for number crunching. Some languages are suited better for concurrency. Some languages are better suited for graphing or visual representation, visual rendering. So we don't want to act like every single programming language is the same. But when you're starting out your programming career, a lot of the problems that you are solving as a beginner, a lot of them can be solved in many of those languages. Your base language is not going to be strong on all fronts. That's what we're trying to say here. And by learning a base language, you will also learn the things that it is weak at. So I'm going to give you a guideline for picking your base language right after we talk about today's sponsor, Whiteboard. Whiteboard has sponsored the last two episodes but really Whiteboard has been instrumental in making this podcast happen. I work day in and day out as the director of technology at Whiteboard. And I've been working with Whiteboard since the very beginning, since 2010. At Whiteboard, we build products that are consumed by people all over the world. We build alongside clients that have big dreams. They have big aspirations with what they want to do in the world. Whiteboard has been growing basically since the beginning of the pandemic. Since we started and we're continuing to grow, which is why Whiteboard decided to sponsor Developer Tea. We are looking for an interaction designer. We're looking for a front-end developer. And finally, we're looking for a Rails developer. But if you're listening to this and you don't fit those particular descriptions, but you know you'd love to work with Whiteboard, we'd like to hear from you too. You can send an email at work at whiteboard.is or you can learn a little bit more about what Whiteboard does by going to spec.fm slash whiteboard. Thank you again to Whiteboard. Whiteboard for sponsoring Developer Tea today and for supporting me as I create Developer Tea and spec. So we're talking about the developer career roadmap. Step one was budget your time. We talked about that in the last episode. In today's episode, we're talking about picking your base language. And I told you I was going to give you a guideline for picking your base language. So you may want to write this down. We're going to go pretty quickly. Start by picking three languages you are interested in and write a simple program in English. Let me say that again. Find three languages you're interested in and write a simple program in each. Now when I say simple, I do not mean hello world. Hello world is far too simple and in many languages, it actually ends up being identical syntax. What I really want you to do is create something that actually is a little bit more functional. This is kind of the point of the to-do MVC. If you've seen the to-do MVC, it's an exploration of different JavaScript frameworks and a lot of the things that are in there The use case of a to-do list is sufficiently complex that you can see enough about how the thing works to hopefully make a pretty educated guess about how it would work in your application and how it would work in future applications. So something of a small scale, probably even smaller than a to-do app, just to kind of get an idea of what these different languages feel like. And each of these languages deserves a day of your time. Whatever you find as your top three languages, they deserve about a day of your time to really understand, you know, am I going to enjoy the syntax? What does the community look like? Et cetera. Conservative languages are most likely to succeed on the job market. So this is step two. Pick a language that the market considers stable. Pick a language that the market considers stable. Now, of course, if you start with those first three languages, you should be using this second step to really inform which of those three languages you're going to pick, right? So pick a language that the market finds stable. If you are trying to decide between two relatively similar languages and the market is more stable with one of those languages than it is with the other, then obviously it makes more sense to go with the stable option. And the reason for this is because languages are not just about the syntax. They're also about an ecosystem. They're about the people who are responsible for maintaining the language. They are about a track record. Performance. All of these things factor in to which language you choose. Of course, syntax is important, but you have to understand that a language is really only as valuable as the market for that language as far as careers are concerned. So pick a language that is relatively supported and stable in the market. It's important that you go with a language you actually enjoy writing, but enjoyment isn't just about liking something. It's about being fluent with it. And you're more likely to become fluent with something you enjoy using than something you hate using. So step one, once again, find three languages you're interested in. Step two kind of goes along with step one. Make sure the language that you pick, ultimately, is a conservative language. In other words, the market has proven that it is stable and that it's not going anywhere anytime soon. And of course, you should be enjoying writing in this language. And what you should come up with is going to really kind of closely follow the following guidelines. Number one, the community is already thriving. It has future promise. Number two, the language is general enough to write script-like programs within a short amount of time. In other words, you probably shouldn't pick a language that is difficult to compile if you choose to go with a compiled language. It shouldn't be so difficult to compile that you can't write a script relatively quickly. Number three, the language has built in or widely used networks. It's a network-based language. It's a network-based language. It's a network-based language. It's a network-based language. This is kind of a fundamental part of computer science. At this point, you should be able to relatively easily connect to a network resource with your language, whether that's through a popular library or through the language itself. You should be able to connect to some sort of networked resource. Number four, the language isn't a markup language, styling, or other declaration language, as we said earlier, or primarily a utility language. Number five, the language isn't a markup language, for example, HTML simply displays information and content, and CSS has the job of styling that content. A utility language would be something like AppleScript, which of course is limited in its usefulness as a general application language. Again, we're thinking about this language in terms of its broad application throughout the course of the first stage or so of your career. So you should choose something that can be applied in a relatively simple way. You should choose something that can be applied in a relatively broad range of scenarios. So again, going back through the guidelines that I have for you today, number one, find three languages you're interested in and write a simple program in each. Number two, make sure that the language you choose is relatively conservative as it relates to the market. And number three, the language you choose should follow the guidelines outlined in today's episode. Examples of languages that I believe are suitable as base languages, may include something like Ruby or Python. Of course, Java has been around forever. That's a very stable language. Going with something like a functional language is also not a bad choice, especially in today's market. Functional languages are certainly a viable choice for today's market. I believe that PHP is well enough supported and it's been around for long enough that you can use something like PHP. You could use JavaScript as your base language. This has... I have a large amount of energy behind it right now. The reality is, if I tried to list all of the suitable languages in today's episode, this episode would go far longer than it already has. There are so many powerful languages that are available that also have market support. There's tons of languages available to you. If you want to go and find out what languages are out there, there's quite a few learning resources. One is learnxinyminutes.com. This is a list of mostly programming languages and it'll give you an idea of what these programming languages look like. Not all of them are forefront on the market, but there are quite a few that are forefront on the market. Another decent resource is GitHub's statistics pages. You can go and look and see what are the most popular languages being written on GitHub and that's using lines of code. Of course, lines of code is not an exact representation of how a language is written. It's not an exact representation of how popular a language is. So it's important to do a little bit more investigation, just a little bit of Google searching, some general research to determine how is this language doing in the market? You may be listening to this episode a few years into the future or even a few months into the future and the landscape of the market could have changed in that amount of time. Here's the real secret of today's episode and perhaps the most important thing that you need to walk away with for step two. in the developer career roadmap. Most people get hung up on this particular step not because they don't know which language to choose, but because they're unwilling to make the commitment. Let me say that again. A lot of people get hung up on this particular step. They get hung up in a state of indecisiveness not because they don't know which language is best, but rather because they're not willing to make a commitment. This concept. This concept of analysis paralysis, if you want to call it that, you're looking at every single language and you can't decide which is better than the next and ultimately you could be spending that time learning a language and actually creating things, actually writing code. And that time would be far better spent than time researching what languages are at the forefront of the market or what languages are best. Of course, a sufficient amount of research is necessary, but I would recommend that you do that. I would recommend that you choose a popular language and you do it within about a week. That may seem accelerated to some people, but here's the reality. If you start walking down that road and you realize this is absolutely the wrong choice, you're free to change that decision. But most likely, if you are like most people, if you spend your time learning a language rather than deciding whether or not you want to learn it, you're going to advance your career much further than you would have hoped. So, if you're going to do that, you're going to have to make a decision. You're going to have to make a decision. You're going to have to make a decision. You're going to have to make a decision down the line than if you spent a ton of time trying to decide which one. Thank you so much for listening to today's episode of Developer T. Thank you again to Whiteboard for sponsoring today's episode of Developer T. If you are an interaction designer, a front-end developer, or a Rails developer, reach out to us at work at whiteboard.is or you can go to spec.fm slash whiteboard to learn a little bit more about what Whiteboard does. Thank you again to Whiteboard. Thank you so much for listening, to today's episode of Developer Tea. If you don't want to miss out on future episodes where we're going to be talking more about the developer career roadmap, go and subscribe in whatever podcasting app you use. Thanks so much for listening. And until next time, enjoy your tea.