给盲目兴奋的程序员们的建议

我偶然看到一些漫无目的、精力旺盛的程序员说出类似这样的话:

嘿,大家好!我刚刚学会了Erlang/Haskell/Python,我正在找一个大型项目用它们去写。如果你们知道,请告诉我!

或者

我喜欢Linux和开源软件,我想通过开发一个项目来向开源社区贡献我的力量。有没有一个很重要的软件,但只能在Windows上运行,而你希望有个Linux版本的?

这些找不着方向的问题总是让我困惑不已。他们把程序语言或操作系统或软件许可协议当成关键条件。他们的目的跟解决某个问题或跟创造价值或跟说话人对软件的兴趣没有一点关系。你能相信一个不爱音乐的人能开发出一个好的乐谱软件吗?对Photoshop没有专业了解的人能克隆出一套Photoshop软件吗?不过我不想在这里详细讨论这些负面的问题。

下面是我对那些发出这些问题的人的一些建议:

停止发问。想一想你所有的个人兴趣,去解决一个跟你这些兴趣相关的简单的问题。例如,我用电子琴来联系我的吉他技能,但我想给这电子声乐里加入一些人性的元素,像自动音效补偿,偶然的变奏,等等。怎样才能做到这些呢?我可以写一个简单的声乐处理程序——不需要图像界面——看看效果如何。我照了很多的照片,我需要一个照片分类标记工具,不需要像Adobe Lightroot那样全能。简单但够用,一个下午我就你解决此类问题。

两点:(1)要简单,(2)是你实际要用的东西。

一旦做出能够运行的东西,接下来的工作是要一步步的改进。不要试图做出一个可以对外发布的版本来给自己制造压力,你只要花时间多看看现有的程序,改进它。我是否能用HTML5来实现我的照片分类器的前端界面呢?

如果你坚持这样,用不了多少回,你就会成为一个专家、一个对于一个界限清晰、也许只是跟你的问题相关的小领域里的专家,但,仍然是个专家。成为专家有一个有趣的边际效应:有些之前看起来令人畏缩、好像不可能的改进工作或功能特性,当你尝试着开始去做后,你的程序很可能因此而突然显现出吸引力,受到广大用户的关注。

[英文原文:Advice to Aimless, Excited Programmers ]
分享这篇文章:

12 Responses to 给盲目兴奋的程序员们的建议

  1. altman says:

    谢谢!受益匪浅

  2. julio says:

    的确,兴趣可以让我们选择什么行业,兴趣依然左右着我们在已经选择的行业里去做什么样的产品!从最切合需求的实际出发,才能做出真正有用的东西!当然了,也可以去做一些“盲目”的开源软件来锻炼自己O(∩_∩)O~

  3. Kenny Yuan says:

    会说这种话的人,多数也就是吼一吼而已吧?按相关度来说,我认为会这样讲话的人,和“不靠谱”的相关度贼高

  4. 蜗牛 says:

    呵呵~~ 不瞒大家,我当初开始学习java的时候也是想自己独自写出一个超NB的软件来~~

  5. oppih says:

    论坛上遇到问『本人想将学习工作 逐步迁移到linux下,怎么开始』『想学习perl, 求推荐入门级别书籍』『想学文本编辑器,求推荐!』『 对linux特别感兴趣,以后可以干什么啊』这样这样的就想拍人。同学你能先开始动手不?

    • xwsoul says:

      对于想入门linux的人,我的建议向来是,格式化你的windows,当你熟悉的时候再双系统…如果一个人总是在那里想着linux下到底有何种软件来代替windows下的xxx…他永远也学不会linux

  6. xwsoul says:

    当我逐渐迷失的时候…这个文章出现了 Thanks !

  7. liaoyu says:

    这个建议很棒

  8. Yonghang Jiang says:

    因为自己需要一个漫画下载器,所以我就写了一个IFComicDownloader。
    然后数年来往里面逐渐追加技术,诸如libcurl、lua、sqlite甚至还注册了个免费的域名来在线存放-下载脚本包。

  9. 张云鹏 对这篇文章的反应是赞一个
  10. JECYGAN  这篇文章, 并对这篇文章的反应是赞一个

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据