File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes OO, Patterns, UML and Refactoring and the fly likes How to improve on software design skills Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Engineering » OO, Patterns, UML and Refactoring
Bookmark "How to improve on software design skills" Watch "How to improve on software design skills" New topic
Author

How to improve on software design skills

Praveen Sharma
Ranch Hand

Joined: Jul 31, 2008
Posts: 129
I am a Java/J2EE developer have 5+ years of experience. Throughout my career I have spent the majority of time doing programmings and I have very good programming and debugging skills. In the last 2 years I involved myself in software designing as well. I however face problems to come up with design of a system or logical solution to a complex problem statement.

I have to spend long hours thinking on the problem and then whatever design/logical solution I propose does not seem to feasible after I get it reviewed by my architect. I however do a good job when a design is presented to me and I have to just implement it.

This seems to have dent my confidence and I am now afraid to join design discussions within my team. Could someone please suggest some training/certifications/self study which I do so that I am able to think more logically and understand the pros and cons of a design I propose.

I hope I was able to explain my problem and thanks in advance for any suggestions.

P.S: I do understand design patterns liks Stratedy, template, factory and tiers, layers in a software system. The problem I face is how to associate my concepts to the given problem so that I can reach on a feasible solution.


SCJP 80% SCWCD 89%
Reddy Prashanth
Ranch Hand

Joined: Aug 09, 2005
Posts: 61
I do have same questions in my mind. Looking forward for any suggestions.
Jimmy Clark
Ranch Hand

Joined: Apr 16, 2008
Posts: 2187
One of the more important elements of being a software architect is the ability to teach junior programmers and developers. Communication and teachining skills are the critical elements. So, if one wants to learn software design, they should "humbly" ask their architect to teach them. This is how you can improve your software design skills...
Praveen Sharma
Ranch Hand

Joined: Jul 31, 2008
Posts: 129
Thanks Jimmy. I agree. Learning from knowledgeable people and gaining experience has no substitute. But the only drawback here is that you will have to live on the mercy of others by asking them to help you. I was looking for some self study / self learning kind of stuff to get me going.
K. Tsang
Bartender

Joined: Sep 13, 2007
Posts: 2419
    
    7

Well when it comes to software design, knowing what design patterns to use or appropriate in different scenarios is a good start. Understanding what technology to use given the scenario is another learning curve. Together with communication/discussions will build up your confidence as time goes by.


K. Tsang JavaRanch SCJP5 SCJD/OCM-JD OCPJP7 OCPWCD5
Jimmy Clark
Ranch Hand

Joined: Apr 16, 2008
Posts: 2187
But the only drawback here is that you will have to live on the mercy of others by asking them to help you. I was looking for some self study / self learning kind of stuff to get me going.


There are drawbacks in everything. You are trying to alter and improve the way you think. This is not something easily accomplished, and even more difficult when attempted in isolation.

In regards to material to study, here you are still depending upon someone, the author of the material. The only real differences here are that you are not communicating with the author, cannot ask questions, and are gambling with the accuracy level of the author's material.

Either way, it seems like you are off to a good start by identifying your deficiencies. Good luck son!
Praveen Sharma
Ranch Hand

Joined: Jul 31, 2008
Posts: 129
Thanks again Jimmy. I get your point.
Praveen Sharma
Ranch Hand

Joined: Jul 31, 2008
Posts: 129
Thanks K. Tsang. I have reading and practising design problems these days with the hope I will be able to solve some real world problems soon . What I am targeting now (as per Jimmy's suggestion) is to find out my areas were I can improve upon.
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: How to improve on software design skills