Which Programming Languages Should I Learn?

programming language names

With so many programming languages to choose from, how do you decide which ones to start learning? This is a decision that overwhelms those who are new to programming. Your decision will depend on a couple of factors:

  1. What problems you’d like to solve or projects you’d like to build with code.
  2. Which technologies / programming languages the companies you’d like to work for are using.
  3. Which programming languages are popular where you live.

Before we get to the kind of work you’d like to do as a web developer or software engineer, we are going to address the last two items in the list above. When you choose a path for yourself, it is important to understand:

Technology is Regional

This might sound strange. They’re using React.js at Facebook, so shouldn’t it stand to reason that all companies will follow and start using this cutting-edge library in all its web apps? The simple answer is no. React may be all the rage at Facebook and at start-ups since it’s a free and open-source library, but I can tell you that virtually no big employers in Milwaukee, where I live, are using React.js. Perhaps they will one day, but Milwaukee is very much a C# .NET kind of town. A C# .NET developer who also knows JavaScript is in an enviable position where I live. I previously lived in Chicago where Ruby on Rails was very popular. Virtually no one was (or is) using it in Milwaukee, though, even though it is only 90 minutes north.

It is, therefore, is important to conduct research to determine which programming languages are popular where you want to work. If your intent is to freelance online, then the decision for which programming language you’ll start with will not carry as much weight since you’ll be able to apply to a number of projects.

We will now consider several popular programming languages, the kinds of projects and tasks they are commonly used for, and the U.S. cities where they are used.


You can start learning Java if you’re interested in developing software or Android apps. These are advanced topics, however, so you’ll start with the basics and gradually build your way up to working on larger projects. Java is also used in web development, but you will need to learn some HTML and CSS as well. There are several good integrated development enviornments for Java, including Net Beans and Eclipse. They have advanced features that can help you run tests and gain an understanding of how the code is executed.

Many undergraduate courses start out with Java programming. While the syntax can be difficult for a new programmer to get used to, Java behaves in a way that is a bit more predictable than scripting languages like PHP or JavaScript. There are also some fantastic API’s for Java and a lot of support for its libraries.

Java is an incredibly popular programming language, so if you are well-versed in Java and can solve open-ended algorithm problems, you will be able to work almost anywhere.


C is ideal if you want to develop operating systems or need to handle higher-level network problems. I personally think it’s a great language to start with if you don’t know any programming. You can use an IDE (integrated development environment) like Eclipse, or you can learn to compile your own programs and run them from your command line. And while there is a lot to learn with C and it covers complicated topics like pointers, I don’t think it is as intimidating as starting with a scripting language like Python, JavaScript and PHP.

My reasoning behind this is that you can learn nearly all the aspects of the C language from a decent book on programming, whereas you will probably never be able to master an entire scripting language such as JavaScript. (A web developer who says he has mastered JavaScript is the equivalent of an accountant who says he’s memorized the entire US tax code. If you encounter either such individual, run far far away!)

C is a more specialized skill set, but knowing C will serve you well if you wish to work as a biomedical engineer or as a cyber security professional.


Python is very versatile, and you can do almost anything with it. Like PHP and JavaScript, it is a scripting language and you can use Python to build websites, but is also has wonderful capabilities for scientific applications. Many people believe that Python is an ideal programming language to begin with. I personally didn’t find that to be the case, but I think I’m in the minority on this one. Python was written to help people enjoy programming, and it is becoming an increasingly more popular programming language.

A general-purpose programming language, Python can be used for front-end or back-end development. Some companies that use Python include Dropbox, Quora, Google, etc. Python has become an incredibly popular programming language, but since not all companies use it, you will need to do some research to ensure that your skills will be in demand where you live.


When I first decided to learn web development, I asked a web developer where I worked which language I should learn, and he said, “JavaScript is the future.” After I started to learn about JavaScript’s role in client-side web development, I began to understand what he meant. The three things that we need to build a web page are HTML, CSS, and JavaScript. While we can build web pages with just HTML and CSS, JavaScript is what makes web pages exciting. HTML adds our structure, CSS adds style, and JavaScript controls the behavior of your web pages. We can use it to interact with the user, add animation, form validation, and so much more. In short, all companies that build websites from scratch need JavaScript developers.

JavaScript can also be run outside the browser, thanks to node.js. Server-side JavaScript runs on the Google Chrome V8 engine. You can install node.js and npm, which manages the many node.js packages, and run the server from your command line. Once web developers are comfortable with client-side JavaScript, they can tackle node.js.

If you take the time to learn JavaScript and learn it well, you will be in high-demand as a web developer, whether you choose to freelance or work for a company.

Other Programming Languages to Consider:

These are not the only programming languages you can start with. Others include:

  • PHP: a back-end programming language that runs on a server. If you want to be a freelance WordPress developer, then PHP is a great language to learn.
  • Ruby: popular with start-ups (but losing some popularity as of 2017)
  • C++: versatile enough to build software, video editors, games, and more
  • C#: allows you to build applications on the Microsoft .NET framework

No matter which programming language you start with, be sure to do your research. You don’t want to spend 2-3 years learning Ruby on Rails, only to find it’s not a popular programming language where you live and would like to work. It is also important to stick with one programming language, at least when you’re starting out. In a future post, we will explore some excellent sources where you can learn a new language. It is important to invest in a quality program, book or course to ensure you’re learning the important aspects of the language.

If you are having trouble getting started, please feel free to leave a comment. I am happy to help you get started and make sure you are on a path to become a successful developer!


Similar Posts


  1. Wow! I did not realize programming languages could be regional. I guess it makes sense. I have always heard about C and C++. Then later HTML, Java, PHP and so on. I never knew what they did. LOL.
    Your explanation of the differences in these languages is great. I always wanted to learn C and I see you believe it is a great place to start. Reading this has given me new motivation to learn. Maybe one day.

    1. I am glad you feel motivated to learn! C is an excellent first programming language to learn. Because it is a strongly typed language, it will force you to develop good habits. Good luck with your journey, and if you get stumped, please feel free to connect with me here.

  2. That was a very informative post! I appreciate that you’re speaking from personal experience. I also liked how you distinguished each language’s purpose or usage. And, although from a tech background, I never realized that programming languages varied so much from region-to-region. That was very eye-opening and a crucial piece of information for someone looking to pursue programming as a career.

    Well done.

    1. Thanks, Leslie! I’m glad you fond this post informative. I didn’t realize technology was regional until I moved to a new city. I’m originally from Chicago where you can find a use for most common programming languages. When I moved to Milwaukee, though, I discovered that web developers here need to know more C# and PHP. JavaScript is starting to make a splash, but there aren’t many places here that use Python. We have a lot of banks here, so companies tend to rely on the programming languages that are very stable.

  3. Laura:
    I’m a retired IT Manager, past analyst and programmer. I’ve built several web sites using only HTML but am trying to learn WordPress to build a new website. I would like to know what you might recommend for heavy MySQL work with a large db situation.
    Any advice will be much appreciated.
    I have an e-commerce website (listed below) but that is not the site I’m trying to build.

    1. Hi John,
      I’d like to make sure I understand what you’re trying to do. It sounds like you’d like to build a WordPress website and already have a large database to work with. Do I have that correct? If that is your situation, then there is a good process outlined for how to build a database in WordPress from Theme Isle. If I had to undertake this task, I would follow these instructions to make sure there isn’t something I overlooked: https://themeisle.com/blog/wordpress-customer-database/

      If you’re trying to do something far more technical, like migrate the database yourself, let me know, and I’ll provide alternate instructions. Hope this helps.

Leave a Reply

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