| I thought this was worth upvoting because I was stung by how the author views programming. It's worth remembering that "hacking" is typically ill-liked, even by some of those claiming to practice it. Start with purpose. With the exception of art software projects (which I don't believe Graham has in mind here) all computer programs are designed to accomplish some kind of task. I suppose this guy is a Java programmer?... No one cares how pretty the code is if the program won't work. ...that or Perl. Great paintings, for example, get you laid in a way that great computer programs never do. #%$hole... PG could have alluded to the similarity between Math and hacking. The thing that I feel both share is that there is an underlying beauty to a well-crafted result. Truly beautiful results (like original self-printing program in Lisp) withstand the test of time, like a universal truth. Thus a program is not like an egg made by a chef, or even a Porsche made by an engineer. The flip side is that there's no "way" to write a program. There actually isn't even really a notion of truth. Beauty is in the eye of the beholder. The only constraint I have as a programmer is to (1) not run out of memory and (2) not run out dough (which would force me to quit hacking and get a "real job"). There are some people who think that obfuscated C is art, and there's FP folks like me who would fire someone for writing anything in that godawful language (Which might be unfair. People should only be fired for writing Java on the job). I think this is pretty strong support in favor or programming as an art. The other piece of evidence I cite is that the academic form of hacking is called Computer Science and we know what they say about anything that has the word "Science" in it... Basically, the only premise of idleword's argument that holds up is that artists get laid and programmers don't. I will resist fighting fire with fire on this point. But maybe PG should allude to poets or composers next time. Apparently some painters are real jerks. |
Systems Analysis
and (unsurprisingly)
Programming.
Arguably the systems analysis bit was the more interesting of the two, it is the one that I would equate with architecture, and to some extent (but certainly not as much as some would) art.
The other part, the programming part is best equated to engineering and construction.
I find I go through exactly those two phases when making something new. The first part I love to do it's where all the interesting bits are, the problems get solved.
By the time I hit the second phase, the joyful part is over, from there it is just typing stuff in and realizing the vision that I already have in my head and debugging stuff.
Rarely (but it does happen occasionally) do I get back in the 'fun' bits while coding something. That would mean I've made some terrible oversight during the analysis phase.
The analysis phase sometimes also includes some programming, it is where you come up with nifty little programs to test your assumption and where you let your inspiration go wild in order to see if you can solve the problem in an interesting way.
That is the most joyful kind of programming that I know, it is on a white piece of paper without any kind of connection to the real world of data processing. This is were algorithms are born. I love doing that.
The rest is just plumbing and brickwork.