Lessons Learned

Posted by on April 26, 2013 in Essay, Programming | 0 comments

Lessons Learned

I think about George at least once a week. George was a teacher. My advanced FORTRAN instructor from about <redacted> years ago to be precise. The reason why I think about this bearded, bespectacled aerospace engineer moonlighting as a community college instructor is that he taught me one of the most important lessons I ever learned in the process of becoming a full fledged software engineer.

I had realized that my hopeful career in cartooning was not exactly a first-class ticket to fortune, but maybe computers were! Eventually I found myself in George’s “Advanced FORTRAN” class. I remember few specifics from the class, except one basic fact of programming that would stay with me for my entire career. George came into the class one night, turned on the overheard and placed transparency showing about 20 lines of code. He asked, “What does this do?” then paused for us to fill the space with our collective wisdom. After about 30 seconds of silence, he could stand no more and stated that the puzzling code did nothing more than clear an array. But golly, he was right! And it was beautiful. Compact, fast and downright clever! And as the light dawned upon our collective noggins, we again glanced at each other thinking the same thought, “my goodness this is a clever solution. I hope I can be as good a programmer as this guy was!”

George understood all too well and read our thoughts. “I bet you think this is clever don’t you?” he said. We nodded in unison. “It is clever. But terrible coding!” Oops! Needle-across-the-record moment here (for the kids in the audience a “record” was a piece of plastic with something like an mp3 file etched in it). He explained that while the code really was efficient and clever it was terrible for the simple fact that we couldn’t figure out what it did. “Don’t be clever unless you absolutely have to” he instructed us. “Write some extra lines of code if you must to clarify your work.” When the code is revisited months or years later, he explained, we wouldn’t have to waste time trying to figure out what we did. Save clever stuff for the small fraction of the project that really needs it.

So, at least once a week I find myself wanting to be clever, and I hear George’s admonition in the back of my head warning me not to. That was the first and most important lesson I learned in this biz.