Affiliate Disclosure: By buying the products we recommend, you help keep the lights on at MakeUseOf. Read more.
Whether you’re completely new to programming or looking to jump into a new kind of programming you’ve never touched, one of the most important questions to ask is: “Which programming language is right for me?”
These days, you have so many languages to choose from, it can be quite overwhelming to pick one when you don’t have much experience. In this article, we’ll cover the best modern programming languages for web, mobile, desktop, game, embedded, and utility development. Treat this as an overview and a jumping-off point.
For Web Development
Web development is unique in the programming realm, which presents its own unique challenges — but also some unique benefits. Web development is arguably the easiest kind of programming to pick up when you have no experience, and the web development community is huge, so we consider it a good choice for beginners.
- HTML and CSS: Though these aren’t true programming languages, both HTML and CSS are necessary to create web pages. HTML provides the structure of the page while CSS determines the styling and aesthetics of the page. To get started, check out these step-by-step HTML and CSS tutorials.
- PHP: You don’t hear much about PHP anymore because it isn’t as hip as some of the newer web languages, but it’s still used all over the place (including in WordPress, which powers approximately 27 percent of all websites). PHP can be messy, but it works. See our crash course on building sites with PHP.
To learn more about why and how web development differs from other kinds of coding, see our article on web development vs. programming.
For Mobile Development
Mobile development has been the next big programming frontier for quite some time, and there are no signs of it slowing down anytime soon. People love their phones, and people need apps for their phones. It’s a cramped and competitive space, but breakout apps still show up every single day.
- Java: Java is the native language for Android app development, which is great because Java is also used in a hundred other ways. While you can technically make Android apps using non-Java languages, Java is your best bet for maximum performance and flexibility. Get started with these Android app tutorials.
- Swift: iOS apps used to be coded in Objective C, but these days you’ll have a much better time using Apple’s new language Swift. It’s easy to learn and easy to use, making it great for newbies and veterans alike. Get started with these Swift tutorials and test what you learn with these Swift coding challenges.
For Desktop Development
Desktop apps aren’t so hot these days since the world moved on to web apps and mobile apps, but that doesn’t mean they’re obsolete. Many people, like myself, prefer offline desktop apps whenever possible. And the good news? Whereas desktop apps were once complicated to make, it’s become much easier lately.
- Java: Long ago, Java apps were made using Swing. Don’t do that. Prefer to use JavaFX instead, which provides a richer, sleeker, and more modern way to design and build apps thanks to the Scene Builder. And since Java runs on the Java Virtual Machine, you can write one app that runs on many platforms.
- C#: Using Visual Studio, you can create desktop apps with C# in conjunction with GUI libraries like Win32, Windows Forms, WPF (Windows Presentation Foundation), and the .NET Framework. Using Xamarin Studio, you can also create Mac/Linux apps with the Mono Framework.
For Game Development
Game development has never been easier. With the abundance of free (and open source) game engines out there, you can pretty much pick any mainstream language and be able to create games with it. But some languages are obviously superior, and those are the ones we recommend if you’re new.
- C#: Unity is the most newbie-friendly game engine out there and its primary language is C#. The engine supports both 2D and 3D game development, and it can export builds to dozens of platforms including Windows, Mac, Linux, Android, iOS, and HTML5. Start with our beginner’s guide to Unity.
- Java: Java programmers can use the open source LibGDX framework to quickly create games from scratch. The framework can export to any desktop platform that supports Java, plus Android and iOS. It’s a simple and straightforward framework that’s conducive to rapid development. Highly recommended.
- Haxe: Haxe is a newer, modern language that can transpile to many other languages, including Java, C++, C#, and Python. Using a game engine like HaxeFlixel or Luxe, you can develop cross-platform 2D games much faster than in other languages. Unfortunately, no 3D Haxe engine exists as of this writing.
For Data, Scripts, and Utilities
A lot of times, programming isn’t even done to create software per se. Maybe you just need to crunch some data and model trends, or maybe you just need a utility script that automates otherwise tedious tasks. In those cases, there are two superbly useful languages that’ll come to the rescue.
- R: R is a programming language designed primarily for data mining, data computing, and data analysis. If you’ve ever used MATLAB, then you can think of R as a free and open source alternative. While MATLAB is easier to use and has a better environment, it’s expensive ($2,150 for a standard license). If you don’t mind R’s learning curve, it’s a strong alternative.
- Python: Python is regularly used in data science because it’s an intuitive and non-verbose language, making it easy to learn and enjoyable to use. You can do all kinds of things with Python, including shell scripts, but you should definitely be aware of two libraries: NumPy (data computing) and Pandas (data analysis). Get started with these basic Python examples.
Which Languages Do You Like?
First decide what kind of programming you want to do, then find out which languages are best suited that area. Once you have an overview, just pick whichever language you feel most comfortable with. You’ll be more productive and actually enjoy programming this way. Don’t go with the “best” language if you hate it!
What kind of programming are you interested in? Which languages do you like best? Did we miss any important ones? Let us know in the comments!
Image Credit: Makaule/Depositphotos