注:本文原创版权归 javasee 所有,转载请标明原文出处,以示尊重!
作者:javasee
原文:http://javasee.iteye.com/blog/988554
开源是一种开放的态度,与其说是 Open Source ,还不如说是 Open Mind ,一种愿意把自己的思想毫不保留地拿出来与大家分享的精神,也可以说是愿意把自己思想中的不足暴露给千千万万的人,对,毫不保留地暴露。
过去的五年里,虽然我所从事的工作所产生的脑力劳动成功并非开源软件,但是我一直保留着开放的态度,愿意把自己的思想拿出来,和同事们进行交流。记得在毕业那年,我有一种 “ 学完出师 ” 的萌动,于是把大学所学的知识都放到了一个小游戏里面,虽然代码量有限,也不是什么具有商业价值的东西,但是这个过程中,我结识了很多朋友,他们发邮件,我都做了回复,并且尽自己所能地与朋友们分享一些经验教训,也附上游戏的源代码。从得到分享与交流的快乐的同时,我已发现我慢慢爱上了 Developer 这个职业。
但是,程序员在一定程度上也是孤独的,相对于零星的交流,更多的是闭门造车。看文档,看 code sample ,上网所搜问题的解决方案,这是自我学习,以及工作的一部分。大概受上一辈的影响,小时候都听过“教出徒弟,打死师傅”的故事,特别是 IT 又属于知识产业,不少人开始对经验有所保留,可人的生命都是有限的,如果能将自己花费 10 天设置 2 个月悟出的结果,花那么 10 分钟交换给其他人,自己也能收益,那么我们为什么不主动、开放一些呢?
对同行人的勉励
当然,我是没有机会站在你们面前 —— 甚至是卑微的身份 —— 对你们说这些,我只是在这个角落,说一些自己想说,想劝说的话。
开放思想不是魔鬼,而是选择。
可能是竞争的残酷性,让很多人如同警惕的羚羊,发现开源,就像发现狮子一样,拼命飞奔,或者是想到了即将冲毁大坝的洪水,涂炭生灵,于是便战战兢兢地将核心竞争力放于保险箱中,画地为牢。而我的观点是,某些方面来说这是有道理的,因为专利、认证等等,都是保障发明者的利益,鼓励继续创新,同时又能保护唯一性,实现权威,但是它不并适用于 Language ,语言 —— 程序也是一种语言,是人与计算机交流的语言,程序员与程序员交流的语言,它只有纯粹的思想,本身不存在任何的价值实体,而真正的价值,是 “ 说 ” 出这些语言的人,以及这些人用语言做为工具,进行的劳动和劳动获得的成果。
说白了,就是 代码不值钱,服务才是最终体现价值的地方。
我觉得,那些觉得自己写出的代码就是自己最终劳动成果的人,就是对这个没有搞清楚。我从事的行业,有很多人跳过很多公司,手里有很多软件的代码,整套整套的,可是他们仍然碌碌无为,生活平淡,其中有些甚至将其作为商品,到处去卖,而不是以此为基础,通过自己的再改造而获得报酬。结果可想而知,买去的人读不懂代码的构架、精髓,实现不了服务于人的过程,最终造成损失。
开 IT 公司,最杯具的事情莫过于拿着一堆代码,一批机器,可是人去楼空。
既然是这样,为什么又有些企业害怕自己的代码流露到别人手里呢?
关键要看 是否对已经产生的服务造成影响 。举个例子,谷歌公司的多款产品都实现了开源,比如 Chrome 、 Android ,其本身也收购雇佣了很多开源软件的作者,可是它为什么不对 Gmail 的前端代码和后端代码开放?我觉得,原因在于谷歌是 Gmail 的直接服务提供者,现有的 Gmail 代码的公开会造成谷歌服务的不安全,对谷歌的用户造成不可估量的损失。相对而言谷歌不是 Chrome 、 Android 直接服务提供者, Chrome 的服务提供者是硬件及其操作系统制造者, Android 服务提供者就纯粹是手机厂商,而选择开源对谷歌自身没有坏处,甚至在背后还会有不可估量的利益,为何不去开源?
另外 软件没有完美的时候,因为服务没有尽头 。
这个也是我从事 IT 行业 —— 这个所谓第三产业服务业,几年来得出的结论。写出了软件,实现了最初的需求,用户拿去用两天没有问题,付了钱,就可以说完事了么? 远远没有完! 用户的使用也是有一定条件的,一定环境的,只要条件一改,环境一变,软件就会出现错误,运行得出了错误的结论,世界上没有先知,更何况是水平各异的程序员组合在一起开发的程序?
bug 的产生不仅仅出现在软件产生的过程中,而是要伴随软件一生的,什么时候软件停止使用了,什么时候 bug 也就不会存在了。剔除某些环境下程序的 bug ,也是一种价值的体现。
还想再说点。
记得在我第一次买笔记本电脑的时候,很不解的发现,竟然三年的售后上门服务卖的这么贵,而且还作为一个卖点来宣传,如果我的电脑自己保养得很好,不出故障,岂不是这个钱白花了?现在想起来,又觉得自己很幼稚,生产电脑的生产线和装配工,就像肯德基里面的小工一样,大多数时候,他们做着自己不知道任何原理的操作,娴熟而又不知疲倦,迅速生产出来的电脑除了原料成本、知识成本,他们的价值体现的十分低。而上门维修的外派工程师则不一样了,我曾经见过他们要和各种各样的客户打交道,分析不同机型,不同的环境,给出不同的解决方案,相对而言这个价值则要高很多很多。所以即便是电脑质量,事故率很低,笔记本生产商也不敢降低售后服务的价格和标准。
高傲 ,也许是程序员一个共同习惯,通常他们会有较好的逻辑思维能力,有更多探索欲望,面对单调的屏幕、闪烁的光标有更多的耐心。可是他们 —— 哦,不对,应该是我们,仍然有很多自己所不能完成的事情。
分享到:
相关推荐
敏捷团队的绩效考核pdf文档,帮助您理清技术团队中绩效考核的问题所在
根据他们所在的团队将玩家移动到团队讲话渠道。 重玩和类似的游戏模式特别有趣。 概述 提供的功能是使用两个组件实现的。 第一个组件是sourcemod插件。 此插件仅负责传达团队变更。 另一个组件是一个Web服务,它与...
系统的主要功能有个人资料管理,团队服务,发布志愿者活动,时长管 理,日志管理等。 系统操作介绍 个人资料管理 1、进入系统 2、点击头部的"志愿者注册"。 3、进入资料填写界面,填写个人资料,注意仔细选择"注册...
存在的主要问题电商成功人士三大必备技能-沟通有效的沟通技巧有效的肢体语言成熟沟通的十大法则高效沟通的基本步骤拿起沟通的武器,发自内心的告诉团队行业人才的现状,帮助大家一起成长,是你的职责所在;...
环境要求:PHP 5.6或以上且需要安装PDO扩展、GD库MYSQL 5.5或以上安装使用:>下载并解压程序至您的HTTP运行环境所在目录。 >没有配置虚拟主机,则访问Public目录。反之,请将虚拟主机目录配置到Public >根据安装...
取鼠标所在窗口的窗口信息.zip易语言项目例子源码下载取鼠标所在窗口的窗口信息.zip易语言项目例子源码下载 1.合个人学习技术做项目参考 2.适合学生做毕业设计参考 3.适合小团队开发项目参考
idkgaming.github.io 全球最佳团队的所在地
经验,年龄,教育程度和其他变量以及团队所在地的城市人口都具有影响力。 球员是否转移到其他球队,他们的健康状况(以BMI衡量)和其他变量都会显着影响薪资,并且在不同国家/地区的不同管理环境不会产生任何显着...
PKS Telementry团队的所在地。 或在#pks-telemetry-eng的找到我们 设置工作站 要设置工作站工具和配置,请运行setup > ./setup 做出决定 是我们知道的唯一vim 猫是我们认识的唯一的猫 搭建环境 要设置环境变量以...
1996 年,他离开了 Microsoft,转向自己的其他 兴趣所在,包括咨询、在小学教学,还建立了自己的家庭。2003 年,他回到了 Microsoft,从事 Visual Studio Team System 方面的工作,在这里,他参与了项目的多个...
解放队Rust图书馆团队的家。 图书馆团队开发了Rust标准图书馆的面向用户的一面,在Rust组织中维护了板条箱,并为图书馆建设者的广泛生态系统提供了支持。要闻速览在哪里找到我们:您可以在上与我们。 日历:您可以在...
笔者所在团队从2011年起开始负责微博Feed系统的后端研发,历经了技术体系由PHP转为Java的平台化,也经历了产品驱动由PC专项客户端的移动化,并从2014年开始参与Feed策略相关研发。其中经历了技术团队成长的各种问题...
1、业务方面你所在业务线的 新入职的软件测试工程师如何快速融入团队 软件测试新人要学习的东西很多,先学什么后学什么?该如何分配?这是新人指南知识沉淀中整理出来的,大家可参考下:业务、技能、工具、流程……...
在本文中,我将探索在敏捷时代,建模方法依然适用并且扮演关键角色的所在。尤其在开发规模扩张到多个团队后,对整个系统的“BigPicture”达成共识将变得非常关键。虽然代码表现了事实,但它并没有表现事实的全部–...
尽管刮板程序可以找到团队所在城市的位置,但不一定能找到团队工作区的确切位置。 自定义团队的位置,可以使团队的标记显示在工作区的确切位置。 定制团队职位的说明: 分叉存储库。 打开data/custom_locations....
依赖项所在的团队称为“接收者”。 创建依赖项的故事时,团队遵循的过程如下。 发行团队负责在创建故事时执行以下操作: 用带有文本“ Dependency”的标签标记故事。 使用以下格式的标签标记故事:“发布者:...
与团队其他成员所在时区不同或工作时间表不同的任何人,都有一天的不同时间在异步工作。 如果每个贡献者需要每5分钟检查一次其通信工具以使用它,则无法进行重点工作。异步通信对于能够集中精力一个小时或更长时间至...
关于枚举的小小类型,学习枚举的校资料。请多多指教
通用团队Wiki 通用团队项目的Wiki和保存研究文档在本地运行要在本地测试站点,请运行以下命令安装Jekyll: gem install bundler jekyll然后跑bundle install然后,您可以通过运行以下命令来运行站点: bundle exec ...