When you are starting out as a software developer, the first and most challenging question to answer is always which programming language you should learn first.
It is important to ensure that you learn the right skills that will make you useful and marketable once the difficult part of learning is out of the way.
However, most wannabe software developers spend too much time deciding on which programming language to learn to the point that much time is wasted that could have been spent actually building something useful.
The key point that helped me narrow down on the programming language to learn was to decide on the particular field I was interested in.
Once you decide on which field you are interested in or which software particularly you want to build, it will be easier to decide on the programming language to learn.
The language most appropriate for the task at hand.
Below I will take you through the fields that I find most common among programmers and that you are probably most interested in.
Web development is the most common and easiest entry point into software development for aspiring computer programmers.
Almost all major software including mobile apps, desktop application and web application have a web based back end, including your anti-virus software.
You probably have read many posts 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.
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.
It’s deep enough to form the foundation of the largest and most popular Content Management System that powers 20% of the web, WordPress.
As a PHP developer you have a large pool of development projects to choose from because many companies have their websites running on WordPress, a PHP based Content Management System.
Ruby is general purpose programming language.
What makes Ruby particularly popular is the Ruby on Rails framework that is touted to be a very efficient web development framework.
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 skills to work.
Getting Ruby on Rails developer jobs however require a higher level of experience than you’d expect from a PHP developer.
You will need to put in more effort to build more projects in order to gain more experience before you can expect to get a job as a Ruby on Rails developer.
Python is a general purpose programming language that can be used for anything you can imagine including machine learning.
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 built.
It has a steep learning curve though but once you have mastered the basics it’s quite easy to build applications with it.
The .NET framework enables building web applications for the Microsoft Internet Server.
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 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.
It is quite an old and stable framework that makes development easier than if you were to build your web application from scratch.
Java, despite being a general purpose and cross platform programming language is also a great option for building stable robust and scalable web applications.
It serves as a default programming language for building API back end for most mission critical applications like banking applications.
However, for most common applications and startups Java is an overkill and unnecessarily costly option for building a web app.
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 frameworks to choose from when it comes to web application development using Java.
The one I found most friend to web artisans is the Play framework.
If you are getting into mobile application development, then you have a different set of tools to choose from.
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 apps.
Once you are very well conversant with building applications in one programming language, it will be much easier to pick another programming language and learn it much faster than if it was your first.
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
If you would like to get started building applications for iOS phones or tablets then by all means learn the Swift programming language.
In order to build Android applications you need 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 Java programming language, it will help for you to have a deeper understanding of Java.
It is still possible to pick Android tutorials and learn 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.
Game development is another very interesting and lucrative skill you can choose to learn in 2017.
With the invention of machines with more processing power, greater memory and unmatched video rendering capabilities, it is possible to create high graphic intensive video games that run both on the native device and via the web.
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.
This is your best bet if you are interested in building gaming applications.
C++ is a powerful and robust language that is close 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 code you can write.
However, if you are not into learning C++ for game development, then checkout the next programming language to learn.
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 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.
Choosing a programming language to learn can be a lengthy and tedious process that eats into the development time.
Or you can simply just pick one and get started – it won’t kill you.
It is always good to take your time and ensure you choose the programming language that is directly aligned with
However, if you realize you are never going to decide on a favorite programming language in good time, your best bet is to
It will be your eye opener into the world of software development, you can the switch languages anytime later if you realize there is a better alternative.
What is your preferred language for learning web development?
Please share your thoughts in the comments below.
Found this article useful? Please share.
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.
Top 7 Trending Web Development Technologies to Learn in 2018
Interview with Rob Percival – How To Land Your First Junior Developer Job
7 Tips for Landing Your First Client as a Freelance Developer
Is PHP Programming Obsolete?
How to Learn to Code In Any Programming Language
11 Best Selling Computer Programming Courses on Udemy