I believe there are many people reading this blog who aspire to become programmers, so I would like to outline my thoughts on the mindset and foundational knowledge that a programmer should have. Of course, this is just my perspective, so it's highly subjective and may not necessarily apply to all programmers.
◆ Above All, Minimize Bugs
The most important aspect of software is to have as few bugs as possible. You may wonder why I don’t say “no bugs” at all. The reason for this phrasing is intentional. A software program without bugs is probably non-existent. Therefore, I emphasize minimizing bugs. When I am programming, I constantly remind myself to anticipate the types of bugs or user inputs that may occur, and create preliminary check programs to avoid these issues. For example, imagine a survey site on the internet. There might be a user who enters “male” in the age input box. Therefore, I would program that box to only accept half-width numbers in advance. This is a very typical and simple task, but in actual programming, more complex processes and programs are often considered.
◆ Be Proficient in Mathematics and English
Whether it’s Java, BASIC, or SQL, programming is done in English. Therefore, if you can manage basic English to some extent, it will make things easier later on. Additionally, depending on the program, there are repetitive structures and a certain level of knowledge of number sequences and calculation skills becomes necessary. Hence, programmers should be strong in mathematics.
◆ Be Extremely Detail-Oriented
Software operates accurately, which is why we can use it with confidence. For example, it would be problematic if the software's performance is unstable on different days or if incorrect answers are produced. Therefore, a mindset of promptly fixing any discovered bugs is essential. Having an attitude of “It's okay if it’s somewhat right,” or “I’ll let it slide this time because the bug didn’t appear today” is not suitable for a programmer.
◆ Writing Skills
In large projects, there will often be a lot of communication with other programmers regarding software design and program structure. I think email is overwhelmingly used for this communication, so it’s necessary to convey information clearly with well-structured writing. Therefore, good writing skills are essential.
In conclusion, these are my various thoughts on the subject. I hope you find them helpful.