I have been in Software Industry for more than 15 years now. From my all 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 IT industry and struggling to prove ourselves superior than others at professional level. Sometimes we wonder how our friend with educational background and 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 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 concerned programmer / developer. In this case,
- you should first understand the requirements. If you need more time to understand the requirements, ask for 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 right and clear understanding of the requirements, plan out the appropriate solution. This plan might be any thing like-
- What changes I need to do (requirements)
- What files, programs will be affected
- What will be impact of this on 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 sorting 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, that’s why we are here as a programmer. So try to follow 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 future you or any one can easily use it. This is called CODE REUSE
4. Problem Solving :
It’s but obvious, while coding we will 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 language are same. People face same problems everyday and all of them have somewhat same solutions.
“There is no point in re-inventing the wheel!”
The problems any programmer faces are already faced by some one in the world (unless you have created a mess that no one has got into yet). He has already spent hours to find it’s solution. Now as I said earlier, there is no point in wasting few more hours on the problem that’s solution is already available some where 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 quick understanding as solution is with you.
You can also ask for help in the team.
Bonus Tips :
- If you are not planning well for your development, then there are pretty good chances that you might miss some thing 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 wont provide any inputs that will break your system. But be honest and fix the issues in 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 !