Sturdy Foundations

09 Feb 2023

Initial Thoughts

As a person who feels most at ease with at least some form of rules and order, I have no particular grievance against coding standards. This extends to ESLint with IntelliJ. Although I do sometimes find getting the green checkmark a little annoying, for the most part, I have found that the way I code mostly matches the ESLint coding standard. Therefore, it has not given me that big of a problem so far. However, I can see how it can become annoying for other coders who prefer a coding style much different than the one enforced by ESLint.

From the Basics

In a way, coding can be seen as a creative endeavor; everyone has their own style of thinking and everyone has their own style of coding. I strongly believe, however, coding standards are essential for beginner and intermediate coders who are just learning and beginning to understand coding. By providing a template for coders to write their code based off of, it teaches them how to write efficient and effective code. It also makes code easier to read which makes it easier for both the coder and other people to identify and fix bugs.

Once a coder starts becoming more advanced, however, I believe they should be allowed to break at least some coding standard rules. In my opinion, the best way to think about this is in terms of music. A musician starts off learning the basics of playing their instrument: violinists learn how to properly hold their violin and bow, trumpists learn how to buzz, and singers learn how to properly support. They must start from here otherwise they risk harming themselves and their performances in the future. The same applies to coders: they must learn and solidify the basics first or risk running into problems in the future.

Once a musician becomes more advanced, they can begin to add more flair and embellishments to their playing. A professional may choose to add an extra trill here or a new chord there, or they may choose to throw away the basics entirely to create their desired effect. For example, singers are taught that the “proper” way to sing is to be relaxed and open when singing to avoid damaging their vocal chords. This technique creates a very clear, smooth sound and is perfect for pieces of music where the desired effect is a free, light tone. It is not perfect, however, for pieces where a more longing, strained effect is desired. In these cases, a professional singer may tense up to create a more constrained and labored sound. Advanced coders may choose to do the same in their own code, either adding little embellishments to make their code more efficient or completely throwing away the basics to create a new way of coding that works best for them. However, it is very important to note that this only works with a strong understanding of the basics. If an individual with limited knowledge and understanding of the basics were to try this, there is a greater chance of it becoming detrimental to the performance (in the case of musicians) or code (in the case of coders).