Amethyst Studio
1679 words
8 minutes
应该要有价值思维

在外界看来,程序员这个群体是一个非常像学生的群体,越是在大厂,独角兽企业的越是容易有这种感觉。从外在表现上来说,大多数程序员保持了学生时代的穿搭风格,喜欢背双肩包,以及朴素的穿着。从做事来说,大多数程序员专心技术,每天的工作就是读书,读论文,写代码,有的人甚至毕业之后还会去上网课。在公司的内部,很多人称呼自己的上级或者年长的人为“老师”,HR之类的人事管理有的时候也会称呼同事为“同学”。赶任务的感觉也像极了学生时代赶的作业,除了公司不会真的给你发个学位之外,很多事情的确像极了学生。

像学生这个特性,有一些好处,譬如说人际关系比较简单,没有那么多复杂的应酬,心思也比较单纯。社会上的人对金融行业的潜规则早已见怪不怪,但鲜有听闻程序员群体有什么潜规则的。这也是很多外部的女生特别钟爱程序员的原因,单纯+挣钱多。

不过这也带来了一些弊端,最主要的弊端是很多程序员的思维仍然停留在学生时代,仍然有很强的学生思维。

什么是学生思维,在学校里面,人的价值取决于人对特定事物的掌握情况。例如在高中时期,所谓的牛人可能是物理能考满分的人,或者才上高一就已经知道很多微积分知识的人。到了大学也是如此,只不过这个时候微积分知识已经不够看了,得是更高级的数学知识,例如泛函分析,范畴论,或者更复杂的计算机知识,例如做过芯片设计,操作系统的人。

所以程序员群体就开始了卷,卷的是会XX,一开始大家做一些简单的项目,例如简单的后端项目,然后卷Leetcode,挑战各种Leetcode Hard的题目,接雨水或者KMP,各种动态规划还有红黑树,还有手推各种公式。近几年变成了挑战各种项目,例如STL,手写redis,各种数据库等等。

但问题是,这种卷是否真的带来了好处?很不幸,如果真的带来了好处,大家就不会认为这是“卷”了,所谓的卷,就是做了大量的无用功,无价值的东西。很多人在简历上写了一大堆东西,但是却很少收到offer。有些人学历很高,也会很多东西,但是收入总是提不上去。


要明白学生思维错在哪里,举一个简单的例子就能明白。如果你去一家餐馆吃饭,是因为什么?是因为这家餐馆的饭菜很好吃?还是因为这家店的厨师毕业于清华大学?后者可能会吸引一部分第一次去的人去尝鲜,但是从长线来看,餐馆能否经营地下去,主要还是看餐馆的饭菜是否好吃,服务是否周到,价格是否合理,也就是顾客的用餐体验如何。如果一个餐馆的噱头仅仅是厨师毕业于清华大学,店长毕业于北京大学,饭菜的味道一般,环境一般,价格偏贵。餐馆倒闭也只是时间问题。

对应到程序员来说,如果你只是“会”某种东西,“会”使用C++,“会”使用java,“知道”很多网络或者编译原理的知识,“知道”很多操作系统的底层原理,实际上意义并不大。因为仅仅是知道这些原理是没有用的,企业或者其它的消费者并不关心你“会不会”,它们更关心你能不能做,以及做的是什么,做的好不好。换句话来说,就是你能够创造什么样的价值。

对于在业界工作过一段时间之后的程序员,应该要摆脱这种学生思维,不要沉迷于“会”或者“不会”,“懂”或者“不懂”,“知道”或者“不知道”这样的问题,而要学会从价值这个核心问题出发,来思考自己应该掌握什么知识,以及应该怎样使用自己的知识来创造价值。

你所掌握的知识能不能支持你做出某些事来挣钱?或者做出某些事来帮助公司降低成本?如果你能,并且你的确做了,那么你才真正具有价值,你才真正在市场上拥有“议价权”。否则,如果你只是停留在会或者不会的层面上,实际上你的“议价权”几乎没有。


我自己是PL人,因此我聊一些PL人可以发挥的价值:

  1. 重构工具,利用PL知识解析代码,达到快速重构。快速重构往往可以将企业的重构成本大幅降低。
  2. 语法规范插件,公司提交代码之后需要经过上级review,但是review的过程中往往会有很多琐碎的错误,可以使用静态分析来分析出这样的错误,做成插件,降低review的时间成本。
  3. 语言转换工具,代码实现过程中需要参考其它语言,然后实现到自己的语言上面。实现通用的语言转换工具极其困难,但是在特定领域之内,拥有一些约束的编程语言转换要简单很多。
  4. DSL或者EDSL加快开发效率。将复杂的任务进行抽象,写成DSL或者EDSL,加快开发效率。
  5. 其它的东西。

我上面说的是PL人可以发挥的价值,你会发现要实现上面所说的东西,需要的知识并不少,很多知识需要学很多年。但是关键的问题是,学会从价值为中心可以让你一直处于竞争上的优势。说得直白一点,如果你可以每年创造出上千万的利润,公司并不介意给你百万的年薪。但公司并不会因为你掌握的知识很难就付给你很多钱,你知道茴香豆的茴有四种写法对公司来说没有任何意义。

应该要有价值思维
https://ziyue.cafe/posts/values-of-a-programmer/
Author
Kaida Amethyst
Published at
2024-08-02