{"id":219,"date":"2007-11-15T21:16:08","date_gmt":"2007-11-16T02:16:08","guid":{"rendered":"http:\/\/www.randomideas.net\/?p=219"},"modified":"2007-11-15T21:16:08","modified_gmt":"2007-11-16T02:16:08","slug":"sometimes-i-miss-being-a-programmer","status":"publish","type":"post","link":"http:\/\/randomideas.net\/?p=219","title":{"rendered":"Sometimes I miss being a programmer&#8230;"},"content":{"rendered":"<p>As I sit 30 pages deep into the maze of English, mathematics, and mathematical English (which is a language in its own right) that is my dissertation, I can&#8217;t help but reminisce about the days when I just used to <i>code<\/i> all day. It didn&#8217;t matter what I was writing; every project became a labor of love, though it was eked out in a battle for mastery against a mercilessly correct machine and the equally merciless ambiguities of the human mind. Receiving an interview feedback form from Google brought me back for a time, forced me to remember all of my victories &#8211; and defeats &#8211; as I tried to impart the thoughts that flitted through my mind at the interview.<\/p>\n<p>I&#8217;ve spoken of my childhood already: of the early victory that was Metasquarer, of the elation and superlative mastery that breathed life into Final Aegis, and of the zero-sum victory in the PlanetSourceCode contest that firmly embedded a non-competition principle into my code of ethics.<\/p>\n<p>My primary thoughts today did not trace over those paths so much as my more recent evolution as a programmer: the culmination of my long years of study, the final self-acknowledgment of mastery (I&#8217;m always the last one to), and the associated conclusion: it was no longer a challenge worthy of being my primary activity. The evolution of programming from the desktop to the web simply served to reinforce these concepts; &#8220;programmers&#8221; these days are more likely to use languages such as Javascript and HTML (which I still consider a markup rather than programming language) than C++ and Java. Fun as that is, that&#8217;s web development, and its practitioners tend not to understand either the elegance of &#8211; or need for &#8211; a good computer program. &#8220;Why compute squares on a board in O(n) when you can do it in O(n<sup>4<\/sup>) by scanning the whole board for each point?&#8221; sums this attitude up. &#8220;Computers are getting faster, so who will notice?&#8221; (well, you might if your program becomes popular and your server goes down in flames as the number of users grows). I even proposed a new paradigm that built classes bottom-up (by their <i>behavior<\/i>) instead of top-down (by their <i>structure<\/i>), which was promptly, since most people can&#8217;t see the point and prefer to work top-down (a study which I can no longer find concluded that despite top-down programming being encouraged and perceived as being more efficient, the best programmers tended to work bottom-up, which is true of the way I generally code as well, though I&#8217;ve become more amenable to top-down approaches as I&#8217;ve grown).<\/p>\n<p>In the end, I just decided that I should move on from programming. So I decided to study algorithms in grad. school.<\/p>\n<p>Well, fast forward through all of the application drama (the righteous indignation still hasn&#8217;t faded; it probably never will, since my entire life plan was essentially derailed and had to be rebuilt) and I am now at Temple studying biomedical data mining, and the <i>last<\/i> people I want to work with are the ones who study algorithms. I&#8217;ve never met such an unhappy yet demanding group of people in my life. Instead of focusing my efforts on programming, I am now focusing them on&#8230; well, <i>everything<\/i>, but especially research at the moment. I still code enough to keep my skills sharp, but only in support of my other activities. Coding for the sake of coding has been lost.<\/p>\n<p>It&#8217;s something I miss from time to time, but it almost seems as if the world itself has moved past the need when I wasn&#8217;t looking &#8211; or perhaps I&#8217;m now content to describe the solution without expending the effort of implementation, since I know no one will bother with it anyway. Whatever the reason, I sometimes feel orphaned from the first thing I was really really good at.<\/p>\n<p>I&#8217;m thinking about taking a job that primarily involves programming when I graduate. I started the doctorate with the notion that I was doing it more for the training than the degree, and I meant it, but I badly misjudged the research community and thus I now spend most of my time writing about concepts that anyone who cared could find in a textbook, just so I can present my new idea while meeting some sort of expected page limit (they call it &#8220;scope&#8221;) on my dissertation. I don&#8217;t know if I want to deal with this for the rest of my life. I love coming up with new ideas, but&#8230; there&#8217;s so much meaningless work that accompanies it! So much bureaucracy, so much conformity, even some hypocrisy&#8230; just to maintain a job that isn&#8217;t even particularly rewarding to begin with. I love research, but I can&#8217;t stand the way research is practiced, while I also love programming and can at least tolerate the way programming is practiced.<\/p>\n<p>The idea of taking an easy job and doing my research independently looks more and more intriguing&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As I sit 30 pages deep into the maze of English, mathematics, and mathematical English (which is a language in its own right) that is my dissertation, I can&#8217;t help but reminisce about the days when I just used to code all day. It didn&#8217;t matter what I was writing; every project became a labor [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,14],"tags":[],"class_list":["post-219","post","type-post","status-publish","format-standard","hentry","category-personal","category-programming"],"_links":{"self":[{"href":"http:\/\/randomideas.net\/index.php?rest_route=\/wp\/v2\/posts\/219","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/randomideas.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/randomideas.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/randomideas.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/randomideas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=219"}],"version-history":[{"count":0,"href":"http:\/\/randomideas.net\/index.php?rest_route=\/wp\/v2\/posts\/219\/revisions"}],"wp:attachment":[{"href":"http:\/\/randomideas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=219"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/randomideas.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=219"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/randomideas.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=219"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}