Here is a blog to jot down new resolutions for Java programmers to improve themselves, enhance their knowledge of Java programming, and increase their value for future career growth.
As a programmer, our biggest challenge is to keep ourselves up-to-date. Technology changes very fast and you will see a new version of programming language and framework coming to every couple of year. This year has plentiful of changes with JDK 10, Spring 5, Spring Security 5 and Spring Boot 2, it’s probably the busiest year in terms of changes for Java developers.
So without wasting any more time, let’s see ideas for Java programmers. You can take inspiration from these ideas to create your own goals and resolutions.
1. Learn Java Performance Tuning
This is the Favourite Question of most of the technical Java Interviewers. But mostly Applicants lack in knowledge and understanding about JVM internals, GC behavior, and Java performance tuning.
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.
If you prefer online courses over books, then you take a look at Learn Java Programming – Live free, Learn to code series of courses on Unanth, which explains Threading, class loading, Security, Recursion, and Reflection.
2. Coding Everyday for 2 hours
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.
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 day. At least, write something, be it on your project, an open source framework, a library, or a utility.
Since starting is the most difficult thing, Sometime you may 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, 150 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.
3. Profile Your Java application Once a Month
Just reading the book will not be enough. You have to apply that knowledge in your live project.
You should profile your Java application, at least once a month and spend a good amount of time understanding and analyze 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 another 100K new clients access your application? If you can answer all these questions comfortably, then you are in good shape.
4. Participate in Coding Challenges
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.
Since now most of the companies are migrating their projects from SVN, CVS to Git, its high time to learn and master Git. One who wants to learn Git can purchase the Git and GitHub Masterclass: A Complete Guide from Unanth. If you are in the same boat and want to learn Git in 2018, do check out that course from Unanth, it’s very handy.
6. Unit Testing
There are a lot of new framework and tools available for Java programmers to unit test and integration test their application e.g. Mockito and PowerMock for mocking objects, Robot Framework, and Cucumber for automated integration test and of course the new and shining JUnit 5 library.
There are plenty of stuff to learn on this front. If you can invest some time upgrading your unit testing skill, not only your coding skill will improve but also you will become a more professional developer, which every company looks form. If you a beginner in unit testing and want to learn it in 2018, then Learn by Example: Junit from Unanth is a good starting point.
7. Java 8 and 9
The JDK 9 brings a lot of goodies in terms of modules, Jigsaw, Reactive Streams, Process API, HTTP2 client, JShell, and API improvements like collection factory methods.
8. Spring Framework 5
The year of 2017 has seen many major upgrades to Spring and Java Ecosystem and Spring Framework 5.0 is one of them. Most of us have been heard about some new features like reactive programming model on Spring 5, adoption of Java 8 and 9, some unit testing improvement etc.
You can start learning Spring 5.0 online from any platform like Unanth, Udemy etc. and can keep the momentum going in 2018. If you use Spring, probably it’s the best time to learn Spring 5.0. If you like books, you can also check out the Learning Spring 5.0 book from Packt Publications, one of the first book on Spring 5.0
9. RESTful Web Service
One must improve knowledge about writing REST API and implementing secure and scalable RESTful Web Service in Java using Spring. This is one skill which is highly desirable in Java world and there are not many people who know both Java and REST well.
10. Spring Security 5.0
This is the third major upgrade on Spring Eco-System. The 5th version of popular security framework has several bug fixes and a major OAuth 2 module, which you just can’t miss.
11. Angular JS or React JS
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.
Setting small goals and achieving them is better than setting big, impractical goals and failing before kick-off.