真正热爱技术的人,如果能在搞技术的许多年里,一直打心底地认为技术很重要,认为技术第一,那恐怕是极少数非常幸运的人。大多数人搞搞技术后,应该会要认识到“技术不重要”的事实。
记得前上司与我提到过技术人员的三种能力:编程能力,架构能力,工程能力。按个人理解分析下这三种能力:
- 刚毕业的同学,大多只具有比较好的编程能力。
- 像是算法比较好或者能使用各种技术比较轻松地搭出个小网站等。
- 工作两三年的同学,大多都是在培养架构能力。
- 像可能会在别人已有的技术方案上,做更适合自己业务需求的更好的改进(造轮子)。
- 能力更强一点的,可能会自主研发出一套不错的架构方案,来用在自己的业务里;如果方案足够好、推广的好,也可能得到更多人的关注与使用。
- 工作年限更长点,应该会更加注重工程能力的提升。
- 像是性能调优、Load-balancing、Clustering、CDN、scalability、HA等工程级的解决方案能让一个网站的并发量从很小到很大。
- 但个人认为架构能力与工程能力这两者也都是比较「虚」的东西(相对编程能力来说),因为没有一个严格的标准能衡量。另外也是在遇到这样的场景或问题时才可能有机会培养。
这几种能力可以认为都是纯技术的,技术的重要性也体现在这里,技术人员凭借这些能力能架构出供亿万人同时访问的网站,能制造出无人驾驶汽车,能实现各种业务想法和商业模式。所以,技术真的很重要!
但技术又是不重要的,至少看起来是不重要的,是因为它隐藏在产品或商业模式的背后;是因为具有巨大变革性的技术总是比较少或很难发生、所以发生的时候只会被极少数的人获得或抓住;是因为成熟的技术总是会有许多种解决方案、门槛会变低容易获得也就变得廉价了。
就像我们逛淘宝,要找的是它里边提供的商品,而不是看它的网站代码;我们玩微信,是因为要和上边聚集起来的朋友互动聊天,而并不是因为微信本身的图标好看。我们经常看到某某大公司收购某某小公司,但收购的大多都是这个公司提供的商业服务,而与技术无关。贴近点像我们做业务做产品,技术方案会有很多种,效率一般也相差不大,这时候技术人认为更好的方案也只是技术人的自嗨,对业务对产品来说其实意义非常小。
一般情形作为单纯的技术人,大多也并不想过于抛头露面,所以即便隐藏在商业背后,即便除了惺惺相惜的技术圈人互相问候外大多数人无人问津,也没什么关系。如果能实现自己的技术梦,能有机会创造点推动技术发展的东西,再不济点若能利用别人好技术来创造点推动业务效率提升的东西来也算小有成就了。但是,即便想做到这个,也是需要「天时地利人和」才可能成功的;缺少哪一点都会失败,这个只有亲自经历过才能深切体会。所以,绝大多数技术人的现状是什么?学习成熟的技术、做着粘胶水的工作、很少有好的创新,能顺利完成业务、但其实不是真正懂业务,更遑论不可替代性核心竞争力了。这个时候,是否会怀疑技术的重要性呢?
所以看似纯粹的技术梦,实现起来也相当不易,很多时候不是因为技术能力达不到,而是因为环境不允许。但这个梦的期限对一般人来说是比较短的几年,过了那个阶段,就只能留在梦里了,或者也可以自我安慰的认为自己做了点东西也算是实现技术梦了。
或许,对于绝大多数技术人员(不说处于顶部的佼佼者),需要从心底认识到“技术不重要”的事实,需要认清自己的现状,显得非常有必要。虽然非常的残酷,虽然可能会伤心的自问:现在的自己除了技术还会什么,还擅长什么?如果离开了自己熟悉的技术,能有更好的结果吗?如果自己软实力一般般,商业头脑也一般般,不是要很苦恼?除了技术还有其他出路吗?这些问题的答案是什么,需要好好想想。