Which Programming Language Should I Learn First

What-Programming-Language-Should-I-Learn-First-1020x560When you are starting out as a computer programmer, the first and most challenging question to answer is always Which programming language I should learn first?

It is important to ensure that you learn the best programming language that will make your skills useful and marketable once the difficult part of learning to code is out of the way.

In fact, according the U.S. Bureau of Labor and Statistics, in the United States, nine in ten parents want their child to study computer science, but only one in four schools teach computer programming.

However, most beginning computer programmers spend too much time deciding on which programming language to learn first to the point that much time is wasted choosing the programming language…

…time that could have been spent actually coding something useful.

The key point that helped me choose the best programming language to learn first as a beginner was to decide on the particular field I was interested in.

Once you decide on which software development field you are interested in, it will be easier to choose the best programming language to learn.

That is… the language most appropriate for the task at hand.

In this post I will help you answer the question Which programming language should I learn first? by highlighting the most popular software development fields and the best programming language for each.

Featured Download: Are you struggling to launch a successful software career? Click here to download my 52 page eBook on How to Become a $50/Hour Software Developer in 7 Simple Steps and jump-start your software development career today.

By the end of this post I hope you will be able to choose which programming language to learn first as a beginner according to the field you are interested in…

…be it the best programming language for web development, mobile app development or game development.

Web Development

Web development is the most common and easiest entry point into software development for aspiring computer programmers.

According to a recent study, 62% of companies which designed their website(s) for mobile platforms increased their sales.

This means that companies are investing more into website development for higher ROI, while embracing the latest web development technologies like Responsive design. Therefore learning web development is one of the most lucrative tech skills in 2018.

Almost all major software including mobile applications, desktop applications and web applications have a web based back end, including your anti-virus software.

In this section I will highlight some of the most popular programming languages to learn for web development.

1. PHP

You probably have read many posts and forums bashing PHP as a dying horse.

Well, scratch that!

PHP is THE most popular programming language on the World Wide Web and will continue to be in the foreseeable future.

Here are a few stats about PHP that will blow you away:

  • 80% of the web is powered primarily by one programming language, PHP.
  • PHP powers the world’s largest social network, Facebook, almost a billion users.
  • PHP is deep enough to form the foundation of the largest and most popular Content Management System that powers 20% of the web, WordPress.

Therefore, as a PHP developer you have a large pool of web development projects to choose from because many companies have their websites running on WordPress, a PHP based Content Management System.

This makes PHP one of the best programming languages to learn for web development because of the lower barrier to entry and the huge pool of design clients ready to get your web development career started.

This means that you don’t need a deep understanding of PHP before you can start making money from your skills because of popular CMS’es like WordPress and frameworks like Laravel that will help you get your hands dirty much faster.

So PHP is the best programmming language to learn if you want to get started freelancing and building websites for local businesses and entrepreneurs in your city.

2. JavaScript

JavaScript is the most used language on the web probably because it works on all browsers and…

…well, we don’t have another viable option for front end development.

JavaScript is used by 94.9% of all the websites.

Regardless of which programming language you use on the server, the user facing end in the browser will be done in JavaScript.

In fact, based on the growing need for greater user experiences in the front end and the need for more efficient programs a lot of development frameworks and libraries have mushroomed to support and make JavaScript development easier.

This makes JavaScript a very popular and the easiest programming language to learn if you want to specialize in front-end web development and hybrid mobile application development.

With front-end JavaScript frameworks like AngularJS, MeteorJS and ReactJS, learning JavaScript programming as your first programming language will make you the coolest dude in town while opening many doors of opportunity for work and networking.

If you want to become a front-end developer then the programming language to learn is JavaScript and it’s respective frameworks and libraries like React.js

As a professional web developer, regardless of the programming language you use in the back end – you still need to learn some JavaScript. Learning JavaScript programming will simply make your life easier.

Choose to learn JavaScript inside out if you mainly want to be a front-end developer tidying up things.

3. Ruby

Ruby is a general purpose programming language originally designed by Yukihiro Matsumoto

Wanna learn the programming language used by the fortune 500 companies like Twitter, GitHub and SoundCloud?

Then Ruby is your guy!

What makes Ruby particularly popular is the Ruby on Rails framework that is touted to be a very efficient web development framework.

If you want the best programming language to learn first that will get you in the radar of most startups in Silicon Valley then learn Ruby programming.

A great number of startups are using the Ruby on Rails framework to build their software and so you are sure to have a great number of avenues where you can put your programming skills to work.

Note:

Getting a Ruby on Rails developer job requires a higher level of experience and a stronger portfolio than you’d expect for a PHP developer job. This is because as opposed to PHP which is great for small businesses and individual websites, Ruby attracts startups with huge budgets that want to build more advanced software and APIs.

Therefore, you will need to put in more effort to build more projects in order to gain the programming experience that will land you a job as a Ruby on Rails developer.

So if you are looking to join a highly prolific startup in your city, then the programming language to learn is Ruby and the Rails framework.

4. Python

Python is a general purpose programming language that can be used for anything you can imagine including machine learning.

And the question that buffles most new programmers is Should I learn Ruby or Python for web development?

Through the Django framework, you can use Python programming language for web development.

Django framework is a Model View Architecture (MVC) framework based on the Python programming language that is used for developing web applications.

It is quite huge and almost similar to the Ruby on Rails framework where almost all functionality for anything have already been abstracted(built).

Both programming languages are great for building robust web applications though Python is preferred for web back ends that are data intensive and handle a lot of calculations

However, as opposed to the Rails framework which has an elegant and simple syntax, Django framework has a steep learning curve – but once you have mastered the basics it’s quite easy to build applications with it.

So, what do you do if you are a beginner in programming and you only have to choose between Ruby and Python for web development?

Well, here is what I’d do.

If I have all time to kill, I’ll get started with Python programming and Django framework first then Ruby and Rails later, otherwise Ruby and the Rails framework would be my first stop!

5. C# and .NET framework

The .NET framework enables building web applications for the Microsoft Internet Server using the C# programming language.

If you already have skills in any of the Microsoft based programming languages like Visual Basic or C#, or you intend to host you web applications on Microsoft run servers then you’d best learn C# programming and the .NET framework.

ASP.NET is a web development framework that is fully Model View Architecture (MVC) oriented.

It has a great set of tools that automate a lot of the often repeated tasks in web development, just like Django. But from my experience building web applications using C# and the .NET framework is most common among big corporates.

It is quite an old and stable framework that makes development easier than if you were to build your web application from scratch.

So if you are targeting a web developer job in a big corporation that uses the .NET framework or is Microsoft friendly then the best programming language for you to learn is C# and the .NET framework.

To be honest, I have never had such an ambition before! Sorry buddy 🙁

The C# programming language is also popular partly because it’s a darling for most game developers as we’ll discover below.

6. Java & Play Framework

Java, despite being a general purpose and cross platform programming language is also a great option for building stable, robust and scalable web applications.

If you are new to programming then you must have heard the Java fanboys bitch about how it’s the one-size-fits-all programming language.

Well, if you’ve been reading along then you know it’s clearly not! Sorry again buddy 🙁

However, just like C# and .NET, Java is a reserve for big corporates like LinkedIn…

…mainly because Java developers are the most expensive to hire among web developers and low budget startups steer clear off their path. 🙂

Java serves as a default programming language for building API back end for most mission critical applications like banking applications and medical applications because of the high security needed for these apps.

However, for most common applications and startups Java is an overkill and unnecessarily costly option for building a web application.

Also, Java being a compiled language requires a longer development time as compared to the scripted languages like PHP, Ruby or Python. It is a statically typed language with strict rules hence very time consuming when building applications.

There are a variety of Java frameworks to choose from when it comes to web application development using Java. The one I found most friendly to web artisans is the Java Play framework.

So why should you learn Java programming for web development anyway?

Well, because Java developers are always in very high demand. And because of this they get to demand the highest salaries in the market as well as get to work on some of the coolest software on the planet.

If that gets you ticking then there you go! Your guy.

And why isn’t everyone learning Java then?

Well, it’s NOT for everyone.

Just like getting in shape. Everyone wants the sick packs. But not everyone will work out in the gym.

Choosing to learn Java programming, especially if it’s your first language will not be a smooth ride – I promise!

But if you got the balls, the patience and the time then go for it – the rewards will be huge. You’ll always have a job your entire career.

Java programming is also popular partly because it’s used for Android app development as we’ll discover later.

 

Mobile Application Development

If you want to get into mobile application development, then you have a different set of tools to choose from.

According to Statista, the number of available apps in the Google Play Store was most recently placed at 3.5 million apps in December 2017, after surpassing 1 million apps in July 2013.

This shows that the mobile app development industry is growing at a huge pace with more opportunities for work and business being created everyday in the mobile software sector.

So, which is the best programming language for mobile application development?

Different mobile devices run different operating systems that require different programming languages to build.

Your choice of the programming language to learn therefore will depend on the operating system for which you intend to build your mobile apps.

Once you are very well conversant with building mobile applications in one programming language, it will be much easier and faster to pick and learn another programming language.

In my experience the most popular mobile platforms that will easily get your mobile development career started, and get you making money, are iOS and Android.

Below I highlight the best programming languages to learn for building mobiles applications for both the iOS and Android devices.

Before we jump in, let me remind you that it is very possible to build cross-platform hybrid mobile applications using only JavaScript but the demand for native mobile developers using programming languages that are native to the devices is still very high.

7. Swift

Swift is the new programming language developed by Apple Inc. for use in developing applications for iOS devices.

Previously, and for many past years, the default language for building applications both for iOS devices and the Mac Operating system was Objective C. However, Objective C has a steep learning curve and is very verbose.

The Swift programming language solves this because

  • it’s easier to learn than Objective C, and
  • it enables you to do more with less code

If you would like to get started building applications for iOS phones or tablets then the best programming language to learn for iOS development is, by all means, the Swift programming language.

In fact, it is easier to learn Swift programming than to learn Objective C.

8. Java for Android

In order to build Android applications you need some skills in Java programming.

Android is a platform developed by Google based on the Java programming language for developing applications for the mobile devices that run the Android operating system.

Since Android is based on the Java programming language, it will help for you to have a deeper understanding of Java as a language.

The Android devices marketplace is huge and if you are a beginner in mobile application development, I’d suggest that you first try Android application development by learning some Java.

Java being a very broad programming language you will not need to know Java inside out to build stellar Android apps…

…there are online courses and books that will teach you just the Java you need to become a pro Android dev.

It is still possible to pick Android tutorials and learn while building applications for the Android device but to be able to write efficient code and have direct control of device hardware components you need a solid background in Java.

But wait…

…what if you have to choose between iOS and Android programming, which way bruva?

Well, start programming for the device that you have. Simple.

Game Development

Game development is another very interesting and lucrative programming skill you can choose to learn in 2018.

With the invention of machines with more processing power, greater memory and unmatched video rendering capabilities, it is possible to create heavily graphic intensive video games that run both on the native device and via the web.

In fact according to a source quoted by Statista, in 2015 the Game Applications market was estimated to be worth 16.97 billion U.S. dollars and the source expects revenues to reach 20.28 billion by 2020..

Note:

With the software development tools available to game developers, you can build a game in one programming language and have the same code run all the major operating systems.

So if your sole interest is in game development then here are the two most popular programming languages for game development.

9. C++

A game development enthusiast?

Then C++ is the best programming language for developing computer games.

Learning C++ programming is your best bet if you are interested in building efficient gaming applications.

C++ is a powerful and robust language that is closer to the machine therefore giving you the ability to access the computer hardware devices more closely and manage them directly.

Game development requires intense use of computing resources…

The closer you can access the device hardware themselves the more efficient the game program you can write.

However, if you are not into learning C++ for game development, then checkout the next programming language to learn.

10. C# for Game Development

C# is a programming language designed primarily for building applications for the Windows Operating System.

With skills in C# you can write applications both for the desktop and mobile devices that run Windows OS.

However, because of the power and capability of the C# programming language, together with its object oriented approach to development, it has become a popular option for developing computer games.

With game development frameworks like Unity and Unreal Engine you can develop gaming applications using C# and have them run on all the major operating systems.

So, apart from being able to use the C# language to programming web and mobile applications, C# is a great choice for avid gamers who want to learn a multi-purpose programming language while still making the most of their gaming hardware.

So if you have to choose between learning C++ and C# programming for game development, which one would you choose?

I’ll go with C# because of the thought that someday I might use the same skill to build a web or mobile application. If that day will at all ever come!

Otherwise if my sole desire is efficiency, speed and control then I will learn C++ programming for game development.

In conclusion…

Choosing the easiest programming language to learn can be a lengthy and tedious process that eats into the development time.

It is good practice to take your time and ensure you choose the best programming language to learn that is directly aligned with

  • the particular skills you’d like to acquire, or
  • the particular project you’d like to build.

However, if as a beginner you realize you are never going to decide on a favorite programming language to learn in good time, your best bet is to

  1. pick any programming language, and
  2. start learning.

It will be your eye opener into the world of software development, you can then switch to another programming language anytime later if you realize there is a better alternative.

What is your best programming language to learn for a beginner?

Please share your thoughts in the comments below.

Found this article useful? Please share.

Featured Download: Are you struggling to launch a successful software career? Click here to download my 52 page eBook on How to Become a $50/Hour Software Developer in 7 Simple Steps and jump-start your software development career today.

About the Author Geoffrey Barnes

Geoffrey is an experienced software developer and open source evangelist. When not coding he writes and talks about current technology trends, small business tips and developer productivity hacks. He is no coffee addict.

follow me on:

Leave a Comment:

7 comments
Hati says April 2, 2018

I would like to congratulate you for this article. It is very good article and the reader can find most useful programming language for learning.
Regards, Hati

Reply
    Geoffrey Barnes says April 2, 2018

    Hey Hati, thanks for stopping by. I am glad you found this article useful in choosing a programming language to learn. Cheers!

    Reply
juan says April 7, 2018

Hello!

You have to look at the need to learn a first programming language in several contexts. For example, if it is to be formed on the initial loggia, php or c ++ would be ideal, but if it is to start the development business for web applications it is necessary to appropriate the integration of several languages ​​such as php, javascript to css, html and mysql in the basic cases, something more advanced will be to implement framework.

But the trend of mobile applications requires the learning of hybrid platforms, so it is necessary to be good at java or angular with ionic
Best regards.

Reply
    Geoffrey Barnes says April 10, 2018

    Hey Juan,

    It is true that when learning for web development, PHP in combination with JavaScript, HTML & CSS is a great combination. But I didn’t mention the JS, HTML & CSS because most, if not all, PHP courses also teach some HTML & CSS at the same.

    It is not possible to teach PHP without HTML. JavaScript is also very popular courtesy of dynamic frameworks and library like Angular, Reactjs, Meteorjs… but these are mostly useful for front end or hybrid mobile app development.

    Reply
Erika Taylor says May 14, 2018

Can someone tell me, why it’s still recommendable to learn C++, although C# has been introduced like… 20 years ago?

Are there still so many apps running with C++?

Will C# ever supersede C++ or will new programmers have to learn both languages forever?

Reply
    Geoffrey Barnes says May 15, 2018

    Your are right Erika,

    Programmers will just have to be learning both languages forever because they are best suited for different purposes. C++ is great for writing applications for Linux because of Qt framework… thought sometimes I find Python easier to use for Linux. Embedded devices also use a lot of C & C++.

    C# is mostly a Microsoft dance. It’s great for Windows applications and cross platform game development but I see a lot of game devs prefer using C++. Plus, you can’t(practicality) build web apps in C++ but you can in C# using .NET framework.

    But anyway, why would you want to choose between either. Does it have to be this or the other? You can just learn both of them in a few months and be happy for the rest of your life.

    Reply
      Erika Taylor says May 21, 2018

      Finally, someone who could tell me what’s the difference between C# and C++! Thank you very much, Geoffrey! 🙂

      Reply
Add Your Reply