10 Steps to Become an Outstanding Java Developer
If you are a Java developer and passionate about technology, you can follow these ten steps which could make you an outstanding Java developer.
Join the DZone community and get the full member experience.Join For Free
1. Have a strong foundation and understanding of OO principles
For a Java developer, having a strong understanding of object-oriented programming is a must. Without having a strong foundation on OOPS, one can't realize the beauty of an object-oriented programming language like Java. If you don't have a good idea of what OOPS is, even though you are using the OOP language, you may be still coding in a procedural way. Just studying OO principle definitions won't help much. We should know how to apply those principles in designing a solution in an OO way. So, one should have a strong knowledge of object modeling, inheritance, polymorphism, design patterns, etc.
2. Master the core APIs
It doesn't matter how strong you are in terms of theoretical knowledge if you don't know the language constructs and core APIs. In the case of Java, one should have very strong hands-on experience with core APIs like
java.lang.*, I/O, exceptions, collections, generics, threads, JDBC, etc. When it comes to building web applications, no matter which framework you are using, it's also crucial that you understand concepts around servlets and JSPs — this is a must.
3. Keep coding
Things look simpler when talking about them theoretically. We can give a solution to a problem very easily in theory. But we can realize the depth of the problem when we start implementing our approach. You will come to know the language limitations, or design best practices while coding. So keep coding.
4. Subscribe to forums
We are not alone. There are lots of people working on the same technologies that we are working on. While doing a simple proof of concept on a framework may not give you real challenges, when you start using it on real projects, you will face weird issues and won't find any solution in their official documentation. When starting to work on new technology, the best and first thing to do is subscribe to relevant technology forums. Whatever the issue you are facing, someone else in the world might have already faced it and found the solution. And it would be really really great if you could answer the questions asked through other forum users.
5. Follow blogs and respond
As I already told, you are not alone. There are thousands of enthusiastic technology freaks around the world blogging their insights on technology. You can also gain valuable perspectives on the same technology from other blogs and developers. Some may find specific framework features to be exceptionally useful, while other's might find those features stupid and pointless, giving his own reasons of why he felt like that. So you can see both the good and the bad from other developers using those tools.
Another way to gain value from looking at other blogs is to respond/comment on posts with your opinions and questions.
6. Read open-source frameworks' source code
A good developer will learn how to use a framework. But if you want to be an outstanding developer, you should study the source code of various successful, popular frameworks where you can see the internal working mechanism of the framework as well as best practices. It will help a lot in using when using frameworks in a more effective way.
7. Know the emerging technology trends
In terms of open-source software development trends, they are growing tremendously. By the time you get a good idea on how to use a specific framework, it risks becoming obsolete as some new framework comes into the picture with super-set of features. Then, the problem you are trying to solve with your current framework may be already solved more easily by the new framework with a single line of configuration. So, keep an eye on what's coming in the picture, and what's going out.
8. Keep commonly used code snippets/utilities handy
Over time, you may need to write/copy-paste the same piece of code/configuration again and again. Keeping those kind of configuration snippets like log4.properties, JDBC configuration, etc. and utilities like
DBUtils will be more helpful. I know it, itself, won't make you an outstanding developer. But just imagine some co-developer asks you to help in fetching the list of values of a property from a collection of objects, and then you just used your
ReflectionUtil and gave the solution in a few minutes: That will make you outstanding.
9. Know different development methodologies
Be familiar with various kinds of methodologies like Agile, SCRUM, XP, Waterfall, etc. Nowadays, choosing the development methodology depends on the client. Some clients prefer Agile and some clients are happy with the Waterfall model. S,o having an idea on various methodologies would be a real plus.
10. Document/blog your thoughts on technology
In a day-to-day job, you may learn new and better ways of doing things, as well as best practices, architectural ideas, etc. Keep documenting those thoughts, blog about them, and/or share them across the community. Imagine you solved a weird problem that occurred while doing a simple POC and you blogged about it. Maybe developers elsewhere in the world are facing the same issue on a production-deployed application. Think of how valuable that solution is to that developer. So, blog your thoughts, they might be helpful for others or to yourself one day!
Originally published August 2015
Published at DZone with permission of Siva Prasad Reddy Katamreddy, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.