I have a very general question to ask, not sure if I am in the right forum to ask this. Please suggest me a suitable forum in case my query is inappropriate here. My question is :
What are the skills required to become a better code designer? How do I start on it?
Hi preethidv, welcome to our community. :)
Actually you can discuss about this in Suggestion & Feedback, or in Forum Lobby. And even here I don't see any mismatches with yours. We'll see, in case of any I can move your thread into different place later. So, please don't re-post it again.
Regarding your question, I'm not sure in what contest you are talking about this. Anyway, in my experience if you want to be a well formed designer, several key ares are to develop.
1. Collect all the required details.
If you don't have the complete information about what you are going to do, always lead to useless way. In most of the case what I'm doing is take a piece of paper and write down all the information I want to collect, just spend couple of hours. It have a real value.
2. Make a strong design.
If you know the programming fundamentals and all the other advanced topics you've to touch, coding is not a big job. But even you know all those things into extreme level, if you don't have a strong design, you've kill at one time.
3. Use better naming conventions.
Your code is understandable to all, it's a MUST I think. If your naming conversion on variables, method names, class names, etc... is not strong, in later even you cannot get a clear idea what's exactly going on.
4. Add comments.
Comments support to understand your code easily, basically what your methods going to do and so on. And at the same time, keep in mind, don't out comments in each methods and so on. You must decide where should I put comments, in serious processing and so on it's much better.
5. Format/organize the code.
User line breaks, line intends, space, etc... in proper way. Otherwise your code looks like a chaos. If your code have thousands of lines, huh, you dead.
6. Start from the simple step to final.
Actually this tip going to top on this list. Always try to start from the simple step you've. Divide your problem into simple steps when you designing the code. If you can learn few learning algorithms, like divide-and-conquer, it's easy to you.
7. Test time to time.
Always test your code after completing the application upto a certain level. It's really helpful you to find bug in your code as well as do some improvements.
8. Repair your code for changes.
Time to time you've to change your code, because of the client requirements are change. Actually I said that try to collect all the requirements before start to any other work. But it's not always possible, specially in industry level products. Those are change rapidly, working with human is really hard(than your PC and the Java IDE ; ) ).
I hope it's helpful to you. Good luck. :)