Many people get into programming because programming is fun. At least in the beginning. After some time doing it professionally, programming is no longer fun, often just hard work. Sometimes we develop bad habits along the way to make it fun again. Some bad habits of programmers are well known, for example the “I fix that in a second” habit, the “reinvent the wheel” practice or the “all code except mine is crap” attitude. There are things which a programmer should never do. What distinguishes the bad programmer from the good programmer? Is is just the lack of a wild beard? What is the worst programmer habit? Please leave your comments.

A preliminary list:

  • The all code is crap, except mine attitude, which often leads to “I will re-write the entire program from scratch” syndrome. Code from others is hard to read and gives you the feeling that you will never understand or accomplish anything. In fact code is always easier to write than to read. And only the own code gives the programmer a feeling of world domination.
  • The let us reinvent the wheel practice. Programmers often think they can do it better than others. They want to do it right. They want to do it themselves.
  • The I fix that in a second habit or just a simple fix practice. This will take only a second. No need to test.
  • Lack of humility. As programmers, we nearly always use the code of others, but we only view the code from ourselves, which is often a small fraction of the complete system. We tend to forget how many plugins, libraries, languages and frameworks from others we use.
  • Lack of communication. Trying to solve every problem yourself, instead of asking for advice. Why do I need to talk to my peers if I can ask Google? Because as a programmer, you and your co-workers probably lack social skills. Programmers see themselves as heroes, while the rest of the world sees them a bit differently. Talking to your co-workers is essential if you work on common problems and want to have a good relationship. The ability to communicate is indispensable.
  • Lack of curiosity. Being a good programmer requires constant learning. Learning is like rowing against the stream: as soon as you stop, you go backwards. New programming languages, libraries and frameworks are coming all the time. If you ignore new trends and techniques, your knowledge will be deprecated and outdated soon, and the quality of your work will suffer.
  • Violating the KISS principle: writing dauntingly complex solutions instead of keeping it short and simple. This includes naming, too: names should be short and simple. Of course you can just name all variables x, y, and z, or name them all after characters from Lord of the Rings, but your co-worker probably won’t be happy about it.