When I was a budding computer geek nearing the end of high school, I attended a “meet and greet” at one of the Universities I was applying at to see the campus, see the program, and get a feel of things. After the presentation of the curriculum and the highlights, there was an open question period. Not afraid to look stupid, I tossed out the question “What language or technology should I learn so I can get the best job when I’m done with my degree?” I think nearly every aspiring programmer has asked this question looking for the “inside track” that the experts already know about.
Upon graduation, this sage advice had proved to be precisely true. The semantics of programming included an object oriented model, proper documentation techniques, software engineering models, and other fundamental models of loops, data structures, and the like. However, the syntax of programming was still steeped heavily into Java and C++. The .Net platform was just getting off the ground into 1.0 format. I actually left college with a pretty strong Perl knowledge under my belt (self-taught).
Had I focused on the syntax of my programming career, I would be stuck working in a Perl or C++ shop (I always had small issues with Java) and would never have left that. That isn’t to say that Perl or C++ are bad, but it is to say that when I stumbled upon PHP, the transition was easy. Instead of working with the Perl::DBI library, I simply used the built in methods that integrated with MySQL and iterated through a different structure of the result set. This has also applied later to transitioning into the .Net language sphere. The syntax was different, but the semantics of good programming and structure still applied and I could move on without much hassle.
As I’ve become more seasoned along this journey called life, I’ve found that the same concepts apply. From a purely technological standpoint, I’ve lived through the “syntax” of rotary phones, to push button phones, to big “brick” cell phones, to cell phones that you lose in your pocket. This has dramatically affected how society functions as a whole. Similarly, the “syntax” of my world has gotten increasingly larger as I went from growing up in a small town, to school in a major metropolitan city, to even doing a bit world travel.
Through all of this, the “semantics” of life has remained relatively unchanged and applies to each situation. Love thy neighbor as thyself. Seek goodness, truth, and beauty in all things. People are more important than ideas. These things help shape how I interact with the syntax, but also make the syntax of life easier to transition into.
To the potential programmer reading this, focus on your fundamentals, and the particulars of your language/technology/methodology will work itself out.
To everybody else (and the programmer too) reading this, focus on your world view, the fundamentals of what and why you believe, and the particulars of a given situation, event, person will work itself out.