Bad Code 101: How to Learn from the Mistakes of Others

Discovering the hidden gems of knowledge and best practices from poorly written code examples

Praveen
Level Up Coding

--

Photo by Ryland Dean on Unsplash

If you see a bad code, do not ignore it and walk away. Instead, learn from it. Let’s understand what we can get from it.

It’s not about writing the code, it’s about understanding the code — Unknown

As a programmer, it is important to constantly strive to improve and learn from our mistakes. One way to do this is by studying bad code.

This article, suggests that actively seeking out and analyzing examples of poor code can help us recognize and avoid common mistakes in our own code. This can ultimately lead to writing better, more efficient and maintainable code.

Badly written code can teach you a number of important lessons, regardless of whether you are the one who wrote it or you are trying to understand someone else’s code.

These lessons can help you become a better programmer and improve the quality of your own code.

Readability

First and foremost, badly written code can teach you the importance of readability and clarity.

Good code is easy to understand and follows consistent style guidelines. It is well-documented and organized, making it easy for others (or even yourself at a later date) to follow the logic and understand the purpose of each piece of code. By contrast, badly written code is often difficult to understand, with poor or nonexistent documentation, inconsistent style, and a lack of organization.

It may also contain errors, bugs, or other issues that make it difficult to use or maintain. Seeing the negative consequences of these issues can help you appreciate the importance of readability and clarity in your own code.

Testing and Debugging

Badly written code can also teach you about the importance of testing and debugging. Good code is thoroughly tested and debugged, ensuring that it functions correctly and meets the requirements of the project.

By contrast, badly written code is often riddled with errors and bugs, which can be frustrating and time-consuming to fix. Seeing the problems that can arise from a lack of testing and debugging can motivate you to be more diligent in these areas in your own code.

Coding Practices

Additionally, badly written code can teach you about the importance of good coding practices and design patterns. Good code follows established best practices and design patterns, which help to ensure that it is maintainable, scalable, and reusable.

By contrast, badly written code may violate these principles, resulting in code that is difficult to understand, modify, or extend. Seeing the negative consequences of these issues can help you appreciate the value of good coding practices and design patterns in your own code.

Let’s take a look at a couple of small examples to understand.

An example of badly written code in Python that checks whether a given number is prime or not:

def isprime(n):
if n<2:
return False
for i in range(2,n):
if n%i==0:
return False
return True
print(isprime(5))

This code is difficult to read and understand due to the lack of proper indentation and spacing. Additionally, the function is not well named and there are no comments to explain what the code is doing.

A better version of the same code could be:

def is_prime(number: int) -> bool:
"""
This function checks if a given number is prime or not
"""
if number < 2:
return False
for i in range(2, int(number**(1/2))+1):
if number % i == 0:
return False
return True
print(is_prime(5))

It is more readable, the function name is more informative, and the function has a comment explaining what it does. Also, it is optimized, as it only checks the square root of the number.

This example can teach developers the importance of code readability and maintainability, as well as the benefits of using clear and consistent naming conventions and commenting on their code. Additionally, it can help them understand the concept of optimization, as the code is optimized by reducing the number of iterations it has to perform.

An example of badly written code in Python that calculates the factorial of a number:

def factorial(n):
if n==1:
return 1
else:
return n*factorial(n-1)
print(factorial(5))

This code is difficult to read and understand due to the lack of proper indentation and spacing. Additionally, the function is not well named and there are no comments to explain what the code is doing.

A better version of the same code could be:

def calculate_factorial(number: int) -> int:
"""
This function calculates the factorial of a given number
"""
if number == 1:
return 1
else:
return number * calculate_factorial(number - 1)
print(calculate_factorial(5))

It is more readable, the function name is more informative, and the function has a comment explaining what it does.

Reading and trying to understand the example can help developers learn the importance of code readability and maintainability, as well as the benefits of using clear and consistent naming conventions and commenting on their code.

Additionally, it can help them improve their own coding skills by showing them what not to do and how to avoid common mistakes.

Conclusion

The importance of studying bad code in order to improve one’s programming skills. It suggests that by actively seeking out and studying examples of poor code, programmers can learn to recognize and avoid common mistakes in their own code. This is an effective way to learn and improve as a developer.

If you enjoyed reading this and would like to continue the journey with me, please feel free to follow me. I would love it.

Level Up Coding

Thanks for being a part of our community! Before you go:

🚀👉 Join the Level Up talent collective and find an amazing job

--

--