20 Things Every Experienced Java Developer Must Know

Things Every Experienced Java Developer Must Know
Do you want to know what every Java developer should know? We have shortlisted some of the highly recommended concepts and components of Java language for beginners and senior programmers. These things to learn in Java may help you get the best Java developer job you deserve.

Java technology has evolved and has become really huge in the last decade. There are just too many things and its almost impossible for one person to master all of them. Your knowledge about Java technology will depend completely on what you working on.

In any technology say Java or some other language, it is more important and valuable to know the language fundamentals thoroughly (OOP concepts, interfaces, class, objects, threading, etc.) rather than specific frameworks or syntax. It's always easy to quickly learn new technologies when you master the fundamentals.

Are you are a beginner? Looking for some help and guidance on how to get started on this language, our exclusive article on How to Learn Java and Java libraries to know is a must read for you before getting started on Java.

I just updated this article in November 2016 and things are more relevant to recent Java trends.


Java developers knowledge expectation changes based on the profile. In this post I have divided it into 3 profiles:
  1. College Graduate,
  2. Experienced Java Developer,
  3. Experienced Java Web Developer.

7 Things a College graduate must know to get a Java developer job


If you are a college graduate with no job experience then as a Java developer you need to understand the following basic things.

  1. How Java Virtual Machine works? e.g. (Platform Independence, Garbage Collection, class files, etc)
  2. What are the Object-Oriented Programming Concepts Implemented in Java?
  3. Multi-threading
  4. Java Collection framework
  5. Good understanding of data types and few of "java.lang" classes like String, Math, System, etc. java.io stream concepts.
  6. Understand the concept of Swing/AWT event-based programming. Do not spend a lot of time on this but understand the best practices. 
  7. Servlets and JSP concepts. 

9 Things an experienced Java Developer must know to thrive


If you are an experienced professional then as a Java developer you may also need to understand the following basic things in addition to the ones listed above.

  1. Understand design patterns and its usage in Java
  2. Improvements in language from major version changes (Lambda, NIO, Generics, Annotations, Enums, ...).
  3. Coding Conventions.
  4. Build tool (Ant) or Project Management Tool (Maven).
  5. Version control System like GIT/SVN/Perforce/Clearcase.
  6. Apache Commons Libraries & few other common open source libraries.
  7. Continuous Integration Tools e.g. Jenkins and Hudson.
  8. Unit testing - e.g. JUnit and TestNG
    • Unit testing Mocking libraries like Mockito
  9. Fundamental understanding of JSON and XML
  10. Understand Business layer frameworks - like Spring
  11. Understanding dependency injection (e.g. Spring, Google Guice, and Plain Java Dependency injection)

4 Things a Java Web Developer (JEE) Developer must know


If you are an experienced professional working on Web-based development then as a JEE developer you also need to understand the following basic things in addition to the ones (7+9) listed above.

  1. Understanding of MVC Frameworks - Open source web frameworks like - Spring MVC, Struts, Vaadin, etc.
  2. Understanding of Microservice based framework like Spring Boot.
  3. Important Note: A lot of Front End UI development is now shifted to JavaScript frameworks. Therefore do not focus on Java-based frameworks that focus on the user interface (e.g. JSF or related frameworks). Instead, learn JavaScript related frameworks like Angular.js or Backbone.js
  4. Fundamental understanding of Web Services and REST based service development.
  5. Good understanding of Web/Application server like Tomcat, Glassfish, WebLogic, WebSphere, Jetty, etc.
  6. Unix environment - A working knowledge of Unix environment can be beneficial as most of the Java servers are hosted on Unix based environment in production.

Looking at the list of things it really feels difficult for a person to know each and everything in depth. As I already said it is more important and valuable to know the language fundamentals thoroughly and rest can be learned quickly when required.

Can you think of something which is not part of this post? Please don't forget to share it with me in the comments section & I will try to include it in the list.

Article Updates

  • Article updated in April 2019 - Updated Introduction section, fixed minor text, and updated answers.
  • Updated on November 2016 - Made changes as per latest technology trends and stacks.

...

Follow Us

Get Updates By Email

item