醒醒吧,开发语言只是你手里的扳手

  1998年,我还在MOT做一名生产线主管,每天跟各种贴片机、工业设备打交道。当时最困扰我的问题是,贴片机(就是往电路板上放元件的机械手)的损耗率很大,大约有5%比例的微型元件在这个过程中被机械手因为种种原因丢弃或打坏。毕竟是MOT财大气粗,请了不少小时工资几百美金的专家来调试,依然效果不佳。最后得出结论,是机器太老旧,所以在一番决策之后,决定把贴片机整个换掉,换成最新的设备。结果是,损耗率是下来了,但依然没有控制在我们理想的范围当中。

  一年后,正赶上MOT的大好时光,手机大量出货,因为产能不足,就把充电器等附件的生产外包给了同在天津的民营企业加工,我作委托方的监管人员,每周到那个厂家巡视一圈,监督他们生产工艺是不是遵循了MOT的标准等。慢慢的,发现问题了:我们给他们的原料,总是能被他们生产出更多的产品,原本在我们这边只能生产1000台充电器的元件,给了他们,可能就能做出1050台,这令我们非常诧异。经过仔细观察才发现,他们的贴片机损耗率才0.3%!足足低于我们十倍多,而使用的设备恰恰是我们一年前淘汰出来,低价卖给他们的老旧设备。

  真的是设备不行么,当然不是,因为老旧设备一样被他们做到了0.3%的损耗率,而我们的新设备,当时的损耗率还在2~3%上下徘徊。后来专门开了分析会,才知道人家民营厂家的操作工的技术,都远远超过MOT技术员对系统的了解,他们可以hack到设备的工控机里面,调整非常微小的工程参数,以确保图像识别的精确,而我们的技术员,只懂得按厂家的说明书去傻傻的操作,结果令领导很震惊,但在外企的那种体系之下,后来也就不了了之了。今天的结果大家恐怕都知道了,无论是MOT还是Apple,大多数的生产都包给了富士康──不是自己不能做,而是成本太高且在那种体制下根本无法有效解决。

  语言之争,从我在MOT,兼职做网站的时候就产生了,基本上是每个技术站的月经话题,每月都会吵一通,最早是perl和CGI的争、后来是asp和php,再后来是.net和java,再后来到今天因为有了更多的选择,所以有了更多的争。有时我在想,是不是csdn火爆的今天,就是语言之争带来的呢?

  跟大多数程序员一样,最早写代码,是从basic -> vb开始,后来开始web开发,自然而然的拿起了asp,后来是vb.net、c#,然后做WAP和短信业务、跟运营商打交道做BOSS,所以抄起了Java和J2EE,再后来转入LAMP,做PHP开发。到今天已经不怎么写代码了,但还是业余时间搞了搞Python、OC之类的东西,顺便还研究了下嵌入式系统,做了威众的一些工作。

  整个过程下来,发现自己也接触了不少语言和架构,但在MOT的经历一直在敲打着我——工具是最其次的东西,使用什么工具、工具用的好不好、能不能解决问题,往往并不在于工具本身如何,关键是人的因素占主要,同时要通盘考虑到产品需求、研发人员的招聘难度,现有的平台和技术等等。曾经我也很纳闷和郁闷,为啥WAP这么简单的一个东西,公司要坚持用JAVA来开发,用php难道不更好么?后来想了很久,才自己明白过来,公司以前是做运营商系统出身的,现有的开发人员、平台、规范甚至运维人员,对这个平台最熟悉,如果为了开发效率,贸然换到php,就意味着整个技术团队要跟着改变,不仅浪费更多的时间,甚至会因为人员不熟悉新语言新平台,得到适得其反的结果。

  当然,作为一个技术人员,保持对新技术的敏感是最要紧的事情。我一直认为,在地球上,只有程序员和医生这两个职业,是必须要终身学习的。但对新技术的敏感,并不代表一定要去实践,甚至在下一个项目里面贸然用上自己并不熟悉的架构,正确的做法是,通过对新技术的了解,开拓思路,在处理新问题上做到触类旁通。比如,我就曾经利用php里面的某些特性,引申到java里面来快速的解决一个问题,反过来也有很多例子。当然,像OC这种你不学,就不会进入到一个新世界的语言,不在我们的讨论之列。

  我往往会鼓励刚刚毕业的新人多学习新技术,每多接触一个新技术,就为你将来的职场之旅多了一个选择,而且可以举一反三的增加你的经验值,要知道,所有语言都是相似的,语法不重要,重要的开发思想和习惯。而已经走入职场的老手,对新技术,关注就是了,实践证明,贸然转型,往往会遭遇到极难堪的结果。

  程序员也是工程师,而开发语言只是你手中的扳手而已,是长把手的,还是短把手的,无甚差别,只是在不同场景下是不是顺手而已,但,只要用好都是可以解决问题的。当然,如果你一定打算拿扳手当钳子去用,就当我全是白说吧。

你可能感兴趣的:(程序员)