Programmer Fluency

A few weeks ago I came across a really interesting comment on Slashdot (I think I found it linked on Hacker News).
A poster by the name of wrook posted this comment that deserves to be widely read.

I’m quoting some of it here (all credit to the original poster).

My current theory is that programming is quite literally writing. The vast majority of programming is not conceptually difficult (contrary to what a lot of people would have you believe). We only make it difficult because we suck at writing. The vast majority of programmers aren’t fluent, and don’t even have a desire to be fluent. They don’t read other people’s code. They don’t recognise or use idioms. They don’t think *in the programming language*. Most code sucks because we have the fluency equivalent of 3 year olds trying to write a novel. And so our programs are needlessly complex.

Those programmers with a “spark” are programmers who have an innate talent for the language. Or they are people who have read and read and read code. Or both. We teach programming wrong. We teach it the way Japanese teachers have been teaching English. We teach about programming and expect that students will spontaneously learn to write from this collection of facts.

I think that being fluent is the most important skill a programmer can have. It leads to more maintainable and readable code. Any idiot can write code that a machine can understand, only a great programmer can write code that other people can understand.

Tagged , , , ,

2 thoughts on “Programmer Fluency

  1. robot videos says:

    Interesting, never been thinking about programming this way, but you might be right. I’ll try to read other’s code more often 🙂

  2. Tom says:

    Completely agree, a lot of programmers cant read their own code, let alone someone else’s.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: