How To Become A Good Programmer

Our modern society depends more and more on computers which increases the demand to employ good programmers. What makes someone good at writing code and how to become a good programmer?

It turns out the better software programmers have certain characteristics in common: they are passionate about technology, they keep learning and they know what works and what does not.

Countless examples can be found on the internet of terrible computer code. Was it lack of knowledge or perhaps plain stupidity? Some programmers simply don't know what they're doing but if you're reading this article then that's a good sign you want to become a better programmer.

In this article I'll point out several things that make someone a good programmer.

Various computer programming books
Various computer programming books | Source

What makes someone a good programmer?

  • A good programmer is proficient in multiple programming paradigms. A good computer programmer is decently to highly skilled one or more programming languages but more languages does not always mean better. If you're good at Java then mentioning C# in your resume won't be as impressive as the combination C and Haskell. These languages have two totally different programming paradigms which require different ways of thinking. If I had to bet money I would bet that the latter programmer is better at his craft than the former.

    A good programmer not only learns new languages but also expands his mindset about what programming really is. If you've always done imperative programming (languages such as C) then it pays to learn about object-oriented programming (C++, Java, C#) but also functional programming (Haskell, Lisp). Some languages include ideas of multiple programming paradigms, such as Python.

    Let me quote what Eric S. Raymond said about Lisp: "Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better program." That quote is very true! Lisp is a functional programming language and while I have more experience with Haskell, also a functional programming language, the same holds true: learning such a language makes you a better programmer because you learn to think differently about solving problems (which is what computer programming is all about).

    Instead of equating computer programming to a sequence of code statements, you can also view it as expressing the solution of a (mathematical) problem and letting the computer take care of the rest. You don't program explicitly how the computer should compute the result but you express the solution of the program in terms of functions. I won't digress too much on functional programming but I encourage you to learn more about other programming paradigms if you wish to become a good programmer.

Books about algorithms

These computers may be old but computer programming is not that different nowadays.
These computers may be old but computer programming is not that different nowadays. | Source
  • A good programmer is knowledgeable in the design of algorithms and data structures. Computer programming boils down to manipulating data and how exactly that manipulation is done. Choosing a good data structure (a certain file format or a representation of data in memory) is crucial to good computer code. You have to know why some data structures are a bad choice and why others will result in much more efficient code.

    Once you have chosen your data structures, you need to write algorithms to manipulate the data. Some algorithms will be very inefficient and slow: they are not a good choice if you have a lot of data (e.g., processing thousands and thousands of files) but they may be good enough when you don't have to process so much data.

    A decent degree in computer science will focus on teaching you what you need to know about algorithms and data structures. You can also educate yourself by reading books about these subjects. Study the code of others to see what they have done when they tried to solve a similar problem.
  • A good programmer is generally someone who is passionate about programming. If you like what you do then you're generally also better at it. You have no problem with learning new technologies because you're truly interested in computer programming.

    If you like computer programming then why not contribute to a software project in your spare time? Contribute to a free software project or develop a website for your local sports club or church. You'll always learn something you didn't know before and it helps you to become a better programmer.
  • A good programmer is organized and can think logically about solving a problem. The quality of your computer code is really the result of how well you are analyzing the problem in your head. If your thinking is messy then your code will be similar. As they say: "First, solve the problem. Then, write the code".

    Think clearly about what values you need to compute and what information you need to do that. Your first ideas might be overly complex. The better and simpler solutions are only developed afterwards and you could have prevented that if you had thought a bit more about how to solve the problem.

This article was written by Simeon Visser. I am earning money online by writing here at HubPages.com. Would you like to earn money online as well? Read the success stories and sign up today to get started!

More by this Author


Comments 10 comments

melbel profile image

melbel 5 years ago from New Buffalo, Michigan

Great hub! Voted up! I will likely link to this hub when I'm writing my next CS related hub. Great work!

:)


simeonvisser profile image

simeonvisser 5 years ago Author

Thanks melbel :)


jannthomassen profile image

jannthomassen 5 years ago from Norway

A very powerful and informative hub; thanks for sharing


itech profile image

itech 5 years ago from New Delhi, India

Interesting Article...Liked the way you explained.


C'est La Vie profile image

C'est La Vie 5 years ago from Florida

This hub was great! I was interested in becoming a computer programmer, but wanted to know more about it! Thank you, this hub proved very helpful!


simeonvisser profile image

simeonvisser 5 years ago Author

Thanks everyone, I see this discussion coming up in programming forums all the time so a hub about it seems useful.

@C'est La Vie: Just let me know if you have any questions about it, I've been doing computer science for quite a while now...


jack 5 years ago

Very nice article, everything you describe is true.It's a very well articulated article of what makes a good programmer. However, simply being a good programmer is not enough - that is, if we wish to progress in our careers at all. We need to think a bit more broadly.

First, there's way too much focus on computer science and algorithms. You can be a good programmer just punching at the keyboard all and writing algorithms all day, but software development is far more than just programming in your cubicle. It's also about software engineering, requirements engineering, usability engineering etc etc. Many computer science and math snobs will tell you that software engineering and the newer disciplines are a joke, but like it or not the people who make the effort to look beyond traditional disciplines such as CS will be the winners in the future.


simeonvisser profile image

simeonvisser 5 years ago Author

@jack: Yes, there's a lot more to it. We like to write code but it's important to think about the purpose that the code serves and whether we should be writing that code at all. It may be possible to solve the customer's needs in a more efficient and faster way. Like you say it's good to keep an eye on what's happening and to adapt to what the future may bring.


myi4u profile image

myi4u 5 years ago from United Kingdom

I guess, I am just an average programmer. I studied Information Technology but funnily involves in the web programming world at the moment. There are just so many things to learn with so little time. 24 hours a day is practically not enough to do most things!

Nice info!


simeonvisser profile image

simeonvisser 5 years ago Author

Thanks. Web programming is a nice field to be in; many things are moving to the web these days. I also know people who studied computer science but then moved to information technology because programming wasn't their thing. That's all fine to me, do what you like best!

    Sign in or sign up and post using a HubPages Network account.

    0 of 8192 characters used
    Post Comment

    No HTML is allowed in comments, but URLs will be hyperlinked. Comments are not for promoting your articles or other sites.


    Click to Rate This Article
    working