10 things to become an outstanding Java developer

Sharing is caring!

If you are a java developer and passionate about technology, you can follow the below things which makes you an outstanding Java developer.

1. Have strong foundation and understanding on OO Principles
For a java developer having strong understanding on 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 good idea on what OOPS is, eventhough you are using OOP language you may be still coding in procedural way.Just studying OO principles definitions won’t help much. we should know how to apply those OO principles in designing a solution in OO way. So one should have a strong knowledge on Object modeling, Inheritance, Polymorphism, Design Patterns.

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 case of Java, one should have very strong hands on experience on core APIs like java.lang.*, I/O, Exceptions, Collections, Generics, Threads, JDBC etc. When it comes to Web application development, no matter which framework you are using having strong knowledge on Servlets, JSPs 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. When doing a simple proof of concept on a framework may not give you real challenges. But when you start using it on real projects you will face weird issues and you won’t find any solution in their official documentation. When started working on a new technology the best and first thing to do is subscribing to that technology forums. Whatever the issue you are facing someone else in this world might have already faced it earlier and might have found the solution. And it would be really really great if you can answer the questions asked by 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 see different perspectives of same technology on blogs. Someone can find great features in a technology and someone else feels its a stupid framework giving his own reasons of why he felt like that. So you can see both good and bad of a technology on blogs. Follow the good blogs and respond/comment on posts with your opinion on that.

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 and lot of best practices. It will help a lot in using the frameworks in very effective way.

7. Know the technology trends
In the open source software development technology trends keep on changing. By the time you get good idea on a framework that might become obsolete and some brand new framework came into picture with super-set of features. The problem which you are trying to solve with your current framework may be already solved by the new framework with a single line of configuration. So keep an eye on whats coming in and whats going out.

8. Keep repeatedly using code snippets/utilities handy
Overtime you may need to write/copy-paste same piece of code/configuration again and again. Keeping those kind of configuration snippets like log4.properties, jdbc configuration etc and utilities like StringUtils, ReflectionUtils, DBUtils will be more helpful. I know it itself don’t make you outstanding developer. But just imagine some co-developer came and ask 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 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 is depending on the client. Some clients are preferring Agile and some clients are happy with waterfall model. So having an idea on various methodologies would be great.

10. Document/blog your thoughts on technology
In day to day job you may learn new things, new and better way of doing things, best practices, architectural ideas. Keep documenting those thoughts or blog it and share across the community. Imagine you solved a weird problem occurred while doing a simple POC and you blogged about it. May be some developer elsewhere in the world is facing the same issue on a production deployed application. Think how important that solution for that developer. So blog your thoughts, they might be helpful for others or to yourself.

Sharing is caring!


  1. Would you mind sharing the forums and blogs you read?

    And what kind of methods do you have in your StringUtils, ReflectionUtils and DBUtils.

    Always looking for better ways of doing the same thing.


  2. Hi Siva
    Thanks for this great post

    If you can help, please let me know how to begin on oss. i mean where to look for, which oss project to begin with…


  3. Hi Ravi,
    You can find so many open source projects on sourceforge.net, googlecode,http://java-source.net/.

    Get the source code and read it and you can definitely find some areas to improve or new features to add.

    Try to implement those features locally and test them and send an email to the authors about your improvements/bug fixes.

  4. Hi Siva,
    Thanks again.

    i have been to some of the oss sites for projects and it really scares me a lot, there are so many projects!!!
    as i dont have the expertise im not able to judge and pick one.
    i have basic knowledge of java, servlets, jsp, struts and bit of spring and hibernate.
    if you know any small project from where i can learn something more on the technologies i already know, pls share.


  5. Bhayyya Blog adirindi… i always wanted to learn technology from scratch.. i read few of your blogs very much impressed … i wish i could become like you one day ..:)

  6. What I have found in 10 yrs of running Java dev teams is that Java developers do not get taught OO priciples in school. What I see is 95+% of devs code Java like it was C. They can't model real world things or ideas in objects.

    Any idea why the universities and extenal courses are so bad in this regard?

  7. Hi Shiva,

    These 10 points are really very helpful and get a good turning pont to be a outstanding java programmer.

    Thanks so much..

  8. hi siva,
    this is satnam singh from Chandigarh (punjab). I m s/w developer as well trainer in java from the last five years. Knowledge always grows with sharing, so can we be a friend (for technical discussions on new technologies). Plz reply me on [email protected]

  9. hi siva i am system administrator ( WebSphere ) in IBM and know core java but now i am working in middleware but i want to become developer in java this is my passion so how can i develope my concept in coding please help .

  10. Hi,
    Recently I am getting many comments/emails asking for where to start to become a good java developer if they are coming from various other backgrounds. I think to post another article on this subject instead of keep on replying through emails. I will post an article very soon.

  11. I got a job by saying this answer in my last interview. thanks for awesome help.
    I got more idea about Java from Besant Technologies. If anyone wants to get Java Training in Chennai visit Besant Technologies.

  12. hello Mr.Udhayaa Kumar, i'm sharath B.tech IT 2014 passed out. i wanna to learn java, if i join into the besant technologies is it help full for my job? plz reply thanks

  13. Hi this is abinaya i am having 3 years of experience as a java developer and i am certified. i have knowledge on OOPS concepts in java but dont know indepth. After learning oracle will be enough to get a good career in IT with good package? and i crossed oracle training chennai website where someone please help me to identity the syllabus covers everything or not??

    Thanks, abinaya

  14. Thanx for the post . Sir I have just completed engineering and till now I only know core java . What next . I am very confused. Should I learn servelets jsp struts hibernate or should I go for spring . Is learning spring technology only will work and i don't have to learn other technology.please provide a brief overview of what java technologies are required for what purpose and what are the new technologies available now that one should directly learn instead of learning old technologies which are no longer used. Suppose if I want to make 1) standalone application 2) web application so what should I learn which I necessary to create such applications

  15. Hi Guys! !
    We have opening for Sr.Java Developers with strong skills on Core Java and extensive skills on Sockets and Threads.
    Experience : 5-9 years (Male candidates only)
    Work Location :Bangalore
    CTC : 40-50% hike or more depending on the skills.
    Interested candidates , please share your updated resume to [email protected].

    Best Regards,

    1. What a rude/irrevelant comment… this place is not for hiring… I request Mr Siva to delete/block this sort of a comment….. Dont allow these things to happen..

  16. Java technology has evolved and has become really huge in last decade. There are just too many things and its almost impossible for one person to master all of them. Your knowledge about Java technology will depend completely on what you working on.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.