Published at: 08:05 pm - Sunday May 18 2014
For this past week the teaching has been extremely hetrogenous. Let me explain. On one hand we’re learning Django completely through actually programming, while conversely, we are learning SQL completely through lecture–no actual running of code is expected. This learning how to theoretically write code harks back to a past era–specifically the era of computing as it was roughly 40 years ago. The era of punch cards, waiting overnight for computer centers to tell your code’s result (or lack thereof). The era of spending most of your development in front of a type-writer, blackboard, or sheet of paper rather than a computer. The era where, in fact, it was a privilege beyond measure, as a student, to even get to sit near a computer. That is how we’ve been learning SQL. Learning SQL like this, similarly to how programming languages used to be taught, has given me some insight on where we are now. Insight on where we are after the mainframes.
After that era, a bifurcation (of which I was reminded by last week’s class) started to happen. Hacking around: breaking things, fixing things, the development of the “if it compiles, ship it” attitudes, and hobby programming. And deliberate “serious” programming: reading proofs, writing proofs, verifying code, making sure it works before it even works–a real, hard science. The latter representing the “science” part of computer science. The former–the hacking around–is more like engineering: caring less about the “why.” Our curious and sometimes even philosophical minds turned toward products and industry. And that is exactly why we turn to fooling around with micro-development steps (code a little, test a little): it’s faster. In industry, with increasingly fast computers and easy-to-use frameworks, correctness and “best” solutions often give way to rapid development and “good enough” solutions.
But in losing the burning need for daily cleverness in software engineering, have we lost a good thing? Have we lost the art of development, along with the CPU cycles sacrificed to develop things rapidly and cheaply? Instead, I feel like the art has simply expanded. The art is code golf: design in the smallest number of moves possible. Sometimes these moves are cycles, but many times these moves are thoughts.
3/31/2014