Opinions on commenting code can vary widely, often leaving beginners unsure of how many comments to add and what to write in them. However, in my experience, it is important to include comments, but only as sparingly as possible to explain your decision-making process.
Ideally, your code should be self-explanatory. High-level languages like JavaScript and Python are designed to be readable, with variables and methods being named in a way that resembles plain English. Even if the code is a bit complex, as long as a programmer can understand exactly what it does, comments may not be necessary.
Where comments become valuable is when you need to explain the “why” behind a particular instruction or block of code, not the “what” (which should be inferred from the code itself). High-level languages are meant to be thought about, unlike machine language or assembly, which can be incredibly difficult to comprehend.
Comments are helpful when you need to explain to yourself or others the reasons behind a specific piece of code. Even after six months, if you return to a line of code you previously worked on, you may not remember all the considerations that were made at the time. A well-placed comment can provide that missing context.
It’s also worth noting that code is not just made up of instructions and comments. Source control systems like Git can offer insights into why certain lines of code were added or modified. By looking at the commit history and reading helpful and detailed commit messages, you can gain a deeper understanding of the codebase. This is particularly useful in open source projects where multiple contributors are involved.
In a job interview scenario, it’s always advisable to include comments in your exercise. Hiring managers will likely assess both your code and the quality of your comments. It demonstrates your ability to have empathy for future developers who will need to understand and work with your code.
In conclusion, while comments should be used judiciously, they play a valuable role in explaining the reasoning behind code decisions. By striving to write readable and self-explanatory code, you can minimize the need for comments, but when necessary, they can greatly enhance code comprehension.