How to Become a Good Programmer

Advertisement
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, codeplex.com,  sourceforge.net.

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 !!!
Advertisement

Comments (47)

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 :)

Ayobami Adewole · Friday, February 10, 2012 5:59 PM

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

akash · Saturday, February 11, 2012 3:14 PM

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

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.

Carp SIlviu Ionut · Saturday, February 11, 2012 8:21 PM

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

Ayobami Adewole · Saturday, February 11, 2012 10:06 PM

@Carp thanks, its good to hear that

Mikhail Alekov · Monday, February 13, 2012 9:34 AM

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

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.

Ayobami Adewole · Tuesday, February 14, 2012 10:07 AM

@Jagadish thanks for the addition

waqas · Wednesday, February 29, 2012 3:51 PM

Good Job!!!

Ayobami Adewole · Saturday, March 03, 2012 12:57 AM

@Waqas thanks

Elijah · Monday, March 05, 2012 5:25 PM

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

Ayobami Adewole · Monday, March 05, 2012 10:26 PM

@Elijah thanks bro

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

Ayobami Adewole · Friday, March 09, 2012 5:49 PM

@Manisha its good to hear that

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???

Niesha · Monday, March 26, 2012 4:09 AM

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

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

Ayobami Adewole · Tuesday, March 27, 2012 11:11 AM

@Niesha Thanks

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

Ayobami Adewole · Monday, April 23, 2012 4:03 PM

@Bernard its good to hear that.

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

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.

Ganesh · Thursday, May 17, 2012 7:21 PM

Nice article. thanks a lot

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 goal.so i seriously need help please guide how would u help me putting my first step

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.

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 [email protected]

Ayobami Adewole · Monday, June 11, 2012 8:18 PM

@Karthik I hope that helps you. @Ahmed thanks

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.

Ayobami Adewole · Sunday, July 01, 2012 4:57 PM

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

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

Shariff · Friday, July 06, 2012 10:35 AM

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

david · Friday, July 06, 2012 1:49 PM

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

Ayobami Adewole · Saturday, July 07, 2012 12:55 PM

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

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

crork · Thursday, September 20, 2012 12:19 AM

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

Marcin · Thursday, September 20, 2012 7:47 AM

All the truth about my programming live ;-)

gowthami · Monday, October 22, 2012 6:49 AM

ya i too found interesting....worthful

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.

Ayobami Adewole · Friday, October 26, 2012 7:42 PM

@Tabias thats really cool

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!

Ayobami Adewole · Tuesday, October 30, 2012 9:10 PM

@Peter thanks and amen to the prayer

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!

Ayobami Adewole · Friday, November 02, 2012 8:20 AM

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

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..

S.P. Singh · Tuesday, December 25, 2012 1:22 PM

what's language learn to make good programmer

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