Hacker News new | past | comments | ask | show | jobs | submit login
Richard Dawkins's Guilty Pleasure (no anchor link, scroll down ~3 screens) (guardian.co.uk)
55 points by pushcx on Oct 15, 2008 | hide | past | favorite | 26 comments



To save you from scrolling, here's the Richard Dawkins portion:

Richard Dawkins, evolutionary biologist, author

Computer programming

I have now kicked the habit, but every so often the craving returns and I must thrust it down and away. But whence the guilt? Isn't programming useful? In the right hands, yes. But my projects (inventing a word processor, machine translation from one programming language to another, inventing a programming language of my own) could all be done better (and were) by professionals. It was a classic addiction: prolonged frustration, occasionally rewarded by a briefly glowing fix of achievement. It was that pernicious "just one more push to see what's over the next mountain and then I'll call it a day" syndrome. It was a lonely vice, interfering with sleeping, eating, useful work and healthy human intercourse. I'm glad it's over and I won't start up again. Except ... perhaps one day, just a little ...


I think his description of computer programming is very accurate.

I suspect that many people are attracted to computer programming because at first, when you are learning it, it gives a constant series of little instant gratifications -- you can change something, reload or recompile, see the effects of your work.

This might explain many of the "computer people" stereotypes; impatient, unhappy with maintainence type tasks that show no immediate benefit, and generally "immature" from the point of view of others.

When you first start programming, you can write "hello, world" and get instant gratification in 5 minutes. The time required for that gratification increases as you go on. One of the reasons why people switch programming languages, is that they are trying to re-create the quick gratifications of learning the simple things all over again.


You could use the test driven development to regulate an interval between gratifications (the interval depends on granularity of your tests; more granularity corresponds to shorter time intervals).

Thus you can build a giant system and get instant gratifications every 5 minutes if you'd like to.


But any programmer smart enough to design such a system, would not get the gratification, because they would see through it, just as playing for hours in a computer game that you wrote is torture, but playing someone else's can be deeply absorbing.


In my experience the ability to develop large and complex software without much if any frustration, is one of the things which separates great hackers from mediocre ones.


Absolutely agreed! But do any such "great hackers" exist? Examples please.

A countervailing force is if it's easy, let's try something new.


I'm not sure I can name truly great hackers, but I absolutely know very good ones and sorta bad ones.

Here's what I mean by sorta bad. They are very smart people, they know the language, they can code and then some. They can work out very complex stuff, super complex algorithms.

But when working on a large project, over time they slowly start to wrap them selves up in such as a way as to quickly hit a wall of frustration. Their productivity drops 10 fold, and it's crawling on broken shards of glass from then on.

The other type of hacker, initially is indistinguishable from the first. Except that whey they work on very large systems, they seem to be able to almost smell where the code base is going.

They are able to keep a large architecture in mind, continually adjust it and adjust their code. Most importantly it seems they have a great intuition about which frustrations are worth pushing through and which you should go around of.

It's that kid of code foresight that great hackers have.


> they have a great intuition about which frustrations are worth pushing through

I agree that keeping a global view while working on the local is a great ability to have, and a lack of it will create nightmarish frustrations as projects become larger. But you're saying that great hackers still have frustrations, which is what I took issue with. Your "mediocre" hacker also seems to be extremely capable, when working in the local.


As a professional software engineer with a CS degree working in bio-informatics, I've had to deal with far too many brilliant scientists (but not computer scientists) who like to program.

They are without question brilliant people, but the code they produce is like the code I remember from the worst cs students from my days as a CS tutor.

A great mind with no formal programming training can code - but oh the horror, the horror...


As a professional software engineer, turned professional biochemist, turned back into a professional software engineer, I can assure you that the grass is always greener in the other profession. ;-)


The video games industry is full of physicists that for one reason or another though their programming module qualified them to become a coder... I share your horror.


I've seen men use database access libraries in lieu of arrays, leading to minutes of runtime that should've been ~5000 clock cycles.

shudder


I've seen Chemistry PhDs try to store the rational numbers in a database.

Yes that meant that 99% of the database entries were Null.

No they didn't know what a "one to many" relationship is. No they didn't realize or care that anything compared with Null is neither True nor False but Null.

Sure there was a way to get what they wanted with no Nulls and a database the fraction of the size, but they didn't care, they had PhDs.


It was a classic addiction: prolonged frustration, occasionally rewarded by a briefly glowing fix of achievement.

When you put it like that, I guess I have another addiction. I've been sitting around waiting many a year for someone to finally just say to me, "You don't really know what you're doing, do you?" So that I could reply, "That's what makes it fun!"

The frustration caused by it is probably why I smoke so damn much, though. Oh well, better frustrated than bored.


I don't remember exact instances, but I'm pretty sure I get to say that at least once a year.


My guilty pleasure is evolutionary biology.


I remember the very first time evolutionary biology made complete sense to me, back in high school. I remember when I first made the connection between the theories on how amino acids are formed and the way DNA is constructed and replicated. If you take that basic evolutionary premise, and you just extrapolate it to larger scales, it makes perfect sense and explains the way biological systems build on each other.

The aha! excitement of that discovery was so powerful, and not unlike the aha! I get when I finish writing some good code and watch it work for the first time.

The human body is just a machine in nature, after all, and DNA is sort of like its software.


Evolution as bootstrapping an interpreter for DNA code is an interesting idea, but I wonder how deep the analogy goes. There must be some simple biology fact that invalidates it.


You've seen the article "DNA seen through the eyes of a coder"?



No. Thanks for the tip.


occasionally rewarded by a briefly glowing fix of achievement

I guess that's what happens when you do it just for yourself. (Why else would you write a word processor, lanugange, or translator that's already been done so well?)

OTOH, find someone who actually needs something and write it for them.

In this way, programming can be a lot like sex. The "glowing fix of achievement" seems to last much longer when you do it with/for someone else.


Richard Dawkins wrote an evolutionary program for "The Selfish Gene". It drew these tree like graphs and evolved them over time according to some evironmental parameters (can't remember exactly. Was a preference for certain angles in composition). Very interesting. Was facinating at how "biological" the end products were. They were very reminicient of forms in nature.


Reminds me of the old Lazarus Long quote: "Writing is not necessarily something to be ashamed of but do it in private and wash your hands afterwards."


I can't imagine Zizek playing C&C


Dawkins rules. "The Selfish Gene" I think is one of the books which has had the most influence on me. That, and perhaps, "A brief history of time". I also am interested in genetic algorithms, a sort of "interface" between computer science and biology. In addition, the link to biology is further enhanced by viruses and spiders, and in more ways than just their names. :-)




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: