Conform to or Die Resisting ⁻ ᵃⁱʳᵇⁿᵇ ᶜᵒᵈⁱⁿᵍ ˢᵗʸˡᵉ

08 Feb 2022
In my first proper CS course with UH Manoa (ICS111), coding style was largely nonexistent for most of the semester. A wild west scenario where spacing and indentation was whatever existed on screen after throwing a few lines of some type conversion code from a source to see if it solved the problem. Lines crunched together or random gaps of space where one method ends, and another begins. Variable names labeled only as random letters. A programmer’s perspective of anarchy within java files if you will. While this allowed for full focus on grasping the basic concepts taught, the transition towards strict coding standards in ICS 211 was a rocky start. While at the time I failed to truly understand or care for the underlying purpose of a coding standard, I can say with certainty that it is now a pet peeve to correct code that doesn’t conform to a standard.

Why Bother

While the argument can be made that code still runs without conforming to coding standards or that standards slightly increase the time to produce code, the possible time saved debugging or troubleshooting is theoretically infinite. As the scale of programming projects and files increase, the effectiveness of having clean, clear, and concise code increases substantially. For example, if a helper function on a large file finds and returns the first instance of an object fails to work, the programmer could spend hours trying to figure out that the issue occurred in the function to begin with if the entire program follows no coding style. Coding style specifically serves in favor of the programmer to migdigate the chance of errors occurring due to careless reasons.

In Practice

With the first week of coding exclusively in IntelliJ with the defined coding standard, I can say with certainty that I enjoy having the aid of a development environment once again. As my most recent course involved coding in C/C++ exclusively in VI, the greeting of automated checks, auto complete functions, and generated files is a luxury I won’t forget to appreciate. As my previous development experience in an IDE comes from Eclipse, the transition to IntelliJ has been a relatively easy accomplishment. As IntelliJ appears more user friendly, I imagine the reverse to be significantly more challenging. A major part of development environments to me are the look and feel. As there are many hours to be spent working within their confines, it is a relief to find calm tones, and flat colors inside IntelliJ (A massive improvement from the unnecessarily bright colors of VI on Putty).

Overview

While adjusting to new coding standards, and a new environment can be a rocky start (especially when it comes to learning the various power shortcuts each environment creates), exposure to a wide variety of workflows is highly beneficial towards myself as a programmer as I never feel attached to a specific one. The ability to quickly pick up multiple language development is a skill I believe will be fundamental in my future undertakings. After seeing the effectiveness of some IntelliJ commands during the most recent BWOD exercise, I have seen firsthand how much time can be saved by utilizing the built in shortcuts. I look forward to the time saved as our project's scale increases.