很多程序员都有一个技术理想,幻想着通过不断学习,不断提升自己在某个领域的技术能力,从而获得持续的竞争力。这个现象在刚毕业或者工作时间不长的程序员中尤为常见,直至上升通道受阻,或者出现中年危机,大部分人才会意识到这条路在当下的中国难以走通。
技术只是解决问题的手段
上周一个同学离职,问及原因,说是不想涉及业务,要去追求纯粹的技术。这种思路我非常理解,毕竟曾经也有过类似的想法。但是现在我的想法已经发生了很大的变化。
举个例子,某个明星创业公司,上线某个业务之后非常火爆,一时间访问量暴增,服务器访问压力太大,频频出现服务无响应甚至宕机的事情。怎么解决这个问题呢? 重新开发性能更高,支持更高并发的服务?等你开发好,市场说不定早被其它公司抢走了。解决这个问题更高效的方法是什么呢?堆更多的服务器能不能解决问题?人肉运维能不能解决问题?
看到没有,技术本身、机海战术、人海战术本质上没有差别,都是一种解决问题的方式,是赢得商业市场的一种手段,在特定的场景下,这种手段甚至是低效的、不可忍受的。
所有的技术都是为解决某个问题而存在。技术是为人类服务的,是为市场服务的。脱离了这个原则,所有的技术都是扯淡。
仅仅技术好是无法成为技术专家
在商业公司中,大部分的发展路径可能都是这样的:
初期技术热情极大 -> 大量标志性技术项目 -> 转向综合性思考 -> 带团队/关注方法论
单纯关注某个技术领域对个人成长的危害极大。一个人技术能力再强,也很难干翻一个团队。一个人的经验和视野只有通过他人和团队才能迅速放大,才能在更大的领域做出更大的成就。
到达一定的级别的人,他的关注点需要能从具体的细节中抽离出来,把更多的时间和精力放到业务问题的拆解、对技术方向的把控以及方法论上来。
能够调用资源解决业务问题才能成为技术专家。很多公司专家级以上的 Title会要求协作能力,可以调动身边甚至其他部门资源的人才能在公司发挥更大的价值。
在常规的公司架构中,CEO通过顶层设计调动全公司资源,而业务线总裁通过业务拆解调动整个业务线的人,通过层层目标拆解,并保证每一层都能充分调动下一层所有资源。如果一直关心技术细节,你永远是一个孤立节点,在任何维度的组织中都是最底层,就算24小时不睡觉,也最多算两个人力资源。想要突破一天24小时的限制,就要花时间让别人认同你的设计,并朝着一个方向努力,你的节点才能上移。
作为一个有技术追求的程序员,要意识到,我们的目标不是写出更优雅的代码,不是研究更加高深的技术,而是要解决实实在在的业务问题。如果你不了解你现在做的事情对整个业务的价值是什么,能够解决哪些业务问题,对公司战略的价值是什么,那么请放下手中的敲击的键盘,去搞清楚它们吧。越早养成这个习惯,对你的个人成长就有利。
除非注明,否则均为[半杯茶的小酒杯]原创文章,转载必须以链接形式标明本文链接
本文链接:
http://www.banbeichadexiaojiubei.com/index.php/2020/12/06/%e8%a7%a3%e5%86%b3%e9%97%ae%e9%a2%98%e7%9a%84%e8%83%bd%e5%8a%9b%e6%af%94%e6%8a%80%e6%9c%af%e6%9c%ac%e8%ba%ab%e6%9b%b4%e9%87%8d%e8%a6%81/