A Study List for Java Developers

Those tools may get you out of a serious trouble down the road.

Another good reading is Chapter 17 Threads and Locks from the Java Language Specification.

It helped me strengthen my understanding of concurrency in Java once.

Grasp GradleGradle is becoming THE build tool of choice for Java projects.

Your team may not be using it now, but I can almost guarantee you that it will become your best friend in your career as a Java developer.

Gradle has been rapidly growing for years.

So has been the size of the docs.

I think it is so large now that the docs page looks intimidating to users, myself included.

In contrast, the old versions have a single page of table of content for Gradle User Guide (eg, v2.

5 docs) and the learning experience was amazing to me.

So, my recommendation is, when you start to navigate through the docs of the latest version, have an old doc open on the side of the screen and follow the order there when reading the new docs.

After you spend a few days on the user guide, you often need to consult the Gradle DSL references.

I suggest you read through the Project and Task pages to see what’s available because they are the two most often used types in a Gradle build script.

Lastly, I recommend you take the Plugin Development Tutorials.

You may never need to write one for your work, but chances are you have to read the source code of some in-house plugin in your company to troubleshoot some mysterious issues.

Having experience with Gradle plugin development will pay good dividend then.

Administrate JettyAside from work, the most significant value of Jetty to me is to serve my side projects.

I have made plenty of side projects, most of which are web apps.

Being able to administrate Jetty gives me great convenience for that.

The official Jetty doc is my learning material of choice.

Play HadoopWe are in a Big Data era now.

That means Hadoop is almost inevitable to Java developers.

It has become increasingly unusual now to write vanilla map-reduce (MR) job in Java.

However, knowing how to write a MR job in Java is still of good value because you may have to do it once in a while.

More importantly, you may stumble across some issues that require deep understanding of how Hadoop works in order to troubleshoot them.

For that, I recommend the book, Hadoop: The Definitive Guide (2015), by Tom White.

Additionally, I suggest you make friends with the official Apache Hadoop docs.

Know Java EEI spent a lot time going through the official Java EE tutorial in the early days of my career.

Now when I look back, only a small set of technologies stay quite relevant today based on my limited experience.

However, going through the tutorial gives me an invaluable overview of the use cases, common considerations, and the state of the art of Java enterprise applications.

Even though I later found out some Java EE reference implementations were not the most widely used ones (eg, Spring is way more popular than Weld for dependency injection), I learned the fundamental concepts from the tutorial.

If you are still interested, I recommend these parts and chapters.

Part III Chapter 6 Getting Started with Web Applications, especially the first two introductory sections.

Part III Chapter 17 Java Servlet Technology.

People hardly code against the low-level servlet APIs nowadays.

Instead, they use frameworks built on top of the servlet APIs.

However, a good understanding of servlet APIs is still good to have.

Part IV Bean Validation.

You may never use the JAVA EE bean validation technology directly, but the underneath problems it solves are universal.

Part V Contexts and Dependency Injection for Java EE.

Again, you may never use CDI directly, but it will help you learn the basic concepts for a dependency injection framework.

Part VI Web Services.

This part is especially relevant for server-side Java developers like myself.

Part VIII Persistence.

Very relevant.

Part X Security.

I actually haven’t gone through this part yet, but it looks like an interesting advanced topic.

Use SpringLike it or not, if you do server-side Java development for the long run, the Spring framework is almost inevitable.

Because I learned CDI first, I wasn’t fond of Spring initially for some secondary differences (eg, I preferred CDI interception APIs to Spring AOP APIs).

However, because it was so popular and I had to use it for work, I gradually went through most parts, if not all, of the Spring framework documentation.

However, since I became good at it, I find it quite friendly to use.

Therefore, I recommend it to you, too.

Aside from the official documentation, there are abundant tutorials for Spring over the Internet.

Ask Google.

Comprehend ZookeeperZookeeper is not an obvious skill to learn to most Java developers.

However, it will become extremely important if you need to develop a distributed system, because Zookeeper solves the critical coordination problem for you.

I can’t express how important Zookeeper is for building a distributed system in words, but you will appreciate it when you learn it.

From my own learning experience, I find these resources quite useful:Chapter 21 Zookeeper, in Hadoop: The Definitive Guide (2015), by Tom WhiteThe official Apache Zookeeper documentationFinal NotesBy now you can probably tell a couple of things.

First, the list is heavily biased towards server-side Java developers.

This is because I am one of them.

Second, it is not necessarily a list for being a good Java developer.

I totally agree with you.

To be a good Java developer requires more than what’s listed.

Noticeably you need to have a strong troubleshooting ability, which takes time to grow.

What I recommend is you start by asking good questions on Stack Overflow.

I signed up even before I became a Java developer.

It turns out it was a greatly rewarding decision.

I solved quite a few intricate problems simply by making a good ask there.

And I am sure it will help you, too, when you cannot google yourself out of an issue when you learn the things listed above.

Thank you for reading!.. More details

Leave a Reply