« All Episodes

DCR Step Two: Picking a Base Language

Published 10/17/2016

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.

Transcript (Generated by OpenAI Whisper)
Hey, everyone and welcome to Developer Tea. My name is Jonathan Cutrell 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 that is to simply pick your base language pick your base language now this is more applicable for brand new Developer 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'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 a 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 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 they're so excited about multiple languages that they end up only moving the ball forward and inch on each of those languages rather than becoming truly expert level at 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 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 we got so I'm gonna 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 we started and we're continuing to grow which is why whiteboard decided to sponsor Developer Teawe are looking for a 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 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 each. Let me say that again find three languages you're interested in 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 seen that to do MVC it's an exploration of different JavaScript frameworks and 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 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 what if 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 is the community look like etc. 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 the 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 these 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 networking support 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 for example HTML simply displays information and content and CSS has the job of styling that content a utility language would be something like apple script 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 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 based 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 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 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 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 learn x in y minutes dot 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 a forefront on the market but there are quite a few that are forefront on the market another decent resource is get hubs statistics pages you can go and look and see what are the most popular languages being written on get hub and that's using lines of code of course lines of code is 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 an 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 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 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 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 Teathank you again to whiteboard for sponsoring today's episode of Developer Teaif you are an interaction designer a front-end developer or a Rails developer reach out to us at work at whiteboard.js 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 Teaif you don't want to mess out on future episodes where we're going to be talking more about the developer career road map go and subscribe and whatever podcasting app you use thanks so much for listening and until next time enjoy your tea