Tips to Become a Better Java Developer!

Greetings!

I read recently an excellent article, published by Javin Paul, about tips on how to become a better Java developer! and today I decided to share those tips with you, with a little extra, my personal tips on how to stay on top as a Java developer.

It’s no magic! being a better Java developer requires a lot of time and effort, plus the secret factor (hint: it’s not chimical X):

You should be in love with Java <3

I rarely meet people that are great developers and yet, they don’t code ALL THE TIME!! I know what you might be asking yourself and Duh! we do have lives too, but coding and discovering new things take the biggest part of our time.

Technology is evolving fast! While I still consider Java 8 a new thing, Java 11 is coming soon already! we jumped from making long xml and configuration classes to simply run a Spring Boot Application and not to mention all the shiny talk about JavaScript Frameworks and Libraries.

So, how can I master all this? my answer may be a shocker to you but you can’t!! well, at least not as fast as this things evolve. But it’s not about mastering everything, it’s more about discovering them and finding out what you can use to develop high quality applications and how to solve different issues you may face along the road. At least this is my personal opinion of the matter.

Back to our subject, these are 10 tips from Javin Paul on how to be a better Java developer :

1 - Learn Java 8

This is the most important thing for a Java developer right now. It’s a good 4 years old and even Java 9 was released a few months back and people are now talking about the new Java 10. Regardless, I know many programmers who have not written a single line of code using Java 8 features like lambdas and the Stream API.

Unfortunately, most of them are experienced Java developers with good 7 to 10 years of experience under their belt. I understand that at some point in your career, learning becomes slow, but if you don’t act now you will be left behind.

Almost all Java development jobs now require Java 8 skills, and if you don’t have them, it will be very difficult to do well.

2 - Learn Spring Framework (Spring Boot)

It’s almost imperative nowadays for a Java developer to learn about Spring, as most companies prefer to do development using Spring frameworks like Spring MVC, Spring Boot, and Spring Cloud for developing a web application, REST APIs, and microservices.

It also promotes best practices like dependency injection and makes your application more testable, which is a key requirement for modern-day software.

A very good course about Spring(IOC, MVC, AOP, Security, REST) is Spring & Hibernate for Biginners.

3 - Learn Unit Testing

If there is one common thing that separates a good Java developer from an average Java developer, it is unit testing skills.

A good and professional Java developer almost always writes unit tests for their code, and if they are really a rockstar developer, you can see that from their code and tests.

Testing has also come a long way, with several tools for unit testing, integration testing, and automation testing available to Java developers.

You can spend a good amount of 2018 honing your testing skills in Java, but for those who are new to the Java world and unit testing, JUnit is the best library to start with. The most recent version (JUnit 5) is both powerful and flexible and every Java developer should know that.

4 - Learn APIs and Libraries

If you have worked with great Java developers, you might have noticed their overall knowledge of the Java ecosystem, and APIs form a major part of it.

Java is the world’s most popular and mature programing language, and there are tons of libraries and APIs available for doing almost everything.

Of course, you are not expected to know all of them but you should be familiar with some key APIs, e.g. JSON processing APIs like Jackson and Gson, XML processing APIs like JAXB and Xerces, and unit testing libraries like Mockito and JUnit.

If you don’t know them, you can learn or at least get an overview of them in 2018. To start with, you can check out this list of 20 Java libraries every Java developer should know, which covers libraries from key areas like parsing, bytecode manipulation, concurrency, collections, etc.

5 - Learn the JVM’s Internals

If you are serious about becoming a rockstar Java developer, then you must spend time learning JVM internals, e.g. what are the different parts of the JVM, how they work, JIT, JVM options, Garbage collection, and collectors, etc.

If you know the JVM well, you can write robust and high-performance Java applications, and that’s what rockstar Java developers do.

As part of this, you should also learn how to profile your Java application and how to find performance bottlenecks.

For a structured learning, I recommend The Definitive Guide to Java Performance by Scott Oaks. For those who prefer online courses over books, Understanding the Java Virtual Machine on Pluralsight is also a great collection to master JVM internals.

6 - Learn Design Patterns

If you are writing a Java application from scratch, then most of the time, you are writing object-oriented code and design patterns are tried and tested solutions of common problems.

By knowing and incorporating them into your code, you make your application more flexible and easier to change in the future.

It also improves overall code quality and documentation because other Java developers are also familiar with design patterns. Thus, they will understand your solution rather quickly.

But don’t just focus on the code part, understand the spirit and be creative. Use Java 8 features like lambdas and Streams to rewrite patterns.

If you are looking for some resources to learn design patterns then this list of design pattern courses is a good place to start with. And, for those who like books, some recommended books on design patterns can be found here.

7 - Learn DevOps Tools

For a modern Java developer, knowledge of DevOps is essential. You should be at least familiar with continuous integration and continuous deployment and how Jenkins helps to achieve that.

It becomes even more important for senior Java developers, who are often responsible for setting coding best practices and creating environments, build scripts, and guidelines.

I also suggest you spend time and learn more about DevOps in general and tools like Docker, Chef, Kubernetes, etc. along with Maven and Jenkins.

If you need some resources then Master Jenkins CI For DevOps and Developers on Udemy is probably the best course to start with. You will not only learn about CI and CD but also about Maven and Jenkins in depth.

8 - Learn Kotlin

Being a good Java developer does not mean you shouldn’t learn other languages, quite the opposite! learning other languages, specially other JVM languages like Scala, Groovy or our star Kotlin!, could help you improve your skills and career quite a lot!

If you’re looking for a language to start with, I suggest Kotlin. It’s a great language from JetBrains, the company behind IntelliJ IDEA, and also the official language for Android development as announced by Google in 2017.

It will not only improve your productivity but also help you to get into Android development. If you are looking to learn Kotlin in 2018 and looking for some good resource then here is a list of Kotlin courses to start with.

9 - Learn Microservices

Architecture is changing constantly, and many companies are moving from monolithic applications to microservices.

It’s high time for Java developers to learn about microservices architecture and how to create microservices in Java to take advantage of this recent wave.

Fortunately, Spring Framework provides Spring Cloud and Spring Boot, which greatly simplify microservice development in Java.

If you are looking for courses, then Master Microservices with Spring Boot and Spring Cloud is a good one to start with.

And, if you prefer books, then I suggest you check out Cloud Native Java by Josh Long, which provides a comprehensive guide for developing Java applications for the cloud.

10 - Learn Your IDE Better

One of the most important traits of better Java developers is that they are very good with their tools. They not only know more tools than an average developer, but they also know their tools well.

Since IDEs like Eclipse, NetBeans, and IntelliJ IDEA are the most important tools for a Java programmer, it makes sense to spend some time to learn more about them.

You can learn about some plugins that make your tasks easier or some keyboard shortcuts, which helps you to navigate better.

Even some small tips go a long way because you can use them a lot more than you think. If you are serious about taking your IDE skills to next level and use Eclipse, then I suggest you check out Eclipse Debugging Techniques And Tricks on Udemy, a perfect course to improve your knowledge of Eclipse.

You can find the original post Here : 10 Tips to Become a Better Java Developer.

Of course it’s quite difficult to follow all these tips, and no one is asking you to do that — it’s simply not practical. You can focus on more important tasks first, e.g. learning Java 8 and learning Spring Framework if you don’t know them yet, but if you are good at those, then you can pick other topics, e.g. unit testing, JVM internals, and DevOps.

My personal tips

Work & Learn! : If you work in a company that uses the newest and best technologies, Lucky you! I bet many other developers around the world (me included) are jealous of you! but what everyone should know by now, graduating and getting a job isn’t the end of the road, it’s actually the beginning. I think that the best way to become a better programmer is to write code and read everything about Java that comes your way! The moment you stop doing either, you will slow down the progression of your skills.

Have a side project : Probably you’ve heard this before but let me say it again, always have a side project! something you are completely responsible for. Use any technology you want. If you don’t like it, start again from scratch. Keep trying to make your app fast, easy to use, and bug free.

Have a learning time table : When I stumble upon an article or tutorial about an interesting technology, I usually save it to check it later, but I never do! so, I decided to make a time table with an objective to read/learn 3 articles/courses every day, and each day I note how much time I’ve spent and my progression ratio in each subject. This really helped me check a few subjects out of my waiting list.

Twitter over Facebook! : I have nothing against Facebook except that it takes most of my free time! On the other hand, following the right people in twitter can be an important source of knowledge, besides you can filter what you want to see on your news feed easily to avoid distraction.

Exploring Github : Do you want to write elegant code like pros? then check how they do it in Github! There are thousands of Open Source Libraries that you can check and find out how experienced Java developers actually write their code.

Contribute to Open Source Projects : I’ll be honest, I hesitated to give you this advise since I didn’t take it myself, but contributing to Open Source Projects will greatly help you improve your skills, not only because you will understand and use new technologies, but also because of the support you will get from the Open Source Community to help you improve fast. The first step is the most difficult one to take, it requires a little courage but once I take it I will surely share with you my experience about it. Promise!

This is it, I hope you learned something today and don’t forget to share the tips that you think have made you a better Java developer. If you have any suggestions or feedback, then you are most welcome to share — we all learn from each other.

Thank you, regards.

Written on May 29, 2018