Qualities of a great programmer, part 1

This is part 1 of my post on qualities of a great programmer.

I have worked with couple of organizations and with my personal experiences in programming, I believe that there are qualities that one can posses to be a great programmer. Sharing the following with you will make a great one if you are presently not! These qualities include the following but not limited to them:

1. Understanding the basics

These days, you see many folks jumping straight into programming and software development without some basic fundamental knowledge of computer science subjects like: algorithms and data structures, maths, statistics, language techniques & programming fundamentals, etc.

They don’t care, because they think these subjects are useless. But the fact is, they are essentially important to be a great programmer.

2. Experimentation

For you to be a great programmer, you must learn to explore beyond what you already know. Stop doing the same thing over and over again. Ask questions from your team members, friends, or mentor on different possible ways to approaching problems. Don’t always do one way. Experiment new techniques and practice till you master them. I personally outline multiple solutions to every programming problem and eventually end up picking the best.

3. Think like a user

A great programmer always think like a user. Remember that you are hired to write code that solves a particular problem or improve an existing system for users. So, don’t just jump right into coding and making the UI techy. You must understand the real business purpose of the software you are developing, get the big picture and details of the project first. Ask business questions and not technical questions.

The key here is that, you must have a business mindset to write a great software.
Think like a user, simplify your technical questions so there will be a mutual understanding between both parties, and please don’t assume for users.

4. Collaboration

Always ensure you are not the only one behind a software project. Work with a team of at least, two. and you must get along with your team members.

Don’t hold your knowledge; share it with your team. The most important part is that, you all must have exactly the same understanding on your software project. This will allow any of your team members to defend and present it with absolute boldness when it’s needed.

Beyond that, it ensures the project is-always-alive! Because it won’t die as anyone (in your team) can continue in the absence of others.

5. Zero ego

You have heard it several times: “no man in an island”. If you always think you know it all and as such, looking down on your team, you are really killing your innovative power and ideas in you. Innovation comes from team! Your different ideas spring up your innovations spontaneously!

If you can kill the ego in you, you will achieve more results. At the end, you will deliver a good business software.

6. No excuses

Remember that no man is perfect. Thus, no software ever written by man is absolutely perfect.

Your software will always have bugs or need improvements. When you receive bug issues, do not throw blames at others or make excuses. Instead, think of solutions and pick the best of it. And remember not to introduce new bugs after fixing one!

7. Stay current

No doubt that the world of technology, programming and tools is ever evolving! You and your team must be updated with the trend.

While upgrading your skills and code, take note of “break changes” as well. This will help you determine if you are only making few changes or you need to rewrite the software complete.

 

Thanks for taking your time to read this. I will love to hear from you while I prepare part two.

12 thoughts on “Qualities of a great programmer, part 1

  1. A quick read and nicely written, wish I could share this via google plus, thought I may also add that great programmers should always be happy (this means you are doing what you love) but not satisfied (this means you think you can optimise better e.g coding techniques, career advancement, learning new tools e.t.c)

  2. nice post. i m especially working on point number 5. looking forward to being part of a team. i ‘ve got great contributions to give.
    great post though.

Leave a Reply

Your email address will not be published. Required fields are marked *