马无夜草不肥:程序员做业余项目的重要性
导语:编程是一种创造过程,业余项目允许程序员在没有截止日期或各种限制的条件下,以探索形式编程。业余项目之所以重要,有以下几个原因。
探索新技术
每天都会不断有新技术出现,而业余项目则是最佳的试验场。作为业余项目,你不必为bug或者性能问题担心,即使网站崩溃也没有问题,因为你不靠它来领薪水。
从头创造
我所从事的大多数都是为现有的产品做一些维护,增加一些新特性,修复bug,解决性能问题,重构现有代码。虽然我也从头编写过一些软件,但这些基础工作只需要一两个月,接下来我又进入维护模式了。
业余项目经常需要从头构建。我喜欢这个步骤,因为我不但复习了已经掌握的所有东西而且把它们应用到创建一个新的(更好的)项目中。
易于启动
进行业余项目也是一项避免分析瘫痪(analysis paralysis)的练习。如果你从头开始会有各种各样的可能性。避免的方法是给出一个短列表上面列出所有必须具有特性,接下来启动一个beta版本实现那些特性,即所谓的最小可行性产品。
编注1:分析瘫痪:对某个问题由于过度分析或过度思考某种情况,以至于没有作出决定或者采取行动。在不同的领域,分析瘫痪有具体的解释,详见维基百科Analysis paralysis词条。
编注2:最小可行性产品:指发布所必须的最小功能集合,通常作为产品原型发布给乐于尝试并提供反馈的客户。
避免精疲力尽
为你的热情工作,为乐趣而工作。如果你是一个开发人员,但由于不喜欢现在所从事的工作而感到精疲力尽,试着去做一个属于自己的业余项目吧。它会让你回味为什么编程是如此的有趣。
保持你的技能不会落伍
也许你日常工作使用的是过时的技术。也许你对自己目前掌握的技能感到厌倦,想要去学一些新技术。业余项目是跟踪软件最新潮流的最佳办法。没有尝试过node.js?太好了,用它去做一个小的项目。突然之间,你会发现你有新学会的技术可以炫耀了。
完成你的业余项目
对于业余项目,一个问题是它们可能始终没有完成。刚开始的时候你充满热情,但是2个月之后你甚至不记得上一次做项目是什么时候了。尽管如此,还是应当将项目向前推进并完成它。写完这些,我要去完成自己业余项目了。