Sunday, May 30, 2010

the allure of languages

I've been studying for a few weeks since my last post, and my actions have not lined up with my intentions.

A few weeks ago I carefully considered what I thought I knew and what I thought I didn't know, attempting to chart a course for myself.  I found that so far I know a fair amount about the syntax of a few computer languages-- and not much else!  Not much at all about any other piece of the process of developing software. 

So I started putting together in my mind a list of some other tools I thought I needed in my toolbox: A powerful text editor, a revision control system, a debugger, a bugtracker, a profiler, etc.  And then I began filling in the list with concrete tools, starting with emacs and git.  For the computer language in my toolchain I chose python, which I reasoned would be simple enough to not distract me from learning the other tools, especially since I already knew the basics of its syntax. 

I was entirely wrong!  I greatly underestimated my distractability.  Actually I've spent much of the past few weeks deeply immersed in python's grammar, captivated by it.  I can still barely crawl around in emacs, and I've learned just enough git to get by, yet I could tell you all sorts of interesting facts about python's formal grammar that I'll probably never need to know. 

So it's been occurring to me more and more what shiny objects languages are.  They tempt you to look for your keys under the street lamp, hoping in vain that the solution to your problems is somewhere in that stark elegance, not in slogging through the muck of complexity. 

Tuesday, May 4, 2010

I'm starting this blog to share my experiences and thoughts as I attempt to teach myself software development. 

At first I would have said that I was teaching myself "computer programming."  I threw myself into SICP and Knuth, devouring programming paradigms left and right, under the foolish delusion that the secrets that allowed programmers to make the software that I used and loved (and hated) would be under the next rock. 

Now the pendulum has swung the other way, I've overcompensated: Lately I've been seeing software as if it were an entirely social process, as if the technical obstacles were a trivial afterthought if we could only agree how to put things together. 

So here I'll share with you some notes on my progress as I continue seeking that happy middle, that small place where human need and understanding can make fragile contact with purity and abstraction.  Wish me luck! 

<3, 
mungojelly