这是IT职场人生系列的第二十三篇。(序言,专栏目录)

专家与杂家

专家与杂家之争由来已久。

挺专家者说:只有专一,才能学透学精;那些泛泛之辈,只能学到些皮毛,终究不能有所成就。

挺杂家者说:只有广泛,才能目光开阔;某些人天天钻牛角尖,最后学成榆木疙瘩。

招聘的时候也是。

有人号称精通七八种语言,参与过76个项目(在一个真实简历中看到的,不过不是来我们这应聘的;按当时的速度估计,他现在应该写参与150~200多个项目左右了),相信大家一定看了直摇头。

但如果又有人十年如一日,只是在一个文档转换器上钻研,恐怕也够呛能有什么成就(这是当年叫做“在微软工作十年的笨蛋”的故事,说有一个人在MS工作了10年,除了Office所有文档之间的类型转换之外,什么也不会,现在居然搜都搜不到了)。

那么,到底哪个好呢?其实哪个都不好,或者说很多人把杂与专当作互斥的知识体系了。

如何成为一个好程序员

在10年多以前,我的师傅,一个非常厉害的程序员,有一天和我们讨论问题的时候(可能是在讨论最近的一些招聘心得)突然说:“我发现,厉害的程序员都喜欢说话。”

我脑海中迅速过了一下部门的20个程序员,果然不差。但是,背后的原理是什么呢?

沟通,学习。

如果一个程序员要经常和新手沟通,他就得尝试把代码写得很干净明了,新手能看懂。

如果一个程序员要经常和高手沟通,他又要把代码写得很精妙,不能一看就拖沓冗长。

最开始只是技术沟通,但最终会出现业务上的沟通,进而是知识上的沟通,所知道的范围就越来越广,逐渐变成杂家

“变成杂家会不会水平下降?”

如果担心这个,那就自己分析一个问题:我们团队假设有10个人,10件事情,如果大家有只有1个月度过初期的壁垒,那么谁最适合哪项工作?

分析的结果,往往不是一个萝卜一个坑,而是某人或某两三个人垄断了所有最佳选择。也就是,总有那么几个人,干什么都最拿手;还总有几个人,干什么都不太行(而不是只能干一件事情!)

这时候,这些高手们就变成了“既是杂家,又是专家”,怪哉。

原因就是程序员总会用自己学到的最高水平,解决所有事情;而见到的事情越多,可以学到,乃至只是偶然获得更佳灵感的机会也越多。

所以,程序员不能偏安一隅,要多去从事不同的事情,理解不同环境中处理事情的方法;并把它们中的精华,互相借鉴。

典型的必须跨越的鸿沟,包括这样几个:

1. 前端与后端

很多人居然只从事其中一个,而对另外一个置之不理。

由于这两个内容交互非常多,只有了解对方的工作方式,才能做好自己的工作。

本人在这一点上感受颇深,在火星人的开发过程中,我其实自己一个人前后都跑,从设计CSS风格到数据库的应用缓存,有什么干什么。

这些内容常常相互依存,功能并不会很干净地 在前后台拆开,经常其中一个做好了,另外一个就省事多了(尤其是我们采用了MVC的框架的情况下)。

2. 开发与测试

一个人很难直接从事这两个职业,但是可以做这样几个事情:多关注出现的缺陷,目的是在开发过程就提前避免;多为测试人员编写自动测试代码,目的是学习产品的整体功能;多看测试人员的测试用例,目的是学习用户的业务逻辑……

如何防止失去专业性

人很容易失去专业性。

英国有一位物理学家,曾经在25个诺贝尔奖项上做过研究,但每个都浅尝则止,被当作反面典型。

那么,编程过程,怎么防止这种现象呢?跟牛顿学习就知道了。

牛顿发明/发现过很多东西,物理三定律(总结前人),光谱,反射望远镜,微积分,万有引力……他怎么没没落成杂家呢?

因为他所研究的东西,都是互相支撑的。

光谱发现后,牛顿预言折射望远镜一定有色差(不同光线的焦点距离不同),所以他研究发明了反射望远镜;由于他喜爱天文,所以开始关注多普勒三定律,并从中推出了类似天体这样的两个质点,之间引力是2GMm/r^2这样的关系(这个不是他第一个推出来的),还首次给出了反向公式的证明;不过这还不能算是“万有”,因为苹果距离地面太近,地球不是一个质点,至少不应该这样计算苹果受到的引力;这个问题直到20年后他发明微积分,才得以解决:按照球体的积分公式,整个地球吸引力等同于地心的质点……

总之,牛顿不是一个“兴趣广泛”的人,而是一个“刨根问底”的人,不会在一个事情没完的时候,就转向到另外一件事情。而相反地,他之所以转向另外一件事情,是因为当前这件事情遇到了瓶颈,需要其他知识的补充。

结果就是他同时在诸多相关领域工作,成果互相支撑,最后终于达到了一定的高度。

IT人员如何防止失去专业性

对IT人员尤其是程序员而言,如何决策呢?跟着需求走,不要跟着兴趣走

很多人学习一个新语言,“想借鉴一下”,不是因为业务的需求,而是因为听说这个语言不错,这是比较危险的。

人在没有实际动机的情况下去学习一个语言,想达跨过学习曲线而有所收获,是非常困难的(想想自己在大学度过的“学习”时光,就知道了)。

与其去“了解”远在天边的一种新语言,不如在自己正在开发的项目中,扩展自己的知识面,比如:

1. 尝试跨越前端/后端/开发/测试的壁垒。

2. 尝试使用某些新技术解决以往困扰已久的问题。

3. 在任何重构的机会,尝试新技术(用老旧技术进行重构,是一种原地踏步的行为)。

技术,管理,业务?

这在中等IT人员面前,算是最后一个问题了。很多人都问:“我是应该发展技术,还是学习管理,或者业务呢?很犹豫”

正确的答案是:全面,随缘。

什么是全面?

仔细想想自己身边那些只懂讨好客户不懂技术的销售,再看看空话连篇的领导(多数咨询师更甚!呵呵),又看看埋头编程最后不符合用户需求的程序员们……显然我们明天不能做一个让今天的自己郁闷的人,那么唯有这些方面都做到一定程度,才是一个全面人才。

什么是随缘?

假设“全面发展”已经有一段日子了,领导突然过来说:“小张,我们最近想招募一些内部的产品经理,你既懂业务又懂开发还挺喜欢管理,想不想试试?”

这时候脑海中千万不要想:“哎呀,天天外面跑,业务是熟悉了,技术和管理咋办?”这个缘分,可能就错过了。

产品经理有不同的做法。

不要独断专行,而是拉着销售、研发一起参与进来,分析市场、用户群、用户体验这些内容,这就是管理。

不要说完需求就撒手不管,而是陪同开发人员做出一些业务架构设计(一千零一问系列中曾提到:技术架构设计依托于业务架构设计),这样做出来的东西不走样,还有前瞻性,又能换来开发人员积极参与需求描述作为回报,这就是技术。

所以,就算成了“全职”产品经理,仍然可以业务/管理/技术三不误。

随缘,不是随波逐流无所作为,而是要与外界环境共振,积攒力量把握机会,而不是总干些“逆天”的事情。

金字塔形知识体系

专家与杂家的结合点,是金字塔形知识体系。

金字塔之所以历经五千年屹立不倒,归功于其特殊的外形。

其他的世界奇迹,多半都是“很细”的,所以很容易倒。而选择“很细”是希望能节省材料,就像很多程序员埋头一个小模块一样,省材料自然才能有积累嘛。

其实不然,狭隘的目光,很难支撑一个足够的积累。尤其是IT页,不等积累到什么高度,可能这个技术本身都过时了。

选择上下一般粗好不好?也不好。如果要把金字塔弄成一个巨大的立方体Cube,估计也倒了。因为没有人能在那样的高度上堆砌这么多的“顶级知识”,这个时候,就要回到一个或几个小的“顶尖”的状态了。

后来施密特、卡塞格林、马克苏托夫他们发展了新的反射望远镜,而莱布尼兹也有额外的微积分发明,万有引力也被爱因斯坦证明是物质存在所产生的一种场……所以即使是牛顿,也没有把世界上所有事情都垄断了,而只能“站在巨人的肩膀上”(坚实的底座),且“偶然捡到一个美丽的贝壳”(个别塔尖)而已。

附:最后引号里边的两句话,都是牛顿的原话。

第一句原文是:如果说我比别人看的远些 那是因为我站在巨人的肩膀上

第二句原文是:我不知道在别人看来,我是什么样的人;但在我自己看来,我不过就象是一个在海滨玩耍的小孩,为不时发现比寻常更为光滑的一块卵石或比寻常更为美丽的一片贝壳而沾沾自喜,而对于展现在我面前的浩瀚的真理的海洋,却全然没有发现。

IT职场人生系列之二十三:知识体系(专家与杂家)相关推荐

  1. IT职场人生系列之二十三 知识体系(专家与杂家)

    这是IT职场人生系列的第二十三篇.(序言,专栏目录) 专家与杂家 专家与杂家之争由来已久. 挺专家者说:只有专一,才能学透学精:那些泛泛之辈,只能学到些皮毛,终究不能有所成就. 挺杂家者说:只有广泛, ...

  2. IT职场人生系列之二十一:如何学习新语言(一)

    这是IT职场人生系列的第二十一篇.(序言,专栏目录) 最近<火星人敏捷开发管理工具>接近发版了,回忆起一年半以前刚利用业余时间开工的时候,编程已经中断了7年(03年最后一次用VC++6.0 ...

  3. IT职场人生系列之二十:危险职业(下)

    这是IT职场人生系列的第二十篇.(序言,专栏目录) 果然还有下篇,说说不危险和危险职业的基本定义,与以前的维度有点不同的. 核心与非核心职业 实际上软件企业中间有一根中轴线,是每个企业的核心. 在产品 ...

  4. IT职场人生系列之二十:危险职业(续1)

    这是IT职场人生系列的第二十一篇.(序言,专栏目录) 之前泛泛地讲了一些危险职业,基本包括两大类:没有积累的(可替代的)和出路狭窄的(但未必差的).中间有不少读者写来邮件问了一些自己的职业,有的作答, ...

  5. IT职场人生系列之二十二:如何学习新语言(二)

    获取帮助 谦虚.大胆.再谦虚地尝试 这几个词看起来很不搭嘎,但我细细回忆起来10多年编程的经历,这句话很可能是高手与低手最后产生差别的关键,所以重点写一整篇. 菜鸟不是低手,低手指的是工作了很久,但技 ...

  6. IT职场人生系列之十二:语言与技术I

    本文是IT职场人生系列的第十二篇. 最近移动互联网很流行,很多人都在学习IOS.Android编程.这也引起一个入行.改行的潮流. 那么,作为新手.老手,应该怎样选择自己学习的语言和技术呢? 本人从早 ...

  7. IT职场人生系列之十三:技术?管理?业务?

    本文是IT职场人生系列的第十三篇. 很多技术人员工作几年后,都要面临未来的出路问题. 所有出路中,无外乎技术.管理.业务三个层面. 技术 技术本身也是一条出路,但是在之十二中曾经提到,有深技术和浅技术 ...

  8. IT职场人生系列之十四:经验积累

    本文是IT职场人生系列的第十四篇. 任何时候都会发现IT业是个变化迅速的行业,几年前还很时髦的技术,现在已经过时了:几年前还很热门的行业,现在也过时了.这种变化之莫测,别说我们普通人,连IT巨头们都经 ...

  9. IT职场人生系列之十:创业观

    本文是IT职场人生系列的第十篇. 最近头条是关于创业的,自己曾经想过很多,业来说两句. 本文不涉及如何创业,该在什么行业创业的内容,只是从年龄的角度,看年轻人是否应该创业. 没有太多脉络,从问题收入. ...

最新文章

  1. 说说.net事件和委托。
  2. 矩阵y=wx+b 位置
  3. window mysql proxy_window下mysql-proxy简单使用
  4. vbox虚拟机配置Redhat6.4本地yum源
  5. oracle层级关系按列存储_几张图看懂列式存储
  6. gin c.Next()方法
  7. oc基础-OC中对象方法的使用
  8. 使用ASP.NET状态服务维护会话信息
  9. 在iOS App中增加完整的照片多选功能
  10. eclipse debug 的断点查看和清除
  11. otdr测试波形修改软件,AQ7932(OTDR仿真分析软件)
  12. matlab psf点扩散函数,什么是点扩散函数PSF?-ZEMAX,OpticStudio-光行天下-国内光电行业门户-光学,光电,光机技术及其软件运用专业网站!...
  13. 计算机系系徽设计说明,系徽设计大赛策划书
  14. mysql的in能超过1000吗_SQL使用IN参量不能超过1000的表现形式以及解决办法
  15. 利用melendy插入参考文献_Q基因的转座子插入突变导致去驯化过程中普通小麦重获脆穗性...
  16. ReactNative常用插件使用
  17. 灰狼优化matlab,混合灰狼优化(HGWO,DE-GWO)算法matlab源码
  18. ADC 获取数据(stm32)
  19. linux带gui的服务器和gnome,请求指点:Server with GUI 和 GNOME Desktop 的区别是什么?...
  20. 数学的回忆(二)——麦克斯韦方程

热门文章

  1. 使用Phaser和HTML5特性检测移动设备旋转重力方向
  2. Android--›InputFilter详解(用例:只能输入中文, 只能输入数字, 只能输入字母, 最大长度限制等)
  3. K210识别数字(0~9)并与单片机通信通过数字来控制小车移动
  4. uniapp 阿里云开发微信小程序一键登录
  5. android7.0调用CAMERA报异常 java.lang.SecurityException: Permission Denial: starting Intent...
  6. PTA L2-032 彩虹瓶(2019GPLT)
  7. 2个25Ge网口做bond(mode4)后,iperf2压测不到50Gb
  8. 多功能智能台灯(附源码)——用于参加课程设计,电子竞赛等
  9. FTP的主动模式和被动模式工作原理
  10. GD32低功耗:深度睡眠唤醒系统时钟变慢问题