I am Siva, a passionate java developer, open source enthusiast, blogger. I like to cover Java, Struts, Spring, Hibernate, Ajax Tutorials, How-To's and Best Practices. Sivaprasadreddy is a DZone MVB and is not an employee of DZone and has posted 39 posts at DZone. You can read more from them at their website. View Full User Profile

10 Steps to Become an Outstanding Java Developer

01.26.2011
| 75964 views |
  • submit to reddit

If you are a Java developer and passionate about technology, you can follow these ten points which could make 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, even though you are using OOP language you may be still coding in procedural way. Just studying OO principle 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 with 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. 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 you won't find any solution in their official documentation. When starting to  work on a new technology the best and first thing to do is subscribe to the relevant technology forums. Whatever the issue you are facing, someone else in the 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 commonly used 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 won't make you 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 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 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.

 

From : http://sivalabs.blogspot.com/2011/01/10-things-to-become-outstanding-java.html

 

Published at DZone with permission of Sivaprasadreddy Katamreddy, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Sivaprasadreddy... replied on Wed, 2011/01/26 - 10:26am

 

In addition to the above 10 steps, the bonus 11th step is "Think out of the box, try to co-relate the real world situations to technology". Then working on technology will become more fun and challenging.

 

For example, imagine you are the GOD and you have to implement the human behaviour using Java. Every human being will behave differently for different situations. But GOD can't implement the behaviour of all the mankind using a seperate method.

Suppose take the case of how a human being aswer a phone call.

The core implementation is just to pick the call and say hello. But if the caller is your girl friend you say Hi sweet heart, if the caller is customer care executive  you might say Hello, I am busy call me later :-)

 

So GOD might have implemented the answerCall() method as :


public void answerCall(Call call)

{

System.out.println(call.getSalutation());//call.getSalutation() might be like"Hello Mr XYZ"

}

Then GOD might have used SpringAOP to change this behaviour based on caller type.

 @Before

public class PhoneCallSalutationAdvice()

{

Call call = ....;

if(call.isGirlFriend())

{

call.setSalutation("Hi Sweet heart...");

} else if if(call.isCustomerSupportGuys())

{

call.setSalutation("Hi , I am busy right now...call me later.");

return;

}else{

call.setSalutation("Hello "+call.getCallerName());

}

}

 

:-)

Andy Leung replied on Wed, 2011/01/26 - 11:40am

C'mon! This one isn't even on the list? It should be first one on the list:

0. Beer, lots of them! Don't code without beer because your code smells if you don't pour alcohol in it. Besides, Beer can unwrap full potentials of your brain, so take a few cans before you even start.

Sivaprasadreddy... replied on Wed, 2011/01/26 - 12:14pm in response to: Andy Leung

Ooooops....I missed it... Anyway i will include it in my full list at 0th position :-)

Evgenij Kozhevnikov replied on Thu, 2011/01/27 - 2:00am

Fourth and fivth items of the list are united with one idea - read/write in internet socials more.

For 11 item best practice is composition - strategy pattern, isn't it?

Sam Sk replied on Thu, 2011/01/27 - 2:24am

I'm on a good track then. Thanks

Nicolae Botez replied on Thu, 2011/01/27 - 2:38am

What about Java Professional Certification Exam (SCJP/OCPJP, SCJD/OCMJD, SCWCD/OCPJWCD, SCBCD/OCPJBCD, SCDJWS/OCPJWSD)? Is it true that preparing and passing these exams is a goog way to became an Outstanding Java Developer ?

Sivaprasadreddy... replied on Thu, 2011/01/27 - 3:51am in response to: Nicolae Botez

In my opinion, these certifications may make you good at understanding the language constructs and core APIs.

Suppose if you consider SCJP there won't be a question  on the best way of modeling a problem, if you consider SCWCD most of the questions will be on testing your understanding on Servlet and JSP APIs.

Having an idea on core APIs is expected  skills, to be an outstanding developer you should have something more than a normal developer.

 

Sivaprasadreddy... replied on Thu, 2011/01/27 - 3:56am in response to: Evgenij Kozhevnikov

 

For 11 item best practice is composition - strategy pattern, isn't it? 

 Ofcourse, you can use strategy pattern.

But here what I am trying to say is "Try to co-relate the real world things to java, you may get crazy but very innovative solutions"

 

 

 

Theodore Casser replied on Thu, 2011/01/27 - 5:26pm in response to: Nicolae Botez

I have to concur that I think that the act of preparing ofr the exams is a decent way to become a -good- developer.  (I should note also that I have more than a few of those.)  However, the key thing to becoming an outstanding developer is doing something with that knowledge.  Getting certified is just a step along the road.

Jakob Jenkov replied on Fri, 2011/01/28 - 7:04am

I also wrote about this topic recently. I summed it up in 4 points:

 

  1. Learn it
  2. Do it
  3. Discuss it
  4. Teach it

 

The article can be found here, in case anyone is interested:

http://tutorials.jenkov.com/software-as-career/how-to-become-an-expert-developer.html

Sivaprasadreddy... replied on Fri, 2011/01/28 - 11:42am in response to: Jakob Jenkov

Hi Jakob,

I read your article and its really good. And also there are several other pretty good posts on your blog and i like them very much. Keep blogging :-)

Jakob Jenkov replied on Fri, 2011/01/28 - 7:44pm in response to: Sivaprasadreddy Katamreddy

Thanks :-)  I write as much as I can get time for.

Thomas Kern replied on Thu, 2012/09/06 - 10:53am

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.

Thanks

http://www.java-tips.org 

Hifzur Rahman replied on Tue, 2012/10/30 - 6:20am

hi i m new here..could you plz suggest me the rules

Vishnu Vardhan replied on Fri, 2014/04/25 - 12:31am

Can you please mail me posts like this

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.