Top 3 Programming Languages to Learn Before 2019

Seriously? Another top languages blog? You may be right, but I’ll try to give you some insight as to why I made the selection that I did. 

I often find myself a step behind every one else.  I’m the one reading the Top Languages of the year blogs as the year is coming to an end. NOT THIS TIME! This blog contains my recommendations for languages to learn before 2019, just to get that upper edge a bit early 😉 (unless you’re reading this in 2019).

Let’s Get to the Point. 

You probably don’t want to read a long, drawn out introduction. I’ll jump to the conclusion: The three languages are Python, JavaScript, and Go. 

Before jumping into the blog, I’d like to give a special thank you to Pramp for supporting this content. Pramp is an incredible website for technical interview prep. With Pramp, you get paired with another individual and do a mock technical interviews using real interview questions. Go ahead and get unlimited Pramp sessions for free.

As I was thinking about this blog, I thought about the languages I would learn to prepare for software engineering in 2019, and these are the three I selected. Believe it or not, this was before I found out that Python, JavaScript, and Go were labeled the most wanted languages in the Stack Overflow Developer Survey.

There is the obvious temptation to choose the three most popular languages and attempt to learn them. Although this seems reasonable, it’s not always the best decision. Python, JavaScript, and Go, are not the most popular languages (well, JavaScript is). Rather, these are the three most wanted languages. Only learning the most popular languages is sort of like buying stocks when they’re at their highest. You’re setting yourself up to be well knowledged in a language that may soon fall out of favor.

1. Python

You may be an experienced developer, or you may be a beginner.  Either way, we can all see the simplicity of python. python has always been favored for it’s simple syntax and ease of use. Here is some simple code in python:

Compared to other languages, python gets rid of a lot of the extra stuff:

You’ll notice in the Java code above, we have additional curly braces for different structures as well as every statement ending with a semicolon. This is the same style of syntax you’ll find for C, C#, C++, and even JavaScript. For a beginner, it can be nice not having to worry so much about syntax and being able to focus on what matters (what the code actually does). 

An additional bonus with Python is that it teaches beginners how to properly indent their code. I see many noobs incorrectly indenting their code, thus making it impossible to interpret with ease. Python is one of the few languages that is white-case sensitive. This means that if you don’t indent your code correctly, you’ll have logic errors (when the code runs but doesn’t give the desired result). 

Python for Data Analytics

Python is legit because it’s awesome for statistics, data analytics, and machine learning. One of the biggest competitors for Python in this area is R. R is a statistical programming language.  If you’re in to that kind of thing, you could consider learning R, but there are benefits of studying Python instead. 

Although I’m sure R could be a suitable language to start with, python is a general purpose programming language. This means that it can be used for a larger variety of solutions, with only one of those solutions being statistical processing. Once you learn python, you can also use it to build games, websites, business applications, and more. 

Plus, in general, the learning community around python is much stronger than that of R or many other programming languages. Python is regularly taught for introductory computer science courses in computer science curriculums or software engineering boot camps. 

My bet is that if you chose python as your first language with the intention of doing artificial intelligence, you will build a much stronger foundation in coding compared to what you would learn using R for your next AI project. that can likely be transferred to other programming languages. 

Python for Web Development

Python being a general purpose programming language means that there is likely a framework for web development. When it comes to dynamic web development, you’re going to have a server-side programming language (back end language) The front end stays basically the same (HTML, CSS, JavaScript), but the back-end language can be anything (C#, Java, Python, Ruby, etc). Although web development is possible with R, it’s not exactly the best tool for the job 😂). Web development is well established in Python through Django or flask. So not only is it possible to be an analytics master using Python, but you can also use it for full stack web development! That’s bonus points for you on your next job interview. 

Want to Learn Python? I’d recommend Python Crash Course.

2. JavaScript

I regret to tell you that JavaScript made the list. For the uninformed, JavaScript has a very split reputation in the industry. People seem to either love it, or hate it. Why such hate? Well, you could read an article giving every detail, or you can just trust me when I say that the hate is well deserved. JavaScript:

  • was supposedly designed in 10 days
  • has nothing to do with Java
  • has no native integer type
  • has odd comparisons. Can someone explain why [] == ![] (array  == not array) is true?
  • forces you to deal with global variables
  • has funky scoping
  • and much more…

Because of these issues, and the fact that Javascript is a very easy language to get started with (all you need is a web browser), I feel that a lot of beginner developers never truly learn JavaScript. I feel the same way about myself. I’ve developed in JavaScript, jQuery, Angular, tinkered with some other JavaScript frameworks, and still feel like I really don’t “get” the the JavaScript language. 

Maybe it’s just me, but when I’m coding in JavaScript, I find myself having to tinker to get things to work the right way and I always find myself having a hard time debugging the simplest of code as any change I make seems to break something else 😂.

source

The lack of truly knowing JavaScript is amplified due to the fact that there is a new JavaScript framework every 2.3 seconds. I can’t help but assume that there are a lot of very good React developers who still don’t understand the quirks of vanilla JavaScript. Thus, when a new framework comes out, they have to start from square one.

If JavaScript is so Awful, Why Learn It?

Although I often see JavaScript as a necessary burden for software developers, it is undeniable that JavaScript is often used to make the most elegant of websites and cross platform apps. Sometimes it’s hard to believe such a nice web page can come from such terrible code. In a sense, the result of JavaScript allows me to appreciate the language and enjoy coding in it. It’s a love-hate relationship kind of thing. And don’t just take my word for it, a lot of people prefer the free spirited JavaScript over the strict, boring, C inspired languages:

source

Maybe you’re somewhere in the middle?  You like the capabilities and freedom of JavaScript, but enjoy the safety of other languages. Well, There are languages out there that transpile to JavaScript.  Transpiling means you code in a different language but the end result is still JavaScript.  I’ve used one called TypeScript, which is, essentially, a strongly typed JavaScript. These transpiling languages can help us avoid annoyances of JavaScript, yet we still end up with valid JavaScript code to be executed.

You Can’t Hide from the JavaScripts…

Because front end technology always consists of HTML, CSS, and JavaScript, JavaScript has quickly become the most popular language in the world. It seems every job application requires JavaScript, now. “Hiring preschool teachers! 3 years JavaScript experience required.” It can even be used for back-end development through Node.js, so the number of uses are vast.

If you’re looking to build beautiful apps or become a full stack web developer, you must learn JavaScript. Don’t be one of those backend developers who fails to learn JavaScript. It’s not that hard to start building things with JavaScript. As a result of learning JavaScript, you’ll prepare yourself for future software engineering positions and you will validate your software development capabilities. 

Want to learn JavaScript? I’d recommend A Smarter Way to Learn JavaScript.

3. Go

I’ll reveal my secret right now. At the time of this writing, I’ve never programmed in Go (Golang). 

“What?! How can you have never used a language yet recommend it to me?” You may be asking.  The primary answer is that “This is my blog, so I can write whatever I want,” which would be quickly followed by “and because I understand the hype behind Go.”

The efforts of Go are to contain all the positives of many languages while avoiding the negatives. This means that Go is C-like in nature (as is C++, Java, C#), but simpler to read and write, closer to Python. 

Go is strongly-typed. This means that every variable is given a data type. This is unlike JavaScript, where you don’t have to worry about the type of data (which can be good or bad). That being said, with Go you are freed from the worry of defining types because the type for a variable is defined through type inference (x := 0 not int x = 0;). In English, this means that every variable does have a type, but it is inferred by what you assign to it rather than you being forced to explicitly say what data type a variable is.

Go has a variety of use cases. It can be used for web development, servers, and more. In fact, there is even a Go compiler that transpiles Go into JavaScript. So now you can be a JavaScript developer without touching JavaScript or having to learn some new language (like TypeScript).

One reason people love Go is it’s effectiveness for building concurrent applications. Concurrent applications are applications that, during execution, break the work up into multiple threads. Concurrency has some challenges that are hard to overcome (avoiding race conditions and communicating between threads). Go makes concurrency more obtainable through goroutines (like mini-threads), channels, and the select statement

The third plus of Go is that it is open source! This means that the ambitious software developer can really learn the details of Go by viewing the source code. You could probably even use it as a guide for language design!

Want to learn Go? I’d recommend The Go Programming Language.

The Secret Behind Kubernetes

have you heard of that new, revolutationary broom? …It’s been sweeping the nation!

Jokes aside, that’s exactly how I feel about Kubernetes. 

Kubernetes is a container system used for application deployment. It’s already very popular and is becoming more so by the minute. It’s often talked about with another software system, Docker.  Little does the world know that these famous solutions were both developed in Go. It’s actually a well kept secret:

You wouldn’t understand the effort I had to go through to find this…

Why am I showing you this? I’m leaving it here as an example of the power Go provides and just how capable you are of developing a very successful app with Go. 

Check out the Video

The “Almost Top Three” Languages

I intentionally left this article at the top three languages as to not overwhelm you with options.  Okay, I lied. I really just didn’t want to write about more than three for my sanity. But I decided I’d leave a bonus section here for those languages I’d recommend, but didn’t quite make the top three.

Swift – The first bonus language is Swift. Swift is a very popular language for iPhone app development. Why didn’t this one quite make the list?  Primarily because, in my opinion, it’s too specific.  The domain of app possibilities for Swift is much smaller than that of a general purpose programming language like Python (similar to how R is not very useful outside of statistical processing). That being said, iPhone app development is huge, and you definitely wouldn’t be hurting yourself by investing your time in studying Swift. Want to learn Swift? I’d recommend Swift: Basic Fundamental Guide for Beginners.

C# – Although very popular, C# hasn’t really had any explosive growth. Similar to C++ and Java, C# has been a steady player for numerous years. C# is cool because it’s very simple to build large scale apps. It has a lot of similarities to C++ when it comes to syntax and structure (classes, structs, methods, etc), but avoid multiple-inheritance through the use of interfaces. It also abstracts away memory management. C# is an example of a managed language (as many of the other languages here are) because it deals with allocating and freeing memory behind the scenes with the help of a garbage collector. The main reason I like C# is that it helped me understand object oriented programming and software design without worrying too much about the details required in C++. The biggest reason I like C# though is it’s intuitive use for web development using the ASP.NET CORE MVC framework. Want to Learn C#? I’d recommend Murach’s C#

C – WHAT!? Did I just say C? Yes, I did. Now, I know C is not the most booming language (yet it’s not dying either), but I like C because it helped me understand a lot of fundamental computer science concepts that I didn’t have to worry too much about in Python or C#.
For example: Pointers. C also helped me understand the stack and the heap for memory management. As I learned C, I also learned how to create a makefile, compile software using the terminal, and how to use the most important linux commands. I also learned about concurrency using semaphores for protecting memory in some of the most common concurrency problems (like readers-writers). I truly didn’t understand how strings worked until studying C (I never even heard of a null-terminating character until I studied C strings). Studying C helped me prepare for recursion as recursive functions require you to keep track of indexes for arrays or strings. This is required in C anyways, so I got practice using an additional size variable within my function rather than using string.length() or whatever else that would be available in a language like Python, C#, or JavaScript.

I’m now applying for a position that requires a deeper understanding of lower level programming and I’m thankful I spent time in C. Want to Learn C? I’d recommend C Programming Language (by the creator of C).

I sincerely hope this guide was helpful. Please leave a reply: What language do you think is essential as 2019 approaches?

2 Replies to “Top 3 Programming Languages to Learn Before 2019”

Leave a Reply

Your email address will not be published. Required fields are marked *