When I first started learning programming a few years back, this was a question I couldn't stop asking. What did I need to know? Which direction would be the best for my career? The answer was simple, it all depended on what you wanted to do. So then the decision was which path to take. I went with web development, and have since experimented with building software/applications. So we're going to look at some of the most popular programming languages, ones that I think are solid choices to learn in preparation for 2019, and where they shine the most.
This is my first true love as a developer. As I and many others have said before, PHP gets a lot of hate for honestly no good reason. Pre-PHP5, there was a lot of bad code out there. But we're on PHP7 now, and it's a very mature, capable language. Most websites are built with PHP, and many of those use open-source CMS platforms like WordPress or Drupal, which are all written in PHP. It's also going to run on 99.99999% of any server you can find with a hosting company and can be set up with little to no effort on a VPS. Run a couple of commands in the terminal, and you're done.PHP is really only meant for one thing, and that is server-side web applications. That's it. It's meant to interact with a database or other data structure and present it as markup on a browser. But as a (mostly) one trick pony, it does what it does extremely well and efficient. If you want to work as a freelancer, no better option in my humble opinion than PHP.
Backed by Microsoft, this is a titan of a language that can do it all. Though it's primarily meant to build desktop software for Windows, it was open-sourced (at least partially) a few years ago. If you're building for Windows, be it desktop or server applications, this is the way to go for sure.C# finds it's home in the .NET family, the core of which is also open source. Because of this, C# can be used to build web apps on Linux servers. Limitations are noticeable and setup can be time-consuming, but that doesn't mean it's not a serious contender. Another side effect of it being open sourced is something called Xamarin, which allows you to build iOS and Android applications with the same code, albeit compiled separately, and even using it with the Unity gaming engine to build stunning video games.
This would be most comparable to C# save for two main differences. With Java, it's entire ecosystem is 100% open sourced. So when you work with Java, you're not limited on functionality on other operating systems like you are with C#. The trade-off here would be the other difference that Java doesn't have a framework like Xamarin to build cross-platform mobile apps, though it is already used to build native Android applications. Also, not any truly great game creation frameworks to use with Java, at least not to the scale of Unity with C#.Wanna build web applications with Java? No problem. Same as above applies. Yeah, you'll have a little set up to get it running, same as most all other languages, but you get the whole ecosystem when you work with Java. It's hands-down my go-to choice any time I want to build something for the desktop, and will probably come in handy when I potentially switch back to Android soon.
Here we go again, Nik talking about Python for the hundredth time... Well maybe it's time you listen. Python is used everywhere. Robotics, Machine Learning, process automation, the list goes on and on. It reads a lot like English, so it's fairly easy to pick up. Python is also really strict on how it needs to type. This may be frustrating at first when you maybe need a little more flexibility to learn, but ultimately helps you learn best practices early on in your careers as a developer.Python isn't used a whole lot with desktop software but does have a huge fanbase in the web development world. Frameworks like Django or Flask allow users to rapidly build powerful web applications in much less time than if they were doing it from scratch.
As long as you learn one-or-more of these, you're set. There are a few others that do similar things, such as Ruby that could be swapped out with Python for the most part. It has its own set of frameworks and is plenty powerful, just unfortunately not as popular as it used to be. But as long as you take up one of these five languages, you're going to have an enjoyable, rewarding career as a software jockey.