Some people who are at the beginning of a career as a software developer ask me which language should they choose for a start. I usually respond that it doesn’t really matter. Why? Because the most important things in programming are common for every language.
You probably heard that programming requires you to learn new skills every day. Technologies are changing really fast. Programmers have to know plenty of different languages, hundreds of frameworks, and thousands of libraries.
I’ve been writing code in Java for 5 years. And I’m going to explain why choosing it as your first language is still worth. Despite that, Java was born years ago (1995) and there are lots of other languages. Perhaps more cool and fancier. Let me explain why I do think that investing your time in Java is still worth your effort.
1. Friendly syntax
Java is very verbose. This is very often considered as a disadvantage. But well…not for beginners. In Java a lot of things you have to write explicitly. It can be tiresome for experienced developers but at the same time, it can be helpful for people who start.
Java is stubborn. The language itself doesn’t let you do stupid things. It has garbage collector so you don’t have to bother with memory management. It has a lot of high-level building block already built-in. That means you can create something useful from the very beginning. You don’t need to use any external libraries to build valuable things.
Java has static types. It simply allows you to keep your code in order. And whats even more important, it allows you to clean and refactor your code without a huge effort after months of learning. You can use automatic refactoring tools build in your IDE which works based on static types.
2. Huge community
There is a lot of programmers who know Java. Even if they work with another language on daily basis. They still can read and understand Java code. So it means that they can help you with getting started.
If you are Java newbie you can count on massive Java community in such a place like StackOverflow, GitHub, Reddit, DZone and etc. There is plenty of bloggers which are eager to share knowledge. I’m even 100% sure that you personally know someone who codes in Java. Having mentor at the beginning is a game changer and something that would rush your progress.
Well, that’s true that technologies are growing like crazy. But I would say that the foundation of computer science is quite stable. To understand core concepts you will have to study classical books which very often requires you to know Java.
Authors use examples written in Java or they use so-called pseudo code which syntax is frequently inspired by Java. If you want to dive deeper into computer science then Java or even C++ knowledge will be something that will help you a lot.
Java Virtual Machine is something that does not let Java’s world stop to grow. Thanks to that you know Java and its ecosystem you can switch to other languages like Scala, Kotlin, Groovy which are executed by JVM as well. You can easily use new modern features of these languages and mix them with Java tools which have been developed for many years.
5. A lot of legacy code
Well… legacy does not mean only badly written and difficult to maintain code. It also means software which works! The code that you can use to learn how to build things. You can expect that in Java world you will find very experienced people which are familiar with good practices and can teach you how to write code which works in production.
In Java, you can find a lot of mature tools and libraries which have been tested for years and you can trust that they work. Especially when you are building software which is going to last ages.
And last but not least. A lot of code has been written in Java already. It indicates that there is a big market which is hiring programmers of every level of experience.
Hopefully, you will find this post useful. If you want to try programming don’t waste your time reading too many articles “how to start” or “which language should I learn”. Pick whatever and start building things. Programming languages are quite similar and easy to switch. Start with simple language with a solid community like Java and you will take advantage of this in the future.
Tap the 👏 button if you found this article useful!
The author of this article is Piotr. He is a software engineer — well-versed in all phases of the software development lifecycle. He strongly believes in being agile and engineering culture. You can find him on LinkedIn and GitHub.