I know the following statement suggests that I've become a cranky Gray Beard, but it's pretty amazing how easy software engineers have it these days. Forget how easy instructional materials are to find compared to scouring library and bookstore shelves. Software engineers today benefit from full production mirrors in the cloud, forging long compile cycles, a giant library of open-source software, just to name a few.
Yet the single biggest advancement to my productivity that I've noticed is a seemingly minor change: syntax error reporting has gotten orders of magnitude better.
If write software today, and create a typo, stick a closing
} in the wrong place, or drop an errant semi-colon, the computer will tell you exactly where you went wrong (and even occasionally how to fix it).
My first experience programming was in CodeWarrior on a Mac. Getting something to compile (the process of getting a human readable representation into a computer readable one) was half the battle. I vividly remember the day typing
voit functionName() instead of
void functionName() caused the entire computer to crash. It took six people to figure that one out.
Eighteen years ago, as a freshman in college I started writing Java on an actual SUN workstation. The computer no longer crashed when compiling, the technology has progressed that far. Yet getting a program to compile was still hard. A simple mistake would lead to pages of scrolling output of cascading errors.
Finding the error would be an exercise in isolation, by which the programmer would execute a binary search for the error by painstakingly commenting out pieces of the code. When the first offending typo was found, it was on to the next one. Should you accidentally delete a line, good luck. At the turn of the century, we didn't have infinite copy-paste buffers.
Once a critical part of the software development lifecycle, we can now limit binary searches to job interviews and libraries. Very smart engineers have spent countless hours getting the errors produced to be more accurate. It is the kind of hard work that can go unnoticed, but has a huge impact. If you know any compiler creators, be sure to thank them. Even if you don't write software, you benefit from the increased quality.
Did you like this? Please share:
On Leaving Startup Life
Musings on the transition from being in a startup to working for a very large company.
Another new Manager Challenge: Managers Have a More Stakeholders
Bad managers never shift from the mindset of an individual contributor. Great managers broaden the number of stakeholders when making decisions.
Self-Evaluating Success as a Manager
In the first part of my series on understanding the difference between management and contribution, I focus on the challenges of evaluating success.