我曾经不止一次听到软件经理或招聘经理说——好的程序员是万能的!他们说,如果很不幸地,一个项目组长选择了F#作为开发语言,而外面暂时找不到太多懂F#的人,那么完全可以让那些有多年开发经验的程序员来接手,虽然他们不懂F#,但很快就可以上手。
他们也可能会说:“我知道他们是做前端的,但现在需要他们开发后端程序。他们都是很好的程序员,这对他们来说小菜一碟。”
如果你相信这样的鬼话,那么我可以告诉你,我完全可以去创办一个公司,向爱斯基摩人贩卖冰块,而且很快就会估值过亿。我确信可以做到,只等你们投钱了。
有时候我想,要不要在简历里写上”被证实具备技术快速上手能力“这样的话,这样我就可以去任何一家公司了!
我们不妨以编程语言为例。我确实使用过多种编程语言,从Scala到C#,再到Java和JavaScript。我可以在几周内掌握具有C语言风格语法的编程语言,其他的则会长一些,总之就是刚学了一门新语言就直接让代码进生产环境。
编程语言可以赶鸭子上架,那么业务知识呢?我曾经在多个业务领域工作过,包括健康、电商、教育和电信。那么我是否可以认为自己也可以胜任社交媒体领域的工作呢?制造业呢?航空航天呢?加密货币呢?
去年,我是一个全职的Java Web服务开发者,同时也和另一个团队使用Ionic框架开发一款移动应用。Ionic框架是由Angular、TypeScript和一些自定义包组合在一起的。这个项目为期八个月,而我也是在项目接近尾声时才适应了这种Ionic+Angular+TypeScript的开发方式。
项目结束之后,我重新恢复到原来的状态,并没有成为TypeScript开发者或移动应用开发者。这不是掌握语言与否的问题,而是经验问题。八个月根本不足以让一个人成为某个领域的专家,我想任何一个有过类似经验的人都会同意我的观点。
一个在某一门编程语言方面有多年经验的开发者可以毫不费力地使用该语言解决问题,他们胸有成竹,可以随心所欲地组合标准库和第三方库开发出新的功能,他们解决问题就像用一把钥匙开一把锁那样手到擒来。否则的话,他们就有可能重复发明轮子,甚至浪费资源。
每一门语言都有自己的语法,有自己的构建工具和依赖管理工具,有自己的框架和库,有自己的开发社区和IDE,这些东西对开发者日常的影响比我们想象的要大得多。
并不是说开发者不应该更换编程语言或行业。问题的核心是,每个程序员都是不一样的。一个使用F#开发项目的团队无法从Java开发人员那里获得任何好处。管理层不能反复无常地将“万能”程序员随机地调配去做任何事情,更何况可能根本就不存在所谓的“万能”程序员。
注:本文内容来自互联网,旨在为开发者提供分享、交流的平台。如有涉及文章版权等事宜,请你联系站长进行处理。