没有发布过产品的程序员不知道什么是真正的软件

看起来好的程序员似乎总是短缺;这是为什么编程是如今薪水最高的职业之一。但事实上,程序员从来不短缺的。是公司们总希望市场上有更多的资源可用,当遇到不同的业务时,他们有更多的余地来找到合适的人。但今天我不是来说这些普通程序员的。我感兴趣的程序员是那些热爱他们的技艺,渴望创造出有意义的东西的人。

    这样的程序员,在开启他的职业生涯时,在尝试进入他中意的公司时,他需要崭露头角。有些公司在招聘是会写一些诸如“我们招聘时考察他们所做的开源项目”等的话。在我们 Rendered Text公司的招聘广告里,我们总是会提到这样一个要求:应聘者需要至少有一次发布产品的经验——以开源或其它的形式。这样的话没有上下文通常会让人困惑,所以我打算把我的意思更详细的说明一下。

    这里的“发布产品”指的是什么?

    年轻的程序员,由于缺少经验,常常不知道这样的事实:写代码只占一个软件出品过程中很小的一部分。借用Frederick Brooks著名的《人月神话》一书里专业的描述:它只是一个软件程序诞生的开始。编码这部分活动很独立,这个过程中没有用户,不跟其它各种软件系统交互。这是最容易完成的一部分工作,因为基本上自己闭门工作,我们可以随时声明代码“完成了”。

    而真正要开发出一个软件产品则复杂的多。作为产品,你需要把它打包装箱发布给公众。桌面应用需要方便安装。如果是一个代码库,你需要完善里面提供的API,重构代码提供更好的服务,附带测试程序,还有写文档,编写和发布出版说明。当所有这一切完成后,你进入了一个维护阶段:你需要和用户交流,或和一些开源捐赠者交流。你将重新进入这种开发和发布新版本的过程。

    举个例子,在GitHub上发布一个音频压缩算法的源代码,这不叫发布产品。而一个程序包,提供了多个版本,被成百上千的开发者下载、使用,这则是一个产品发布行为的明显特征。

    大多数的软件都需要跟其它系统进行交互,以此来发挥功能和提供服务。你必须保证你的程序高效稳定。例如,一个web应用需要用到数据库和系统内存。起初,从远程API提取数据不会有什么问题;而经过一个较长的时间、系统用户增加,如何能容易的升级扩展则是另外一个问题。

    好的软件是指在生产环境、在用户手中好用的软件,而发布产品动作就意味着你要开发出好用的软件。所有的软件公司都希望招聘到一个发布过产品的程序员。但很多程序员,有些有着高超的编程技能,但却只知道闭门编码。当然,公司招聘一个程序员要看很多方面,但如果你曾经有过参与一个软件产品出品全过程的经验,你绝对是任何一个好软件公司的优选选择。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值