Over the last month I have been spending time out of my day to watch some of the web casted classes that are being offered by UC Berkeley and my eyes have been opened. I am indeed a programmer and know where my calling is. That said, I had a recent epiphany when one of the instructors said something oddly influential.
“When you feel like putting in one of those single lined comments, that’s usually when you should be thinking about rewriting your code.”
I couldn’t agree more.
I had never realized this, but in reality I have always been raised to program in that manner. Variables are never $a or $b, always $PlayersName or $Timestamp, so I had never realized the implications of what he was saying until now. The purpose of a single lined comment is usually to clarify or explain a important step in code. Throughout my coding experiences, I can’t really call it a career yet, I have always moved towards self documenting code, and thinking back to when I was initially learning it never really made sense to me to handle things differently.
Of course, I have worked with a lot of folks who have been given free reign over their mountain top of code land. These functional programmers are just plain boring to me. Not boring in terms of excitement, because that’s usually where they excel since their applications harbor mystery and unexpected plot twists around every function call. These programmers are boring because they spend too much time on the things that are trivial if they would have put the time into learning them.
One such example is variable naming. I remember one of my first experiences with the world while programming. The web firm I was working at threw me to the wolves and paired me with, although a very nice guy, someone without the formal programming experience. His functional knowledge had definitely paved the way for their company to be able to get where it had gotten, but it was really difficult to land there. IDK about you but I hate being micro managed, and that happens to be another of the points that this place had great ability. From being explained things that didn’t need to be explained, like how to connect to a database “their way” or being watched over my shoulder. Ill tell you guys about this place in more detail at a later time.
I had taken classes upon classes in C trying to get a job doing it, and in turn being beaten into the programmer I am today by the eyes of my professors. They molded my processes and got much of what I had to do with C down to a reaction, and where that wasn’t enough to get by they showed me the science behind it and I was better off. One of the most notable, that I notice now that I look back but didn’t at the time, is that I was shown how to program with self documenting code. My code is not always simple, but even in the complex situations I have the ability to step back and say “this is going to change the team I am currently on,” or “this is going to make the players stance go up,” and name the method or function appropriately. My time spent at this place was far from easy going, I carried a load that I was not being paid for, and after only being there for a month I was well in the habit of finishing things quickly and taking up the process of integrating my code into that of my managers. Fortunately or unfortunately this lead to me having more free time and allowing them to shovel more of the issues onto my plate. When I left there, 3 months after starting, I was carrying two websites completely, interacting with two of their clients directly and receiving between 10 and 15 daily updates to any of their other sites.
I tangent, often. What I was trying to put the emphasis on in that last section was that I had to put time into integrating my code with my managers. There was no versioning software, only a quick windows diff of the code and hope it ran. My manager took the time to make his code as close to mine as possible, but it was clear that it was slowing things down. When I left there I was basically sitting across from his office answering questions about how things were supposed to go, and that didn’t do much in the way of helping me learn.
Bye Bye to that place.
Write better code.
Enjoy your job more.