在IT互联网行业, 一提起技术首先会让人想到的就是程序员, 程序员仿佛成为了技术的代言, 然而, 事实上程序员只是技术领域的一个分支而已, 产品、设计、交互、测试、运维这些职业都属于技术的范畴,而程序员的技术更具体一些,一般称之为「编程技术」。 现在流行的所谓「技术改变世界」一说里的技术了也不是指程序员的程序设计技术,这里的技术应该更加广义一些。
光靠程序员的确能一行代码一行代码的把软件敲出来, 但是软件好不好用? 美不美观?稳不稳定?这些无比重要的因素虽然不能说脱离了程序员的职责范围, 然而,人的精力是有限的, 编写代码的工作已经占去了程序员所有工作时间, 在这个组队打怪的年代, 需要由不同的人各施其职完成不同的工作。
编程技术是程序员安身立命的根本,任何程序员都会不同程度的对编程技术感兴趣, 否则也做不了程序员。 君不见,在平时工作时,只要一讨论涉及到技术的问题, 再孤言寡语安静的程序员也会站起来踊跃发言。看似安静平时只能听到机械键盘被敲的噼噼啪啪响的办公室其实充满着竞争,在同级别同工种的程序员中评价一个人工作能力强弱最简单的方式就是技术水平了高低。因此,程序员的普遍认知就是:只要提升自己的技术能力,意味着工作能力和事业也能同步上升。 这一定程度上是没错, 但也只是在你通往成功的职业道路上一点普普通通的要素而已。
在中国, 没有一个IT公司是靠程序员的编程技术做强做大的。 从来就没有听说过某一个公司的某一个核心项目因为编程难度太大, 而只能由某个程序员去完成, 其他的程序员都干不了。 就算真的有, 那公司的老板也肯定是如鲠在喉要把这个问题处理掉, 把你的优势抹平,一个公司的生死命脉怎么可能握在一个程序员手中,而且程序员还能合法的剥夺公司生杀大权, 这是大忌。 在一个团队中, 所有人工作都能相互交换处理,这才是一个团队健康发展的方向,也是能把事情做成的重要条件。 不可否认, 编程技术的高低得确是工作效率、程序运行稳定程度的基础, 但是一个人再怎么牛逼时间精力总规是有限的,工作成果的产出也是有限的,为公司带来的贡献也是有限的,公司越大, 匹夫之勇越无法体现出个人的价值, 很多人都在抱怨:在大公司自己就像一颗螺丝钉。 因此,想要在竞争激烈的职场出位, 除非在专业领域内有普通人无法逾越的登峰造极的成就,否则就不要想着走纯技术的路线, 因为那样只会走进死胡同里。
我之前在网上一篇文章中看到过微软公司的职位等级信息, 粗略分为5级,分别是SDE、SDEII、Senior SDE、Principle SDE、Partner,其中程序员最高级别就到Senior SDE为止了。 当然啦, 在微软做程序员就已经拥有绝大多数人终其一生难以企及的成就了,做一辈子又有何妨,但请扪心自问自己是否有这个能力能进的了微软。
在普通的IT互联网公司,某个项目代码写的漂亮不漂亮了, 为服务器运算结省了多少CPU这些事情也就程序员们自己会觉得是多么了不起的成就,BOSS们才懒的管, 他们的底线就是, 只要你写的程序别跑出问题来就算你功劳一件。 想要往上爬不是要你会使用多牛逼的技术,你要能让整个团队起化学反应, 让整个团队的战半力提升; 或者你要能开发出一个重量级产品为公司带来大量的用户或收入; 或者能让公司在和对手的竞争中胜出淘汰对手稳固自身地位, 或者还有其它不胜枚举的大价值贡献, 显然 , 这些都不是敲键盘写代码就能出来的。
我们不得不承认在一个公司之中升的最快的并不是技术最好的, 而是技术过的去的同时其它方面能力也都相应跟上的人。 偏科的学生成绩能好的过德智体美劳全面发展的学生吗?
放弃自己多年苦学另寻突破的确是一件很残忍的事, 但却是绝大多数程序员都需要面对的, 对于自身的专业技能不能丝毫不放在心上, 也不能陷的太深, 前者会使你在自身的领域中毫无成就, 后者会使你在寻求改变时体验到更深的痛苦与不舍, 甚至于产生禁锢使你一辈子无法改变。