How to Become a Good Java Developer

In this post, I would like to share 10 tips to become a good Java developer. You can go through these 10 tips to become a good Java developer.


Watch the video version of this blog post:

1. Good understanding of OOPS Concepts, OOPS Principles and Design Patterns

OOPS Concepts:

For a Java developer, having a strong understanding of object-oriented programming is a must. Without having a strong foundation on OOPS, one can't realize the beauty of an object-oriented programming language like Java. If you don't have a good idea of what OOPS is, even though you are using the OOP language, you may be still coding in a procedural way. 

Just studying OOPS concept definitions won't help much. We should know how to apply those OOPS concepts in designing a solution in an OO way. 

OOPS Principles:

It's important to learn the basics of Object-oriented programming like Abstraction, Encapsulation, Polymorphism, and Inheritance. But, at the same time, it's equally important to know object-oriented design principles, to create a clean and modular design. These guidelines help design strong object-oriented software design.

Here are the important Object-Oriented Design Principles:
  • Encapsulate What Varies
  • Code to an Interface Rather Than to an Implementation
  • Delegation Principle
  • Dry- Don't Repeat Yourself
  • Single Responsibility Principle (SRP) // SOLID Principle
  • The Open-Closed Principle (OCP) // SOLID Principle
  • Liskov's Substitution Principle (LSP) // SOLID Principle
  • Interface Segregation Principle (ISP) // SOLID Principle
  • Dependency Principle // SOLID Principle

Design Patterns:

Design Patterns are very popular among software developers. A design pattern is a well-described solution to a common software problem. 

I have written articles on java design patterns:

2. Learn Spring Framework (Spring Boot) and Hibernate

Spring framework is the most popular and widely used Java framework for developing enterprise applications so having Spring framework skills really useful for Java developers to get a Job. 

Spring Boot is basically an extension of the Spring framework which eliminated the boilerplate configurations required for setting up a Spring application.

Spring Boot has taken the Spring framework to the next level. It has drastically reduced the configuration and setup time required for spring projects.

You can set up a Spring-based projects with almost zero configuration and start building the things that actually matter to your application.

If you are new to Spring boot and want to get started with it quickly, then check out my spring boot tutorial at

3. Master the Core Java APIs

We always use common core Java APIs in our day to day Java/Java EE project development and mastering in commonly used core APIs will boost your productivity and save your time.

It doesn’t matter how strong you are in terms of theoretical knowledge if you don’t know the language constructs and core APIs. In the case of Java, one should have very strong hands-on experience on core APIs like java.lang.*, I/O, Exceptions, Collections, Generics, Threads, JDBC will become an outstanding Java developer.

For example, If you want to do some operation on String then you should have to use Sting class APIs right and you should know which String class APIs need to be used for which String operations.

4. Learn Microservices

Nowadays MicroServices is the hot buzzword in software development and many organizations prefer building their enterprise applications using MicroServices architecture. In the Java community, SpringBoot is the most widely used framework for building both monoliths and 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.

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

5. Read Open Source Frameworks and Libraries Source Code

Whenever you will get free time then read the source code of various successful, popular Java/Java EE frameworks, popular library projects.

For example, you can check out popular open-source Java frameworks and library projects on GitHub such as Spring Framework, Hibernate and apache langs, commons-io, commons-collections etc.

A good developer will learn how to use a framework. But if you want to be an outstanding Java developer then you should study the source code of various successful, popular frameworks where you can see the internal working mechanism of the framework and lot of best practices. It will help a lot in using the frameworks in a very effective way.

One more advantage of reading open-source projects source code is that these popular open-source projects follow coding best practices so can implement the same coding best practices in your day-to-day project work.

6. Learn Java Release Features

Familiar with new features introduced in Java 8:
Learn every new Java release features and keep yourself up-to-date.

7. Keep commonly used code snippets/utilities handy

Over time you may need to write/copy-paste the same piece of code/configuration again and again. Keeping those kinds of configuration snippets like, JDBC configuration, utilities like StringUtils, FileUtils, DateUtils, ReflectionUtils, DBUtils will be more helpful. 

Here are a few benefits of keeping repeatedly use code snippets/utilities:
- Save your time
- Share with team members which again saves their time.
- Write blog post and share across the globe
- Host source code on GitHub 

I often keep commonly used code snippets/utilities handy so I have written the below articles on the same:

8. Write blog posts/articles/tutorials on different technologies

In day-to-day project work, you may use new technologies, libraries, best coding practices, design patterns, architectural design patterns etc so keep documenting those thoughts or blog it and share it across the community. 

Imagine you solved a weird problem that occurred while doing a simple POC and you blogged about it. Maybe some developer elsewhere in the world is facing the same issue on a production deployed application. Think about how important that solution for that developer. So blog your thoughts, they might be helpful for others or to yourself.

Blogging or Sharing your thoughts via blog lead to lots of benefits:
- Help others to learn
- You can revise it later in future
- Improves written English
- You can earn money from it if your blog website has good traffic
- Get job opportunities

9. Know different Software development methodologies

Be familiar with various kinds of methodologies like Agile, SCRUM, XP, Waterfall etc. Nowadays choosing the development methodology is depending on the client. Some clients are preferring Agile and some clients are happy with the waterfall model. So having an idea on various methodologies would be great.

Nowadays, I can see that most companies are using Agile development methodologies so learn Agile methodologies and skills to improve productivity in it.

10. Follow great developers, communities, and forums

- You can follow great developers on Twitter.  I am following a lot of awesome developers on Twitter so check out my following list on Twitter at
- You can subscribe to forums for issues and solutions.
- You can follow great Java communities on social platforms

11. Tools

Have a hands-on experience on the below commonly used tools for Java project development:
1. Build tools - Maven and Gradle
2. Version Control Tools - Git, SVN, CVS etc.
3. IDE - Eclipse and IntelliJ