很多程序员都有一个技术理想,梦想着通过不断的学习,不断提升自己在某一领域的技术能力,从而获得持续的竞争力。这种现象在刚毕业或者工作时间不长的程序员中尤为常见。大多数人会意识到,这条路在今天的中国很难走,除非上升通道受阻或出现中年危机。技术只是解决问题的手段上周,一位同学离职了。问及原因,他说不想涉足商业,想追求纯技术。这种想法我很理解,毕竟我之前也有过类似的想法。但是现在我的想法发生了很大的变化。比如某明星创业公司推出某项业务后很受欢迎。访问量突然增加,服务器访问压力过大,服务无响应甚至频繁宕机。如何解决这个问题呢?重新开发一个性能更高、支持更高并发的服务?当你发展得很好的时候,市场可能已经被其他公司抢走了。解决这个问题更有效的方法是什么?堆叠更多的服务器可以解决问题吗?人肉运维能解决问题吗?你看,技术本身,机海战术,人海战术,没有区别。它们都是解决问题的途径,都是赢得商业市场的手段。在某些场景下,这种方式甚至效率低下。难以忍受。所有技术的存在都是为了解决一个问题。技术是为人服务的,也是为市场服务的。没有这个原则,所有的技术都是无稽之谈。仅仅有好的技术是不足以成为技术专家的。在商业公司,大部分的发展路径可能是这样的:前期对技术的极大热情->大量标志性的技术项目->转向综合思维->带领团队/专注于简单的方法论专注于一个技术领域可能对个人成长极为不利。一个人的技术能力再强,也很难压倒一个团队。只有通过他人和团队,一个人的阅历和视野才能被迅速放大,才能在更大的领域做出更大的成就。到了一定层次的人,需要能够把关注点和具体细节分开,把更多的时间和精力投入到业务问题的拆解、技术方向和方法论的把控上。能够调动资源来解决业务问题是成为技术专家的条件。很多公司的专家级以上的职称,都会需要协作能力,只有能够调动身边甚至其他部门的资源,才能在公司发挥更大的价值。在常规的公司架构中,CEO通过顶层设计来调动整个公司的资源,而业务线总裁通过业务拆解来调动整个业务线的人,通过目标层层拆解,确保每一层可以充分调动下一层的所有资源。如果你总是关心技术细节,你永远是一个孤立的节点,你在任何组织的任何维度都会处于最底层。就算24小时不睡觉,最多也算两个人力资源。要想突破一天24小时的限制,就得花时间让别人认同你的设计,朝着一个方向努力,这样你的节点才能向上移动。作为一个有技术追求的程序员,我们必须认识到,我们的目标不是写出更优雅的代码,不是研究更先进的技术,而是解决真正的业务问题。如果你不明白你做的事情对整个业务有什么价值,能解决什么业务问题,对公司的战略有什么价值,那么请放下手中的键盘,自己想办法。你越早养成这个习惯,对你的个人成长就越好。除特别注明外,均为【小酒杯半杯茶】原创文章,转载须以链接形式注明本文链接
