dark mode light mode Search Menu
Search

How to be a Lousy Programmer

Erich Ferdinand on Flickr

Nobody grows up to be a lousy programmer. However, discussing what makes a programmer lousy is an excellent way to identify what makes a programmer great. Here are some thoughts found online about what makes programmers lousy. Hopefully none of them apply to you or your friends!

First, every programmer starts out lousy. No one is born knowing the right mix of programming languages, debugging skills, persistence, ability to ship code, and all the many details that make a good programmer.

When programmers start out, they first need to learn how to learn. Say you want to learn how to program a small game. Where would you begin? You could post a question online. But good programmers do their research first and see where it leads. Then post questions when they truly can’t find an answer.

For example, there’s a tradition that you should never ask for programming help online unless your question demonstrates that you have looked for help, that you have learned how to learn but reached a dead end. Asking, “how do I do this?” is very different from asking, “I want to do X. In looking online, I see Y and Z are possible solutions. However, in trying both solutions, I find A happens. What are some ways to get around A? What might be the best way(s) to accomplish X?” A lousy programmer often won’t do the research because they have not learned how to learn.

Not only is learning this way more fun, because you never know what you will find, but it also is more rewarding.

To be fair, learning to learn can be frustrating. You might spend weeks to learn something then find someone who shows you a shortcut that reveals you spent way too much time. Or points out a detail that negates what you’ve learned. But that’s okay. You know more than if you did not learn on your own.

Learning how to learn also has another good side effect: you quickly realize you don’t know everything. Nor do most people. Instead, you discover programming is a group activity. Everyone helps each other grow by sharing what they know.

Learning as you go also helps you gain a deep knowledge about programming languages and how to develop software. You also learn to ship software instead of tweak code to perfection. And you learn the full range of how code works, from the hardware all the way up to the application on your screen. The ability to discuss code at every level is one way to identify good and great programmers.

Which leads to another difference between lousy programmers and good ones. A good programmer realizes programming is more than languages. The fun in programming is in thinking, solving problems, working on algorithms (rules for doing things), math, and how data is structured and changed with code.

A lousy programmer also doesn’t respect standards created by a community. They’ll write code instead of use a library of code that’s been used and tested millions of times. Which code do you think will work better? In most cases, the library of code. Or they’ll set up their files and write code differently than programmers they’re working with. This makes maintaining their code more difficult. Plus it risks introducing bugs that could be prevented. Standards are simply ways to do things to save time and make work easier.

Don’t believe me? Who gets to jump in the pool faster, the person who sews their swimsuit from scratch, the person who at least uses a pattern to sew their swimsuit, or the person who pulls out of their dresser a swimsuit they bought? Standards work the same way: they let you get to the fun faster with less effort.

Another practical difference between good and lousy programmers are comments. A good programmer will take an extra minute to add a comment at key points in their code, for example, to show when state changes. Or describe the purpose of a function and its inputs/outputs. Whatever might be useful to people who will maintain the code, a good programmer tries to include that information in a comment.

Lousy programmers focus on how to create something with code. Good programmers try to figure out how their code might fail, to find and fix any bugs or bad design. Good programmers also challenge assumptions, from the requirements people tell them to every part of their coding process. Lousy coders also are more in love with perfection than good programmers who are happy to accept a simple quick solution that works well.

And one final thought about programmers and software developers, cooks and chefs.

Would you call a chef a cook? Software developers program with code as one of their tasks, the same way a chef cooks. But software developers use a range of design, problem solving, people, and other skills to do their jobs, the same way chefs learn about taste combinations, nutrition, ingredients, knives, stoves, and other key parts of their jobs. Software developers build software the way chefs create meals, as well-rounded experiences.

A good software developer is simply a person who realizes programming is one skill they practice but not the only skill. A lousy programmer doesn’t have that awareness. They’re not a software developer yet.

This article summarizes answers found on Quora.com as well as elsewhere on the internet. Links are below if you want to read and learn more.

Learn More

What do good programmers know or do that lousy programmers do not?

https://www.quora.com/What-do-good-programmers-know-or-do-that-lousy-programmers-do-not

When would someone be considered a bad programmer?

http://programmers.stackexchange.com/questions/3851/when-would-someone-be-considered-a-bad-programmer

10 Ways to be a Bad Programmer

https://www.getfilecloud.com/blog/10-ways-to-be-a-bad-programmer/

What Makes Bad Programmers Different?

http://www.drdobbs.com/architecture-and-design/what-makes-bad-programmers-different/240001941
http://www.drdobbs.com/architecture-and-design/what-makes-great-programmers-different/240001472

The Difference Between A Developer, A Programmer And A Computer Scientist

http://www.skorks.com/2010/03/the-difference-between-a-developer-a-programmer-and-a-computer-scientist/
https://en.wikipedia.org/wiki/Programmer
https://en.wikipedia.org/wiki/Software_developer
https://en.wikipedia.org/wiki/Computer_scientist

Teach Yourself Programming in 10 Years

http://norvig.com/21-days.html

Related Posts