Which Programming Language Should You Learn For Software Development?

Ads by Google

programming languagesWhen starting on the path of programming, it’s important you invest your time wisely in choosing to learn something that will both benefit you in the immediate future with visible results on your platform of choice, as well as getting you set up for any future languages. Your choice will depend upon a number of factors, so let’s take a look at their characteristics, ease of learning, and likelihood of earning you a living. I’ll also show you some code to display “hello world”, the first application many people write when learning a new language.

In this first part, we’ll be looking at languages used to program software – as in applications which run on the computer or mobile devices. Next time we’ll look at the increasingly significant area of web-programming languages, used to create dynamic websites and interactive browser-based user interfaces.

There are two previous articles in this series which discuss some fundamentals of any programming languages, so if you’re new to programming then be sure to read those too:

Java

Java is a full object-oriented language, strongly typed, with an extensive feature set focused on networking and cross-platform compatibility. Applications written in Java can run on virtually any OS – though the performance won’t be as good as something designed to run natively.

It is the language of choice for most Computer Science courses, and consequently almost everyone has at least a little Java programming experience. Android applications are written in Java too, though you can’t simply run a regular Java app on your Android mobile nor vice-versa.

Likelihood Of Making You Money

If you can make an app worth charging for on the Android marketplace, then the world is yours for the taking. There’s also a lot of enterprise-level Java jobs, but the competition is high and pay low.

programming languages

Ads by Google

[Note: Don’t confuse Java with Javascript, which is a completely different language used for web programming – we’ll look at this more next time].

C/C++

Though actually separate languages, they are often grouped together, as C++ is basically an enhanced version of C, adding object oriented features. C++ is the serious programmer’s language of choice, forming the basis of most computer games and most advanced Windows software. It’s high performance, but requires a lot more precision on the programmers part when it comes to memory management and consequently has a steep learning curve. Not recommended for absolute beginners.

Likelihood Of Making You Money

With less competition than Java, C++ programmers will always be in demand and paid well, especially in the games industry.

computer programming languages

C#

Pronounced C sharp, this is Microsoft’s clone of Java (though the two have since diverged with more pronounced differences) – a general purpose object-oriented strongly-typed language. Performance is good, though not as fast as C++. Software written in C# requires .Net framework to run and is Windows-only.

computer programming languages

Likelihood Of Making You Money

There’s a good number of corporate C# jobs out there for enterprise solutions, but you’re unlikely to make money on a single piece of software unlike mobile development. Still, it’s a fun language and easy to learn for beginners, certainly I’d recommend it if you’d like to focus on Windows only.

You can download Microsoft Visual Studio Express for free, which helps greatly with GUI designing and code completion. You can also use it for Visual Basic and many other Microsoft-branded programming languages.

Visual Basic

Another of Microsoft’s contributions, Visual Basic is an event-driven language focussed on simple GUI-based apps. Event-driven means that the code you write will generally be reacting to what the user does – what happens when they click that button, for example. It’s incredibly easy to learn and get a simple app up and running, but ultimately limited and perhaps not the best for actually learning fundamental programming concepts.

computer programming languages

Objective-C / Cocoa

This is the Apple Mac language upon which most OSX and iOS applications are built. Technically, Objective-C is an extended version of C with object-oriented features, much like C++, but is nearly always combined with the Cocoa framework for building graphical user interfaces and higher level features on the Mac platform. You must also be careful with memory management.

The syntax and concepts you need to learn are quite complex compared to a language like Java or C#, but on the other hand, Apple provides a comprehensive free development environment (XCode) and tools which make the process of creating real, useable apps fairly easy. There’s also a wealth of written and video tutorials out there to guide you, so it’s certainly more accessible than C++. It’s basically your only choice for OSX and iOS development, but you’ll be able to write for both the Apple desktop and mobile environment with the one language.

programming languages

Likelihood Of Making You Money

With a developer account ($99 yearly) and a killer app, you have the potential to make a lot – Apple has paid out $2 billion so far. App Store developers stand a better chance than Android developers for making money with paid apps, while Android developers tend to see more returns on in-app advertising.

That’s all the languages I’m going to cover today, and they form the majority of real-world software development on PCs, Macs and mobile environments. Before I get blasted in the comments, I’ve decided to include Python in the web-based list because that seems to be where it’s used most.

The truth is that once you have the basics down in any language, it’s relatively easy to learn another; just as knowing Chinese kanji makes reading and writing Japanese easier – programming languages often cross over and borrow from each other, sharing the same set of basic characteristics and syntaxes. Stay tuned for the next article in which I’ll look at web-based languages such as Javascript and PHP.

Hat-tip to Jeffery, an avid commenter here at MakeUseOf and often on-hand to help out in the tech Answers section, who suggested this article and some of the languages it should cover.

Ads by Google
Comments (60)
  • Brian

    Thanks for the good article James Bruce. I am still beginning to learn and I want to start with a simple project “A College Management System” – a system that should run on and be accessible by multiple users on a LAN. I honestly don’t know which language I should use for the development. Is there anyway you can advice me on this? also advice on which DBMS i should use, between Oracle and SQL.

    Just advice on the best language i can use for developing this irrespective of whether or not it is hard to learn. I willing to learn the hardest ones but also the best. You may also send the advise direct to my email as registered

    Thanks

    • James Bruce

      PHP/MySQL is the easiest and most widely supported combination to get started on. “Best” is subjective, and no doubt someone on here will argue their case for any language.

  • MS

    cool informative article. i like c++ too. although at the start it may be a bit harder to learn for those new, but it’ll become easier, much easier.

  • sean

    This is an excellent guide. I have been looking to learn some programming languages to take over for the programmer at my company. I know that everything we do is in C#. However, I have also been looking to get into software development, I think C++ might be a good choice for me.

  • David

    I think softwares like windows and even iTunes are created with C++|. James Bruce seems to believe its only good for gaming apps??

    • James Bruce

      “forming the basis of …. most advanced Windows software”.

      Yeh, I can see how you read “only for gaming apps” from that.

  • M.L

    As a beginner, Sir James which is the best programming language I should prefer and from where to collect information for it? As I want to make games and software and how to continue with after that?

Load 10 more
Affiliate Disclamer

This review may contain affiliate links, which pays us a small compensation if you do decide to make a purchase based on our recommendation. Our judgement is in no way biased, and our recommendations are always based on the merits of the items.

For more details, please read our disclosure.
Affiliate Disclamer

This review may contain affiliate links, which pays us a small compensation if you do decide to make a purchase based on our recommendation. Our judgement is in no way biased, and our recommendations are always based on the merits of the items.

For more details, please read our disclosure.