没有发布过产品的程序员不知道什么是真正的软件
2014-02-20 19:49
691 查看
看起来好的程序员似乎总是短缺;这是为什么编程是如今薪水最高的职业之一。但事实上,程序员从来不短缺的。是公司们总希望市场上有更多的资源可用,当遇到不同的业务时,他们有更多的余地来找到合适的人。但今天我不是来说这些普通程序员的。我感兴趣的程序员是那些热爱他们的技艺,渴望创造出有意义的东西的人。 这样的程序员,在开启他的职业生涯时,在尝试进入他中意的公司时,他需要崭露头角。有些公司在招聘是会写一些诸如“我们招聘时考察他们所做的开源项目”等的话。在我们 Rendered Text公司的招聘广告里,我们总是会提到这样一个要求:应聘者需要至少有一次发布产品的经验——以开源或其它的形式。这样的话没有上下文通常会让人困惑,所以我打算把我的意思更详细的说明一下。 这里的“发布产品”指的是什么? 年轻的程序员,由于缺少经验,常常不知道这样的事实:写代码只占一个软件出品过程中很小的一部分。借用Frederick Brooks著名的《人月神话》一书里专业的描述:它只是一个软件程序诞生的开始。编码这部分活动很独立,这个过程中没有用户,不跟其它各种软件系统交互。这是最容易完成的一部分工作,因为基本上自己闭门工作,我们可以随时声明代码“完成了”。 而真正要开发出一个软件产品则复杂的多。作为产品,你需要把它打包装箱发布给公众。桌面应用需要方便安装。如果是一个代码库,你需要完善里面提供的API,重构代码提供更好的服务,附带测试程序,还有写文档,编写和发布出版说明。当所有这一切完成后,你进入了一个维护阶段:你需要和用户交流,或和一些开源捐赠者交流。你将重新进入这种开发和发布新版本的过程。 举个例子,在GitHub上发布一个音频压缩算法的源代码,这不叫发布产品。而一个程序包,提供了多个版本,被成百上千的开发者下载、使用,这则是一个产品发布行为的明显特征。 大多数的软件都需要跟其它系统进行交互,以此来发挥功能和提供服务。你必须保证你的程序高效稳定。例如,一个web应用需要用到数据库和系统内存。起初,从远程API提取数据不会有什么问题;而经过一个较长的时间、系统用户增加,如何能容易的升级扩展则是另外一个问题。 好的软件是指在生产环境、在用户手中好用的软件,而发布产品动作就意味着你要开发出好用的软件。所有的软件公司都希望招聘到一个发布过产品的程序员。但很多程序员,有些有着高超的编程技能,但却只知道闭门编码。当然,公司招聘一个程序员要看很多方面,但如果你曾经有过参与一个软件产品出品全过程的经验,你绝对是任何一个好软件公司的优选选择。 |
相关文章推荐
- 没有发布过产品的程序员不知道什么是真正的软件
- 没有发布过产品的程序员不知道什么是真正的软件
- 作为一个初学者或者进阶者,这并没有什么错。当一个有能力的程序员而不是领导者,这也没有什么错。真正的错误是,当你知道应该如何去提高时仍然选择做一名初学者。
- 如何实现软件产品的自动化构建和发布
- Eclipse的工程发布到tomcat下,为什么webapps什么都没有????????
- 什么才是真正的程序员
- 一个开发团队、软件公司,团队工作氛围很重要,没有好氛围难出好产品、好项目
- 究竟什么才是真正的软件测试?
- Google发布Spreadsheets,没有什么是Google做不到的。
- [置顶] 软件开发中,做产品与做项目有什么区别?
- 什么是真正的程序员
- 没有工业软件 谈什么智能制造转型
- 一个开发团队、软件公司,团队工作氛围很重要,没有好氛围难出好产品、好项目
- 程序员在互联网公司和行业软件公司工作,有什么区别?
- 给些网络视频教学也行啊 请教高手给我指点下 要买书也不不知道买什么好 我一点基础都没有 但不知道怎么学 我想学习C语言 谢谢了
- 还有什么能比整个软件完全由你设计开发更让程序员开心的事呢?
- MongoCola Web化 -- 1. 是不是什么软件都要Web化的讨论 2.新公司,新起点 3.MongoCola 新版本发布
- 收藏:偶要用delphi写几个dll来公开发布出去,让其他工具的程序员调用。应该注意些什么事项 关键字:分类 :个人专区密级 :公开
- 一个开发团队、软件公司,团队工作氛围很重要,没有好氛围难出好产品、好项目
- [置顶] 软件开发中,做产品与做项目有什么区别?