ThinkGeek - Cool Stuff for Geeks and Technophiles

Thursday, May 21, 2009

programming experiments

Bill the Lizard, in a post titled Programming and Experimentation, writes about his experience as a tutor of first-year CS students in college:

I would frequently have students bring code to me and ask me what I thought of it. Some would even go so far as to ask me if I thought their code would compile. I would never answer this question directly (despite Head First Java repeatedly urging me to "Be the Compiler"), but would instead patiently show them how to answer it for themselves. These students weren't lazy, they were scared. In many cases it seemed like they were more scared of being wrong than they were of not knowing the answer. [emphasis in original]


He then notes that curiosity is a trait shared by most or all of the best programmers, that curiosity leads to experimentation, and that a good teacher or mentor can impart that curiosity to others. It's a good post, well worth the reading.

But what jumped out at me is how this dovetails with something I read this week in Clay Shirky's Here Comes Everybody, on exactly how open source software threatens the proprietary model:

Open source is a profound threat, not because the open source ecosystem is outsucceeding commercial efforts but because it is outfailing them.


Shirky took a look through the project tree at SourceForge, and found that the vast majority of projects could not be considered successes in any sense of the word. But here's the key: Someone made the effort to start a project. Someone tried an experiment.

And a few, a small but significant number, built something worth using. Of these, most are niche software, useful to a few people. But a few have attracted a wide audience.

It's impossible to know at the outset which projects will be successful. What SourceForge and other open source project hosting sites provide is a platform for programmers to try something without a large up-front financial commitment. The more experiments, the greater the likelihood that someone will succeed.

That's why inspiring beginning programmers to try their own experiments is such a valuable gift. Bill the Lizard says it well:

If you show someone how experimentation works in programming, and you're enthusiastic about learning with them, they might catch the bug from you. I had very few students who were disappointed that I wouldn't just tell them the answers to their programming assignments. Most of them wanted to learn how to do it for themselves once they were convinced that they could.

Labels: , , ,