How to Become a Good Programmer

This question has been asked and answered more than a thousand time now, but I come across people who still ask me this same question, that I feel I should blog about it.

There are lots of strings attached to becoming a good programmer, in this blog post I will discuss some salient points that have worked for programmers over the years and will surely help a newbie or neophyte programmer to become a good programmer.

Let me do some bragging about Programming, its the coolest profession that doesnot require you having a degree, but that is not to say that having a Computer Science degree is not good, I will even recommend having one, because there are some basic concepts a programmer needs in his or her programming career that will be taught in school, but that is nothing to worry about because these concepts can be learnt outside school.

That leads to the first most important point - Passion. It is passion that drives programmers to do what we do, it is the love of one's job that keeps a programmer going even in the face of problems, show me a successful programmer and I will show you the passion in him. To become a good programmer you need to love programming and develop strong passion for it, because you cannot excel or thrive in what you dont love.

A programmer must be ready to study books, read blog posts and articles. Good programmers are hard core readers of book, knowledges are hidden in books, you can add to your reservoir of knowledge when you read books. Following and reading the geeks blog articles and posts do help a lot, because you gain from their wealth of experiences and add to you own. I personally have read some books that have helped me in my programming career, I will mention but a few of them that I found interesting and must read for every programmer, they are Code Complete, Clean Code, Domain-Driven Design: Tackling Complexity in the Heart of Software, Patterns of Enterprise Application Architecture, Foundations of Programming Building Better Software.

Problem solving and analytical skills are must have for every programmer, because programmers are problem solvers, programmers solve problems every time, and how much you can analyse and solve a problem and write a maintainable software for it, will determine how far you will go in your programming career. Think of a problem and try to profer solution to it, by doing this, you can improve your problem solving ability.

There have always been much arguments on whether a programmer should be a mathematics guru or not, though Computer Science had its origin from mathematics, I strongly believe you dont have to know calculus or differential equations before you can be a good programmer, but knowledge of mathematics is a plus for you and can save you a great deal of time especially when dealing with problems that are mathematical in nature.

This principle is applicable to all spheres of life and not programming alone - Attention to Details. Paying attention to minute details is a factor that distinguishes a good programmer from an ordinary programmer. This is a culture that needs to be developed by every programmer that wants a better career in life.

A programmer must learn to write good codes, I define good codes as codes that are well written, tested and documented. In my subsequent blog post I will discuss in details about well written and documented codes, but you can read my introductory article on TDD to know what a tested code is. You can also learn how to write good codes by reading other peoples codes, there are many repositories online where you can find source codes of project - Github,,

Code all the time, the only way to be good at something is to do it all the time, which means to be a good programmer you should code, code and code all the time. When you code all the time naturally your passion for programming grows, which makes you crave to know more and thus you become very good at it.

There are a lot of Forums on the internet, that a programmer can join, to mix with fellow programmers, ask questions, get code snippets and even receive newsletters, to mention but a few my favourites are Codeproject, DZone, Stackoverflow, MSDN and even ACM.

Let me add this too, because it is important. Your creativity is at its best when you are happy, nobody can be creative in a sad state of mind. Try and maintain quality relationships with your loved ones and your associates, because they determine the large chunk of emotions that you experience each day.

I wish you a successful programming career !!!

Share this page on

48 Older Comment(s)   57 People Like(s) This Page   Permalink  

 Click  To Like This Page

comments powered by Disqus

Older Comment(s)

Posted by    Ayaz

Friday, February 10, 2012    3:08 PM

Very nice article. My passion for programming grows after reading it. Good work keep it up writing these kind of useful articles :)

Posted by    Ayobami Adewole

Friday, February 10, 2012    5:59 PM

@Ayaz thanks, Its good to know that the article helped you

Posted by    akash

Saturday, February 11, 2012    3:14 PM

can u tell me from where should i start programming?????

Posted by    Ayobami Adewole

Saturday, February 11, 2012    7:06 PM

@Akash I will suggest you first read this book about programming, "The Art Of Computer Programming 3rd edition by - Donald Knuth", it teaches the basics about programming, please be patient and persevere enough to grab the concepts in the book. Then you can go ahead and choose any Programming language of your choice, I will suggest you do some background check on C#,Java,C++ and Python and choose anyone to start with, Please Note that Programming Language is just a tool for programming.

Posted by    Carp SIlviu Ionut

Saturday, February 11, 2012    8:21 PM

Very interesting article. Thanks. I found it very useful.

Posted by    Ayobami Adewole

Saturday, February 11, 2012    10:06 PM

@Carp thanks, its good to hear that

Posted by    Mikhail Alekov

Monday, February 13, 2012    9:34 AM

I think that Good programmer is man who taking interesting life.

Posted by    Jagadish

Tuesday, February 14, 2012    9:43 AM

Hi Ayobami Adewole and hello to all my techie friends... I would support Ayobami Adewole words of becoming the good programmer... and i like to add some words to his.. any person to become good programmer... Initially he has to have 1.Self confidence in himself, none can purchase and help u out in this. 2.Must show interest in what topic is he involved. that makes to work the person continuous.

Posted by    Ayobami Adewole

Tuesday, February 14, 2012    10:07 AM

@Jagadish thanks for the addition

Posted by    waqas

Wednesday, February 29, 2012    3:51 PM

Good Job!!!

Posted by    Ayobami Adewole

Saturday, March 03, 2012    12:57 AM

@Waqas thanks

Posted by    Elijah

Monday, March 05, 2012    5:25 PM

Nice work bro...would love to read more of your work..

Posted by    Ayobami Adewole

Monday, March 05, 2012    10:26 PM

@Elijah thanks bro

Posted by    Manisha

Friday, March 09, 2012    10:25 AM

Really very nice article to improve once's confidence and well guidence to those who want to become a good programmer. This article will help very well in my career of software engineering.:) Thanks Manisha

Posted by    Ayobami Adewole

Friday, March 09, 2012    5:49 PM

@Manisha its good to hear that

Posted by    Suhail

Sunday, March 25, 2012    2:57 PM

Haii Friend,,, it is usefull words,, i know some programing languages,, But i am not getting chances to work on it,,, Simply doing projects myself,, so do u have any solution for this?... any project contest or something like that???

Posted by    Niesha

Monday, March 26, 2012    4:09 AM

Very good post! I will definitely pick those books you mentioned!

Posted by    Ayobami Adewole

Tuesday, March 27, 2012    11:08 AM

@Suhail, the only way to be good at those languages you know is to be consistent at them and practice them often, and partaining to project contest, if you are still a student you can participate in Microsoft Imagine Cup or better still Google summer of code or Google Code Jam

Posted by    Ayobami Adewole

Tuesday, March 27, 2012    11:11 AM

@Niesha Thanks

Posted by    Bernard Afriyie Nyarko

Monday, April 23, 2012    3:58 PM

thx so much bro,i love this article of yours... it has inspired me and i hope and pray someday i will grow in programming like you..big ups

Posted by    Ayobami Adewole

Monday, April 23, 2012    4:03 PM

@Bernard its good to hear that.

Posted by    Bernard Afriyie Nyarko

Friday, May 04, 2012    1:51 PM

what are some of the languages you will recommend i start with as i am a beginner? Thanks

Posted by    Ayobami Adewole

Tuesday, May 08, 2012    5:56 AM

@Bernard sorry my reply is coming late I have been busy lately, you can start with C# or Java, they both have great community support, and you can always find help if you need assistance.

Posted by    Ganesh

Thursday, May 17, 2012    7:21 PM

Nice article. thanks a lot

Posted by    Karthik

Friday, June 08, 2012    7:40 PM

i so want to be a good programmer! i have set my long term goal of my life to be a programmer best infact. i am currently pursuing engineering in india MYsore under vtu university,under computer science. am so confused about it,am not able to come up with step one,i.e. how do i proceed to attain my i seriously need help please guide how would u help me putting my first step

Posted by    Ahmed A.O

Saturday, June 09, 2012    6:09 PM

@karthik, you start from the basics and like he said, make sure you are ready to read a lot of books, like a lot of books, you could start from vb.Net language cos its easier to start with and gradually you move on. And one thing you should have in mind is neva to hurry, take your time, u don't wanna be a half-baked programmer, whateva language you are studying first, learn it to a proficient point and take up another.

Posted by    Ahmed A.O

Saturday, June 09, 2012    6:13 PM

And oh, wen u encounter problems, don't be discouraged, your passion would help you see through, and dere are always people ready to help in forums and blogs like this one, and If in need of any resource, you can always post here or contact directly on

Posted by    Ayobami Adewole

Monday, June 11, 2012    8:18 PM

@Karthik I hope that helps you. @Ahmed thanks

Posted by    JAMES

Friday, June 29, 2012    11:45 AM

Appreciative Adewole for the post.It has really encouraging me to start this project immediately as i have asking myselft were would i start. I will always be in touch with you for the support.

Posted by    Ayobami Adewole

Sunday, July 01, 2012    4:57 PM

@James its good to hear that, keep the ball rolling!

Posted by    Toure

Monday, July 02, 2012    4:46 PM

Hi , very good blog . Please Mr ayobami , do you think i can build a powerful sofware usin visual basic and excel

Posted by    Shariff

Friday, July 06, 2012    10:35 AM

Thank you Mr.Ayobami, what about translating this article in swahili language?

Posted by    david

Friday, July 06, 2012    1:49 PM

real i need to be good in programming guys show me ways

Posted by    Ayobami Adewole

Saturday, July 07, 2012    12:55 PM

@Shariff I will love if you can help do that, since I cant speak Swahili

Posted by    eloisa

Sunday, August 05, 2012    12:01 PM

I really want to be a good programmer.. from now on I start building up my passion.. tnx

Posted by    crork

Thursday, September 20, 2012    12:19 AM

Pnaujw Appreciate you sharing, great article post.Much thanks again. Will read on...

Posted by    Marcin

Thursday, September 20, 2012    7:47 AM

All the truth about my programming live ;-)

Posted by    gowthami

Monday, October 22, 2012    6:49 AM

ya i too found interesting....worthful

Posted by    Tabias Pittman

Thursday, October 25, 2012    3:43 AM

I agree with this article. I've had the passion to program since 8th grade, but didn't really dig into it until my 11th grade year of High-School. I'm currently a Senior in High-School taking AP Computer Science, and I absolutely love it. I can't wait to get a Computer Science major and going into the career field.

Posted by    Ayobami Adewole

Friday, October 26, 2012    7:42 PM

@Tabias thats really cool

Posted by    Peter Osas

Monday, October 29, 2012    7:23 PM

Wonderful article. I thought there were no good computer programmer in the Nigeria, but thank God that you are making progress. I pray that God will give more grace to become the best. As for me, I am a mathematician, and I found computer engineering and computer science as my 2 major hobbies. I have practiced several programming languages. In the process of learning, I discovered that for one to be a very good programmer, he must have knowledge of: 1. at least a programming language (just master few keywords, the language syntax, and solve small problems first) 2. study computer algorithm very well, because that's all to programming 3. Master object oriented analysis and design 4. If possible add software engineering to it; it will do you a lots good. There are other tips I have in my head, but these few can add to what you have to give a good start. Success as you go on learning how to write code. Thanks!

Posted by    Ayobami Adewole

Tuesday, October 30, 2012    9:10 PM

@Peter thanks and amen to the prayer

Posted by    Rutaarwa Moses Mugarra

Thursday, November 01, 2012    1:40 PM

This article is a mind opener for my it has given me a road-map on how to go about in the field of programming, thanks to you Ayobami. Am currently studying BCA, yet i have very little scientific backgound...though i now strongly believe i will make, especially when i came across your article today. Thank you very much once again!

Posted by    Ayobami Adewole

Friday, November 02, 2012    8:20 AM

@Rutaarwa you are welcome, wish you success in your career.

Posted by    Fariha

Friday, December 14, 2012    2:13 PM

A very good article.......... i got strenght when i read it hope i will also be good programmer :) well now i have to remember all of your points .. and try my best..

Posted by    S.P. Singh

Tuesday, December 25, 2012    1:22 PM

what's language learn to make good programmer

Posted by    Ayobami Adewole

Wednesday, December 26, 2012    8:29 PM

Singh, I would not want to suggest any language, because you can choose any object oriented programming language to start with, but you can try and consider java, C# and Python, do some background check and choose any of them