I'm a java web developer for nearly 3 years. Always trying to learn more and be better but still I feel that the amount of knowledge is not that good as I want. The knowledge in some places still seems to be non-systematic and don't provide a very strong base to solve the problems as good as I want to do it. The example I have is my senior developer, whose solutions are always more efficient and beautiful.

So, the question is rather simple and hard the same time. What is the right way to get my knowlege be more systematic and therefore improve it's quality. I understand that there is no practically good answer for the all java programming, so let's focus on the modern java web or nearly web technologies:

JSF 2.0

JPA2 and Hibernate as persistence provider

Web services

and Java SE as a core.

What methodologies or books or learning technics lead to the strong knowledge base within the given knowledge area?

4 Answers
4

To improve yourself as a developer you can look at your general computer science and programming skills. There is no single resource or approach to improvement. Depending on your skills in each area you may need a lot of different resources.

This programmer competency matrix classifies programming skills in levels. You can use this as a guide to reading (on-line and books) as well as practice (exercise projects or help with open source projects). Most of the skills mentioned are not technology specific instead they look at broader areas such as algorithm knowledge and problem solving techniques. A deeper understanding of these areas can help you produce efficient and beautiful solutions.

Are you expecting to get to a point where you are satisfied with your level of knowledge? What then? Do you plan to stop learning?

There isn't a single person on this forum that doesn't feel that they can't continue to improve their skills somehow. We are in a field that encourages and thrives on lifetime learning.

The fact that you are worried about improving your skill level says a lot about your character and level of motivation. Keep challenging yourself, keep reading technical articles and blogs, experiment with new technologies, and explore technologies outside of your comfort zone.

The way to get better at Java (OR INSERT_LANGUAGE_HERE) is to also explore the basics of other languages. You will begin to see the correlations and differences between the different abstractions. It will be an exciting moment for you the day you are studying Python or PHP or (INSERT_LANGUAGE_HERE), when suddenly, something trips in your mind that lets you see a Java concept in a whole new light with an entirely new level of clarity.

The best way to learn is through experience. You can read a lot but it doesn't normally stick unless you put it to good use.

I would suggest keep working on web project and pay close attention to feedback from your senior developer. If your job is not giving you enough projects in the area that you desire try a smaller one in your free time.