Sharpening the Saw

As a software developer, how do you sharpen your saw?

Sharpening the saw is shorthand for anything you do that isn't programming, necessarily, but (theoretically) makes you a better programmer. It's derived from the Covey book The 7 Habits of Highly Effective People.

This is a companion discussion topic for the original blog entry at:

Looks like this post has pushed the following onto the front page of Hacker News:

Poll: Ban Codinghorror? (

I find to be a good source of knowledge as well. What I do is find highly ranked (4000+) members and then look at the questions they’ve participated in. I then look at their most highly ranked answers. If an answer has 30+ votes, it’s usually worth knowing about.

The daily grind will sharpen your saw.

Well I just went to Hacker News to sharpen my saw and immediately saw a post with a poll to ban Coding Horror articles (apparently Jeff’s writing is not up to their high standards). The comments were seemingly written by a bunch of whiny little girls just complaining about this blog and others and offered no education other than now I know not to visit that website. So no saw sharpened there today, just disappointment.

@Ray Vega:

Wait, they’re upset that he linked people to their site and it might increase traffic?

I think the expression you’re doing it wrong applies here somehow…

I just had to comment on the hacker news poll to ban coding horror. These guys just appear to be tremendous douchebags. |wah| I don’t want any readers from coding horror visiting our site. |\wah|
Cry me a river…moron.

ROFL, o.s., i find that hilarious. Do you blame them for not wanting people of Coding Horror visiting their site? Jeff is a glorified writer, amature programmer, banking on his successful blog mostly read by college grads who know no better.

Um, does going to meetings count?

I have never been to a meeting that made me a better programmer. Not even theoretically. Nor even claimed to.

I have been to conferences and workshops that made that claim. But never a plain old meeting.

Meetings aren’t intended to make you a better programmer, in the sense of improving your individual programming skill. They are to make your team a better team, or your manager a better manager.

See that picture of the two guys working a whipsaw? Imagine one of them has no idea how that saw works, or that there’s another guy on the other end. If you’ve never used a whipsaw before, it only works when you pull it. If you try pushing it, it jams. Know your tools. Know your team. Know your part.

@Phil: mostly read by college grads who know no better.

As opposed to non-college grads who think they know better?

In King Solomon’s Mines there is a great quote:

I frequent daily. I knew of reddit but for one reason or another just never went there. I find stories on hacker news show up about 4 or 5 days later on slashdot …

I think that as long as you are constantly going out of your way to learn new ways to use your language(s) of choice, you’ll be just fine. I go out of my way to see how other people solve a problem that I’ve just solved to see if I did it efficiently or not.

I think the worst thing a programmer can do is just find code and use it without understanding it. Hack it up a bit. Get in there and learn it. Sharpen your skills and increase you knowledge by understanding what you’re telling the computer to do.

I try to use StackOverflow as a saw sharpener. I justify it to myself as I’m using it to become a better programmer, though sometimes it’s just because it’s fun.

I like the analogy.

Personally, I have a very immature programming project at home that gives me an excuse to pick up new languages and consider different development methodologies.

Of course, it’s only one project. Different projects require different tools. There’s a difference between selecting between multiple tools for a single job and selecting between multiple jobs for a single tool. The latter provides a better framework for gaining a strong understanding of multiple tools.

In short, having a suite of personal projects is a great way to learn multiple tools.

Sites like Hacker News and proggit provide awareness of different tools and concepts, but having a way to apply those ideas is the only way to get any real benefit out of it.

Y Combinator, a venture capital firm in which Paul Graham is a partner, funded reddit. It’s no coincidence that the two sites share similarities.

I think the worst thing a programmer can do is just find code and use it without understanding it. Hack it up a bit. Get in there and learn it. Sharpen your skills and increase you knowledge by understanding what you’re telling the computer to do.

In other words, Don't Be Afraid to Break Stuff

Here is a dump from my RSS reader for the code folder. These are somewhat tailored to web-development.

A List Apart
Ajaxian » Front Page
Beautiful Code
Blog - Stack Overflow
Carnal0wnage Blog
Coding Horror
Hacker News
High Scalability - Building bigger, faster, more reliable…
Javascript Kata
Joel on Software
Paul Graham: Essays
programming: what’s new online
Rands In Repose
Six Revisions
Stevey’s Blog Rants
Stevey’s Blog Rants
Uninformed Journal
Worse Than Failure

Hacker News and Reddit have decent content, but their RSS feeds absolutely suck. Each item contains just the title of the post, and you have to click through to see the content. I want the content in the reader, dummy!

Um, does going to meetings count?

Also DZone is an excellent resource of programming related articles.