Skip to Content

Qualities of a Good Programmer

          Now a day’s studying Engineering becomes a normal thing..Everyone wants to be an Engineer without knowing what is Engineering . Even I too started my career without knowing about Engineering.

And whenever someone asked ‘what do u want to become in future? ’, we all in our class used to say that we are going to become ‘ A software Engineer or a programmer ’  without knowing what is the role of a software engineer  or how a programmer should be. And this is how our education system teaches us.

As I wished I started my career as a programmer  and learnt many things about how to be a good  programmer through my experience. So I wish to share few things  about the qualities of a good programmer.

I would like to say some key qualities of a good programmer through my knowledge.

1) Passion:

                                I think this should be the most important key quality because   “Nothing great in the world has ever been accomplished without passion”. You cannot achieve anything without being passionate on it. I believe that good developers are always passionate about programming. Good developers would do some programming even if they weren’t being paid for it. Good programmers will have a tendency to talk your ear off about some technical detail of what they’re working on (but while clearly believing, sincerely, that what they’re talking about is really worth talking about).

2) Problem solving:

                          It’s really important that a programmer can solve problems on their own. He should  have a capacity to think logically and solve the problems in a right manner.  He should suppose to find solutions that fit the situation best. Solutions need to be cost effective, with good risk analysis and quality. And this quality comes when you are good at maths.

3) Looking for right things:

                          According to me the person who memorizes all the syntax and coding is not a complete programmer he should have a ability to think where to use the syntax. When you don’t know how to fix your code, chances are that you head to Google. A good programmer should be able to scan the web to learn what they need to do to make their code work.

4) Self teaching and love of learning:

                                Programming is a skillful art which is developed over a period of years by regular practice and good work experience. You should always opt for being an active learner 24 x 7 as technologies change at a real rapid rate and you need to keep up with it if you want to survive the competition. No one is going to remember what you did a few years ago or what programs you developed.

5) Work On Multiple Technologies :

                                Many programmers stick only to their desired platform for development and are not ready to transfer their skills to other programming technologies. This is not really an ideal situation. You need to gain exposure to multiple programming platforms out there. Real life applications are developed using a combination of languages and technologies .So you should be ready to work on multiple technologies so that you can gain more knowledge.


You must be Logged on to comment or reply to a post.
  • Hi, Thajunniza,

    great blog and I can only agree though I would put learning on number 2 ;-).

    And as a no. 6: don't stop looking at the non-SAP world as many techniques as

    - test driven development

    - the design patterns for object oriented software

    - principles like SOLID

    are coming from there.



  • Interesting points - thanks for sharing.

    As a broader view (rather than a particular point) and as someone who spent a while developing and supporting for a wide range of systems and platforms, I adopted an approach I called "the lazy programmer".

    Now this isn't what you might first expect. Being lazy in this instance is not about doing little work. Rather it is about being as smart as you can about doing the work - aiming to do the minimum amount of work to deliver the maximum benefit.

    This encompasses everything from writing reusable code, to gathering detailed requirements and of course testing everything from a user perspective, a developer's perspective and from a "no one would ever try that" approach.  By being thorough and looking to design well you reduce rework and support overheads.  So you can spend your time on new things. So my advice ... think lazy 😉

  • I enjoyed your blog and working in Talent Management, I recognise some of these points as key behaviours.

    Recruiting based on proven behaviours is often more important than an individual's certifications, qualifications or previous positions.  All of these play a part but ultimately someone exhibiting "good" behaviour (or behaviour you want) will "perform" well.


  • "You should always opt for being an active learner 24 x 7 as technologies change at a real rapid rate"

    Come on man. There is also a life away from computer screen.

    Work smart and also enjoy life.

  • Good blog. I only disagree with your 5th point. I think it;s only a "nice to have", not a "must". I'd rather be an excellent developer in one language than an average one in 10.

  • Agreeing with all your points, also the fifth. I was able to drag out particular techniques which originate from certain programming languages to increase my experience/problem solving abilities and use this to find work-arounds in other languages etc. The differences in languages aren't really a hinderance IMHO, thank god for autocompletion 😛

    "Learn programming, everything else is Syntax".

    Cheers, Lukas

    • I see your point and kind of agree. I studied java and that made me understand OO better, hence made me a better ABAP developer. Still, I am sure I could achieve the same by focusing only on ABAP OO. I know a bunch of developers who are great in ABAP OO and have never touched java or any other OO language, so, as I firstly said, for me it's a nice to have, not a must.

      • Some thoughts about learning:

        In their book "The pragmatic programmer" Andrew Hunt and David Thomas are writing you should learn one programming language every year. And they mean different languages, not the nth static typed oo-language but e.g. LISP or F# as functional languages, maybe PROLOG as a declarative language. The goal is not to earn your live with these languages but to learn to know new ways of thinking. Maybe you can transfer some aspects into your daily work with ABAP.

        Other thinks to learn are ways of working:

        - Test Driven Development TDD

        - Acceptance Test Driven Development ATDD

        So there's plenty to learn and the 24*7 is exaggerated, of course. What's meant is that the 40 work hours a week are not enough. Use the time you're commuting ( in case you  are ) for listening to a podcast or reading a blog. That too can be learning.



        • I respectfully disagree with the authors.  (by the way, I still haven't read this book. I've bought it, I friend of mine borrowed it from me before I started reading it and hasn't returned it yet 🙁 )

          Anyway, I'm from Brasil and moved to Australia few years ago. I had to improve my English. I did so by studying and practicing English. Not sure learning Japanese or German would help me to improve my English (actually, I'm sure it wouldn't).

          As for the TDD, yes, it's on my "backlog of skills I need to learn/practice".