Sunday Selection 2012-07-08

Around the Web

Talent is Nothing Without Focus and Endurance

I am rather embarassed to admit that I’ve never read Haruki Murakami. I do plan on changing that soon. However I’ve heard that only are his books great, his memoir: What I talk about when I talk about running, is an equally wonderful and enlightening read. I think I’ll put it on my Kindle for the flight home.

The Neglected Virtue of Scholarship

As a graduate student I’d say about a third to a half of my time is spent either reading up on the current state of the field or looking for techniques and approaches that I can use in my own work. If your job involves pushing the state of the art it’s worth spending some time figuring out where the line is currently drawn. Even if that’s not your job description, I think a little scholarship in a relevant field can go a long way.

Scholarship: How to Do it Efficiently

Unfortunately, scholarship or “book learning” often gets a bad rap. But I’d like to think that it’s mostly because books tend to be badly written. Also it’s hard to enjoy reading something unless you know why. As a precursor to this article I’d just like to say: Scholarship is most effective when it’s focused and self-motivated.

Software

Ifttt

I’m a strong believer in the idea that our technology should actively help us lead better lives. That’s why I find things like the current slew of “minimalist” text editors for iOS and OS X deeply misguided – our software should do more, not less. Ifttt is a step in the right direction – it lets you connect web services with “if something happens then do something” clauses. Ideally I would like to see a general API that connects web services and lets me script them uniformly but this is a start.

Process and Product

Yesterday I came across a post entitled “default behavior” by Ben Augarten about how important it is to put your products out in the world. It starts with him talking about how the code he’s writing is for an internal tool and hence will never see the light of day. Few people will use it and he’ll lose ownership of it once his internship ends. He implores programmers to release their code as products into the world and seems more than a little disdainful of programmers who don’t release their own products. He seems to be under the impression that if you’re not working on your very product that you’re dead inside.

He’s wrong.

It’s great to love to your product. It’s great to build something, to show it to the world, to have people use it, get feedback and make it better. If that’s what motivates you and makes you happy then by all means go ahead and release products. Life is too short to be unhappy (though people are working on that). What it doesn’t mean is that not releasing products makes you unhappy.

There’s a distinction to be made between process and product. Product is the fruit of your labor, process is the labor itself. In the rush to create startups, launch products, have dozens of repos on your Github account, we tend to lose sight of the process itself.

While I certainly understand (and have felt) the allure of releasing a product, there’s a lot of joy to be gained in the process itself. While many of us got into computers and programming because of the things we could create, many of us (including myself) got into it because of the joy of coding itself. I love learning new technologies, working through problems, crafting solutions. I love the mental strain of thinking my way to answer, I love the physical feel of my fingers on a keyboard and the seeing the characters of the screen. I love the process of seeing something being created as much I like the feeling of having created something. The same goes for writing or drawing or cooking – how you make something is just as important as what you make.

I suspect that this joy for the process itself is why so many incredibly talented and hardworking people are happy working for closed source companies (financial and material renumeration aside). If you are fulfilled by the labor itself then you care less about the fruits of your labor. This isn’t particularly new thinking – it predates open source, computers, software, even modern science and technology. As far as I know, the earliest well-known expression of such a notion is from the Bhagavad Gita where the god Krishna tells Prince Arjun:

“To action alone hast thou a right and never at all to its fruits; let not the fruits of action be thy motive; neither let there be in thee any attachment to inaction”

I don’t entirely agree with this: I do believe in property rights and I think that as a creator you deserve some say in how your creation is used. However I do agree with the underlying idea that you can find motivation in the actions themselves and not just their results. Getting too invested in the result can detract from joy you recieve from the process (and vice-versa). I’m not going to claim that process is better or more meaningful than product. Humans and their motivations and emotions are far more complex than such simple comparisons. But I am going to claim that finding fulfillment in the process itself is a perfectly valid way of living your life.

It’s great that Ben and so many other programmers and entrepreneurs want to create products and see them in action. We need that. They don’t have to become process-oriented. But they do have to understand that not all people will value products as much as they do and they have to respect that. Sometimes the journey is more important than the destination.

Sunday Selection 2012-07-01

Around the Web

Hackers and Fighters

When it comes to the debate between computer science and programming I’m of the opinion that knowing some computer science will make you a better programmer. Being a regular programmer will give you a better appreciation of the problems scientists need to solve. I’d love to see a proper scientific test of this hypothesis rather the jumble of anecdote and posturing that exists on the web today. This article is one of the more balanced ones and gives a worthwhile metaphorical veiw of the matter.

How One Hacker Quit the Programming Life for Bluer Skies

As much as I love writing code for my day job and wouldn’t be doing anything else, I don’t think that need be true for everyone. For a lot of programmers, writing code is just a day job and that’s ok. I find the notion that “real programmers” program day-in-day-night to be rather silly. You should do what makes you happy. Peer pressure that makes you produce more is still peer pressure. How good you are as programmer is determined by the quality of your code – not the hours you put in and not the number of open-source projects you maintain. And when you decide that you’ve had enough, don’t be afraid to go do something more interesting.

A much higher education

These are interesting times for academia and education in general. While I’m all for free (both as in beer and in freedom) digital distribution and decentralized, on-demand self-education, you can pry my expensive liberal arts education from my cold dead hands. I don’t think the higher-education system is unsustainable, I think there’s increasing pressure to commercialize and corporatize it and we’re unwilling to explore other options. Education is the foundation of a free society. Academic freedom is one of the pillars of modern science and technology. It’s about time we took that seriously.

Video

Jon Moore on Hypermedia APIs

Programming for the web is still one of my blind spots. That being said, I find the idea of programmatic exploration of APIs very interesting. I don’t fully understand all the implications and applications and I don’t think I will until I write a hypermedia application. But if you’re interested in knowing what programming for the modern web is like, I think this is a good start.