写给迷茫而兴奋的程序员
有时有些迷茫而兴奋的程序员会发布这样的消息:
大家好!我刚学会Erlang/Haskell/Python,现在想找个大项目练练手。如果你有什么好主意,一定要告诉我!
或
我喜欢Linux和开源,想开发一个项目为社区做点贡献。有没有这样一个重要的程序,它只有Windows版,而你想开发Linux版呢?
这些错误的请求方式令人困惑。焦点都放在了程序语言、操作系统和软件许可上。根本没考虑到解决问题,有用性,或者程序跟最初信息发布者之间的关系。你会相信一个不懂音乐的人开发的音符软件吗?你会相信一个从未用过Photoshop的人开发的Photoshop复制品吗?
这些人不妨看看以下建议:
静下心来,想想你的个人兴趣,然后解决和你的个人兴趣相关的一个简单问题。比如我跟着一个打鼓机学吉他,但我想给鼓添加点人性化元素,比如自动填写等功能。于是我写了一个打鼓测序程序,没有图形用户界面,试了试效果。我还拍了很多照片,并使用了一个标签方案(tagging scheme)。这事很简单,我一个下午就搞定了。
关键有两点:(1)简单,(2)开发点你会真正使用的东西。
取得初步成功之后,你就可以开发一系列改进版本。不要急于求成,一下子拿个公测版出来,只需检查现有程序,不断改进就好。我可以给自己的图片标签器添加一个HTML5前端界面吗?
如果坚持重复几次,你就会成为一个专家,或许这个专家仅限于解决你的个人问题,但别拿豆包不当干粮。成为一个专家还有一个好处:你可以尝试以前看似神秘甚至不可能实现的改进和功能。正是这些改进和功能有可能突然之间让你的程序一炮走红。