9 Things Java Programmers Should Learn in 2019
Being a Java developer and the author of a Java blog, I
frequently receive requests from Java programmers from all over the world
asking how they can improve themselves.
In the past, I have shared my 10 tips to become a better
programmer, and every tip in that article still holds true, but given that it’s
a new year, I have decided to jot down new tips for Java programmers to improve
themselves, enhance their knowledge of Java programming, and increase their
value for future career growth.
So without wasting any more time, let’s see my nine ideas
for Java programmers in 2019. You can take inspiration from these ideas to
create your own goals.
By the way, folks, In this post, you will not only find what
to learn but also where to learn as many of my readers often comes back to me
that how they can improve certain skills, where to start, etc.
1. Learn Java Performance Tuning
In the last a couple of years, I have taken more than 50
interviews for senior Java developers, and one skill that I clearly see lacking
is knowledge and understanding about JVM internals, GC behavior, and Java
performance tuning.
Learn JVM Internals
As your Java experience grows and you become a senior Java
developer with more than 5–6 years of experience, it’s expected from you to
know both the big picture and the small details about Java’s fundamentals.
If you can’t profile an application or cannot figure out why
it’s slow or how to make it fast, then you should read a good book on JVM
internals and performance tuning, e.g Scott Oaks’ best seller Java Performance
the Definitive Guide.
I have been reading it for years and still refer to it
whenever I get time. My goal is to read it again this year.
If you prefer online courses over books, then I suggest you
take a look at Understanding the Java Virtual Machine series of courses on
Pluarlsight, which explains memory management, class loading, Security, and
Reflection.
2. Code Everyday for 2 hours
Another thing I noticed last year is that as your experience
grows, you spend your time on coordination, replying to emails, being a
catalyst, troubleshooting, mentoring, and generally being a project manager
kind of person.
Code, Code, and Code
What you left behind is coding, which is the single most
important skill for a programmer.
If you feel that you are not doing enough coding, then make
a resolution to code every dayAt least, write something, be it on your project,
an open source framework, a library, or a utility.
Since starting is the most difficult thing, I suggest that
any time you feel resistance, start reading and refactoring code for fun. You
will enjoy that and, in the process, you will also write code.
You can also solve problems given in Cracking the Coding
Interview, 189 Programming Questions. This will not only make sure you’re ready
for an interview, but also improve your knowledge of data structures,
algorithms, and programming logic.
I suggest you profile your Java application, at least once a
month and spend a good amount of time understanding and analyzing the results.
You can also take a heap dump of your Java process, or, if
you had a recent crash, then take that heap dump and find out which object is
taking most of your memory. Is there a memory leak in your Java application?
What is the cause? What will happen if other 100K new
clients access your application? If you can answer all these questions
comfortably, then you are in good shape. If you need some guidance on solving
memory and CPU issues, I suggest you take a look at Understanding and Solving
Java Memory Problems by Richard Warburton.
Understanding and Solving Java Memory Problems
4. Participate in Coding Challenges
This goal is, again, somewhat related to our second
resolution — write code every day for 2 hours. Let’s face it, sometimes, you
don’t have enough chances in your live project to code.
If you are starving for challenging code, then there is
nothing better than participating in programming and coding challenge.
There are many websites on the internet that host
programming challenges and give you the opportunity to test your skills, but
TopCoder is simply the best.
If you are looking for some tough programming challenges,
then you can also check out my list of good websites to practice coding.
5. Learn Network Programming in Java
One more thing I have learned from interviewing people is
that Java developers need to improve their socket programming and networking
fundamentals.
I have asked many questions from my list of Java networking
programming questions, but most developers fail to answer most of them.
Some of them even struggle to outline the key differences
between TCP and UDP, which I thought was too basic to ask any Java developer of
2–5 years of experience.
If you feel that you have not gotten enough opportunity to
learn socket programming in Java or that you don’t need to because you are Java
web developer working with JSP, Servlet, and JSF, then I suggest you read at
least one good book on Java networking, NIO, and socket programming.
One book I highly recommend is TCP/IP Sockets in Java,
Second Edition, Practical Guide for Programmers. It’s easy to read,
interesting, and a good way to learn the fundamentals of socket programming.
6. Java 12
Last a few years have seen a couple of big releases, and one
of them was JDK 12. I have yet to start with JDK 11, forget about 12, but this
is the first thing I am going to look into in 2019.
If you want to learn new features of Java 9 like Jigsaw,
Reactive Streams, API enhancements, etc., then the Java 9 MasterClass is a good
course to start with.
Similarly for Java 10 features like var for local variables
you can check a good course on Java 10 like The Complete Java MasterClass which
is also most up-to-date and recently updated for Java 11 as well.
Complete Java Masterclass (Updated for Java 10)
7. Spring 5.0
Another big release for the Java world in 2017 was Spring
Framework 5.0. With lots of exciting features, e.g. reactive programming model
and adoption of Java 8 and 9, Spring 5.0 adoption is going to speed up in 2019,
and that’s why every Java developer should learn it. If you need some help,
Spring 5.0: Beginner to Guru is a good course to start with.
8. Spring Security 5.0
Another interesting release of 2017, which I am going to
learn in 2019, is Spring Security 5.0. Spring Security 5.0 was a major release,
and they rewrote a couple of modules and fixed several hundred bugs.
The most interesting part is the OAuth 2.0 module.
Unfortunately, there are not many resources to learn Spring Security 5.0 at the
moment, but thankfully, Eugen has updated his Learn Spring Security to cover
version 5.0 and also added a new module on OAuth 2.0.
Learn Spring Security: The Master Class
9. Unit Testing
If you want to become a better developer in 2019, then you
should work on your unit testing skills. And not just unit testing, but
automated testing in general. This also includes integration testing.
You can learn JUnit 5 and other advance unit testing libraries
like Mockito, PowerMock, Cucumber, and Robot Framework to take your unit
testing skill to the next level.
Mockito is really powerful and allows you to write a unit
test for complex classes by mocking dependencies and just focusing on the
objects under test.
If you are a beginner in unit testing and want to learn it
in 2019, then the JUnit and Mockito Crash Course from Udemy is a good starting
point.
Summary
That’s my advice! If you are a Java programmer with a couple
of years of experience, you can also take inspiration from this list to set
your goal. Some other things you can add to this list are learning Android,
Docker, and Spark, as those are essential for any Java programmers.
I have purposefully kept this simple and achievable because
I personally believe that small successes lead to big successes.
Setting small goals and achieving them is better than
setting big, impractical goals and failing before kick-off.
So what are you waiting for? Write down your goals for this
year and share them with us. At the end of the year, you can come back here and
tell us about how much you achieved.
Other Programming Articles you may like
Closing Notes
Thanks for reading this article so far. You might be
thinking that there is so many stuff to learn, so many courses to join, but you
don’t need to worry.
There is a good chance that you may already know most of the
stuff, and there are also a lot of useful free resources which you can use, I
have also linked them here and there along with best resources, which are
certainly not free, but worth of money.
At the end of the day, you should have enough knowledge and
experience about the things mentioned here.
If you like this article then please consider following me
on medium (javinpaul) and subscribing to our publication.
If you’d like to be notified for every new post and don’t
forget to follow javarevisited on
Twitter![Source]-https://medium.com/javarevisited/9-things-java-programmers-should-learn-in-2018-3f0b2207dfc4
We provide best java classes in thane We have industry experienced trainers and provide
hands on practice. Basic to advanced modules are covered in training sessions.
For more details, visit : http://www.asterixsolution.com/java-training.html
Comments
Post a Comment