I have been in the Software Industry for more than 15 years now. From my experience in development,  I can tell you to become an efficient or good programmer, you do not need to be a super genius. An average mind can also master in programming and eventually successful in career.
Most of us are working in the IT industry and struggling to prove ourselves superior to others at professional level. Sometimes we wonder how our friend with an educational background and the same experience is more successful than us. Why he is getting good ratings consistently? What are all the things he is doing that I am missing on?
Just follow a few important steps given in this article and I promise, you will find yourself much improved as a programmer.
1. Understand Requirements Thoroughly:Â
Itâs often the case that you (a developer) donât gather requirements. Itâs either project manager, lead or say module owner. Requirements are gathered and handed over to the concerned programmer/developer. In this case,
- You should first understand the requirements. If you need more time to understand the requirements, ask for the same.
- Get all the questions, doubts cleared from your manager or business analyst before you further plan for development.
2. Plan the Development:
After you have the right and clear understanding of the requirements, plan out the appropriate solution. This plan might be anything like-
- What changes do I need to do (requirements)?
- What files, programs will be affected?
- What will be the impact of this on the entire system?
- What programs, pages or forms I need to design?
- What will be the validation criteria?
- If sorting needed, which algorithm to use?
- Where to apply to sort in database queries or after you gather required data?
- Do I need pagination?
There could be many more planning points but we should not put all our time in planning :).
3. Actual Development :
 We already know the required programming languages, thatxs why we are here as a programmer. So try to follow the below tips :
- Â While developing or implementing the solution, try to use Functions, Services that are already developed and can be used in your implementation. As the function you are using, is already proven, you donât have to put your time in testing that.
- If you could not find or use any ready functions and you are determined to develop it on your own, make sure you develop it in such a way that, in the future, you or anyone can easily use it. This is called CODE REUSE
4. Problem Solving :
 Itxs but obvious, while coding we will be stuck somewhere or face somewhere code is not working. In this case, you just need to find out what you need and how you are going to get it.
All the programming languages are the same. People face the same problems every day and all of them have somewhat the same solutions.
xThere is no point in re-inventing the wheel!x
The problems any programmerxs faces are already faced by someone in the world (unless you have created a mess that no one has got into yet). He has already spent hours to find itxs solution. Now as I said earlier, there is no point in wasting a few more hours on the problem thatâs solution is already available somewhere out there.
You just need to pull it out and I would prefer the google way for this.
Now If you want to be a good programmer, just donât copy the solution, invest some time in understanding the solution and reasons behind the problem. It will be a quick understanding as the solution is with you.
You can also ask for help from the team.
Bonus Tips :
- If you are not planning well for your development, then there are pretty good chances that you might miss something and eventually land up doing re-work. Re-work is the one thing an engineer should avoid doing.
- While you are planning for development, share the requirements with the Quality Assurance engineer. Ask him/her to think of some test cases. Go through them. This will help you plan and implement the solution accordingly, thus assuring timely delivery of product/requirements.
- When you are done with the development, donât forget to do the DEV TESTING. Dev testing is like unit testing. You may not find any issues as you already know the system and I bet you wonxt provide any inputs that will break your system. But be honest and fix the issues in an early stage.
Keep on doing this regularly and one day it will be like you will not need any online library to read for your problem. You on your own will be able to develop the solution using your past experiences.
This is my way to work. Share your tips/secrets of programming that make you special as a developer.
All the Best and Happy Programming!