赠与那些斗志昂扬却漫无目的的程序员的建议

赠与那些斗志昂扬却漫无目的的程序员的建议

我偶然看到几则讯息,来自于一些漫无目的却斗志昂扬的程序员:

Hello,大家好!我刚刚学会 Erlang/Haskell/Python 语言,现在我急需一个大大的项目来验证我的能力,如果各位有什么好主意,请告诉我哦!

或者

我热爱 Linux 和开源,并且非常希望能启动一个项目以回馈社会。有没有什么重要的程序原先只在 Windows 下运行的,而现在你想要来个 Linux 版本的?我非常愿意和你协作。

这种完全搞错了方向的请求真心让我无语。解决问题的关键不是看你有没有编程语言或者操作系统或者软件的许可证。说实在的,解决现实中的问题光凭许可证那肯定是不行的。话说,你会相信一个不搞音乐的家伙写的乐谱吗?会相信一个从没专业地使用过 Photoshop 做的 ps 吗?关于这消极的一面我就不多说了。

下面是我给这些来咨询的人的建议:

先好好想想所有的个人爱好,然后试着用它们去解决相关的小问题。例如,我是跟着鼓机的节拍练习吉他的,但是我希望能够在循环的鼓声中加入一些智能化的元素,如我停顿的时候能自动填充,以及会偶尔产生个小变化等等。那么我该怎么做呢?我先是写了一个简单的鼓测序程序——甚至都没有 GUI(图形用户界面)——然后测试。又比如,我拍了很多照片,这样我就能使用标注而不必再看像 Adobe Lightroom 这种万能程序的眼色了。

有两个要点要牢记:(1)保持简单,(2)成品是实际有用的。

一旦做出能够运行的东西,接下来的工作就是一步步改进,不要老想着一下子就能写出一个能发布的完美版本,殊不知一口吃不成个胖子,这样只是徒增压力而已。要用长远的角度看自己写出来的程序和应用,一点一点让它们蜕变,直到有一天变成蝴蝶轻舞飞扬。按照这种方法,你猜猜,我是否能用 HTML5 来实现照片分类器的前端界面呢?

如果我们能够坚持不懈、持之以恒,那么我们将会成为这方面的专家。 即使是狭义的,或许只是跟我们的问题相关的小领域里的专家,但是,那也是专家了。成为专家会产生一个挺有意思的边际效应:有些先前看起来十分吓人、似乎是不可能的改进工作或功能特性,我们现在就可以尝试着开始去做了。而我们的程序通过改进或许立马魅力爆棚,吸引广大用户的关注。

相关推荐