转自知乎:https://zhuanlan.zhihu.com/p/37311019

    大概2个月前陆奇的一篇文章刷屏:“一个优秀的程序员,要相信世界是由技术驱动的”,我觉得这句话是狗屁,不过是资本家用来哄骗程序员的。我认可陆奇的五点要求,但这些只是程序员的本职工作。

    别忘了,去掉程序员的职业身份,他们还是一个个活生生的“人”。

    只有烂程序员才相信世界是由技术驱动的,优秀的程序员会意识到世界是由资本和权力驱动的。

    人,是一种社会性动物。技术也好,商业也罢,都只是用来解决社会问题的工具。以前我认为技术是面向机器的,现在明白了,其实真正优秀的、可靠的技术,都是面向人类的。你在优化设计模式的时候,不是在优化机器,而是为了让“人”维护起来更方便;你在优化算法的时候,不是在节约内存,而是为了让“人”拥有更好的用户体验(即速度);你在做一个GUI的时候,不是在与机器对抗,而是为了让数据管理更加方便。一切因为人,一切为了人。大家都知道早期的计算机是用来计算弹道的,但这并不是为了炸弹,而是为了炸人。

    我的意思是说,程序员在做好本职工作的时候,必须清晰的认识到,你所做的一切,你所设计的一切,最终是为了服务于什么。

    这是你保持竞争力的前提。否则,你就等着永远被产品经理和项目经理折磨吧。

    我见过很多技术人,问我“茴”字的三种写法,我一概直言不知道。这一方面是“知之为知之,不知为不知”;另一方面,也是我不想纠结在所谓“原理”上的态度体现。人类为什么创造工具?是为了节约时间,用锤子的人需要知道锤子怎么做吗?诚然,计算机技术一定不像锤子那样简单,其复杂度可以绕南极一圈。我不是在鼓吹不去学习原理,原理固然重要,但是完全可以点到为止。这点其实与陆奇所说的“站在巨人的肩膀上做创新”是一致的,如果别人已经做了,就请直接拿来用,不要重复造轮子。

    深究原理,站的太低,可以影响的也非常有限,你最好学会在别人的基础设施上构建应用。

    程序员,最不应该做的事情就是自己骗自己:“整个世界终究是为技术所驱动的”。事实上,这个世界上,最不缺的就是技术,技术的问题从来都不是问题。世界的参数太复杂,不是一两个对象就可以解决的。真正困难且磨人的,永远都是“人”的问题。我在自己做产品的同时,也会去做销售,在吃了无数次闭门羹,经历过很多次谈三个月谈崩的客户后,才深知“人性”的复杂。

    我不知道为什么,很多程序员在听到“销售”这两个词的时候,总是露出一个嘲讽脸。是,你是读了很多书,你掌握了很多复杂的算法,还做了很多高大上的东西。但是,你可曾想过,没有销售,谁把你做的东西变现,你的工资是凭空出来的吗?销售出去不停被人拒绝,你能经受得住这种心理压力吗?你可知道,特斯拉在命悬一线的时候,是马斯克下令“人人皆销售”才把公司从死亡边缘拉回来。

    我也不知道,为什么现在的程序员见谁都看不起,仿佛安静的自己在掌控整个世界,却看不清自己只是棋子的事实。你们口口声声说,互联网公司重视技术,对,你们把技术做的很好,但是技术人的地位谁不是心知肚明。社会需要坐班拿加班费的程序员,也需要看清事实不再为老板卖命的活生生的“人”。

    在做好本职工作后,多了解业务、站在更高的角度构建上层建筑、接受世界是由资本驱动的事实,你get到了吗?