Programming, specifically the intelligent design of such constructs, has always been at least twenty percent mimicry. Someone shows us how to write an efficient binary toggle and the practice stays with us. Learning how to find exclusive results between two SQL tables can shave minutes off of execution time, and your boss will certainly be impressed if you boost throughput by 85%.

Along the road to enlightenment, I’ve had some superlative teachers, professors, and friends instruct me on the best ways they knew to implement everything from Levenshtein Distance to Diffie-Helman compression, from polygon intersection to Relational Division. These lessons weren’t always apparent, and hardly ever enjoyable, but the knowledge and satisfactoin at the end of the project often put me years ahead of self-study.

Several times, I’ve been asked questions to which I’ve had absolutely no idea as to the solution. Yet, right then and there, an answer was demanded of me. It’s difficult and embarrassing, but situations like these are more about the reasoning than an off-the-cuff answer. This is an important concept, since it is a large step on the road to Doing Big Things.

Such occurrences were relatively commonplace, and for a long time I couldn’t figure out why someone looking to help me was asking a question that I either obviously had no business answering, or that was completely over my head. Then, just a few days ago, I stumbled onto the concept of zen. Zen, for want of a clearer definition, is the internal feeling and state of mind which is, in rudimentary forms, omniscience about a subject. It is the absence of bounds or form of knowledge in an area of concentration or meditation.

Zen and the art of programming was an interesting thought experiment, and until then I had no idea zen was being taught to me the entire time.

A mondo is a component of zen scripture where the roshi (`roh-shee) [teacher] asks the student a question, demanding an immediate answer. Since this question is often complex or multi-part, the process of developing the answer is more critical than the answer itself, akin to the Biblical scripture of teaching a man to fish. Had the pupil regurgitated some decade-old algorithm learned in Intro to VisualBasic doesn’t further the understanding of the problem at hand. Just because you may have learned bubble sort first doesn’t mean it’s the best choice for your production code base. A mondo would solve whether insertion sort would suffice instead of spending two days of company time implementing heap sort; and, more than that, it should help you realize the patterns in the future to prevent the same questions from needing attention again.

This insight, the ability to anticipate or at least keep pace with the business’ needs, is one of the most efficient ways to show off one’s skill in a profession. Especially now, when employers need to “cut off the fat” out of their budgets and reign in on ambitious funding of pipe-dream projects to stay competitive.

And there’s no reason you shouldn’t want to continue to learn. If nothing else – and trust me, there’s plenty else – you will bring those skills back to the workplace every day, inspiring those around you and impressing your superiors. That’s not even counting the personal satisfaction of reasoning through an enigma and coming out the upper side with a better solution or clearer understanding of the problem.

As with any profession, programming is a split of skill and quirks. Quirks come in many forms and can be quite useful or a bane. In JavaScript, for instance, you can reference a function as an object, which itself can be referenced as a hash. Thusly, window.foo[bar](baz) is perfectly valid(!). In PHP, an Array can

Fox News, amazing reporter that it is, has apparently fired all of their editors and proof readers. Well, at least for their technical reports. Reporting on Google Latitude, an add-on to Google’s own Maps service, Fox forwarded an AP article on the mobile aspect of the new technology. Unfortunately, I doubt anyone will find the

Coming out of high school, it was stressed that good practice makes good composition. One of these pillars of thought was code purity. Purity in the sense that each method should do as it’s advertised without causing side effects. It’s not much different than Design By Contract, (DBC) – a coding technique promoted in The

© 2011 Advent Digerati Suffusion theme by Sayontan Sinha