细节与功利主义:致那些同我一样想突破自己技术层级的朋友们

2019-12-25 09:08:17 +08:00
 xiaotianhu
介绍一下身份背景:年薪离百万很远,人不在美国,刚下公交。
  不好意思串场了,小公司( 10 人开发 team )技术主管,PHP 后端为主,JS/Vue Golang Swift 都写点。野鸡大学机械工程,上不起培训班,野路子自学成才。

  作为工程师,终日的 Trade off 使我变成了纯粹的实用主义者,也或者说因为实用主义的信仰导致我走上了工程师的道路。简单来说,就是崇尚『简单粗暴』,实现了再说。

  有一次有个来面试的哥们,在我问完了一大堆『原理』后跟我说,你说这些我是不太懂,但是你就说做啥,我都给你整的妥妥的,你相信哥。虽然我相信他确实能『整的妥妥的』,但是对原理的一无所知还是使我不耻的,请他走了。


  但是君的一席话却让我很感触。


  我当然知道原理很重要。懂得原理,用起来才会游刃有余,作为 PHP 后端,没看过源码的框架怎么就敢用在生产环境呢?出了问题心里没底。但是对于原理,我也就喜欢『看看别人的博客』,知道个大概,感觉就够用了。比如:
PHP 的垃圾回收,引用计数嘛,都懂的。加一减一,不用了清了,妥。

  其余的细枝末节,更进一步的研究,就感觉是在浪费时间。无非就是把这几句话展开成一篇论文,用赤橙黄绿的颜色来避免循环引用,也不能指导我写的更快写的更好了。而且总觉得有一种文人的酸腐之感,整日研究『茴字的四种写法』。有这个功夫研究一下 golang 它不香吗?

  所以技术一直就停留在『高不成低不就』的状态。曾经我也觉得,小公司,没场景,几十万的用户,我也没招啊。

  最近这半年,跟朋友一起在公司内部做创业项目。负责技术之于,探讨产品的方向,运营的思路,UI 的感觉,参与也很多。体会到了,什么叫『打磨细节』,一个点赞按钮,从写完开始改了四五版,交互的反馈,振动的手感,网络的优化,最后终于趋于完美了。

  突然之间,我对于『细节』这件事儿就有了新的认识。原来自己也做过前端小项目,体验确实差。原来一切细节都是有意义的,人是非常敏感的动物,一切最细微的感受汇集起来,就会让你觉得,『恩,是不太一样』。

  思想和观念是非常有力量的,文字也是。我与大神之间的智商差距是有,但是我不信大到不可弥补;况且,我只要跑赢大部分屌丝,我就已经很知足了。转变观念之后,再去看一些技术的东西,比如很简单的一个事儿,『打开文件』

  各个语言都有这个功能。PHP 它很符合『简单粗暴』的思想,一个 fopen 两个参数,是读还是写,搞定了。但是当我回头再去看『 UNIX 环境高级编程』这本书讲打开文件的章节,发现有很多玄机。之前直接扫了几眼就跳过了的章节(不就打开文件么 搞那么多幺蛾子),再读起来津津有味啊,一个写入缓存到底是 1024 还是 4096 的说道和影响也有这么大。还有一大堆参数,他们存在的历史和意义,都有趣了起来。

  除此之外的另一个心态转变,也是最近思考了很久的一个想法:

  『功利主义害死人』。

  实用主义很容易就会变成功利主义。产品经理挂在嘴边的『先上线再说』,说多了就变成了真理,大家都信了。于是写代码的初心也慢慢变了,最开始无非都是喜欢,一个东西调不通半宿半宿不睡觉也要弄明白,也因此收获了巨大成就感。现在的心态,在 KPI 与真理的驱动下,速度变成了第一位的,那么从 Trade off 的角度而言,当然最简单的成本最低。这个库太复杂?换一个;懒得看英文文档?找个中文说的 6 的;大部分的问题,都有现成的轮子可以绕过,小公司能遇到的问题,不就那么多,前人早就走过了。

  当你急着去做完一件事儿的时候,其实你已经不喜欢做了,只是想尽快结束掉这件事儿而已。

  在这个心态的驱使下的另一个结果就是期望通过一门技术来发财,走上人生巅峰。

  听说大数据火了,年入百万!买一本 Hadoop 学起来!
  挖 语言排行榜 PHP 不行了啊,Go 大法好,学起来!
  新出的 Flutter 好像很屌啊,听说薪资高,得看看!

  至于打开文件到底有几个参数,有甚么关系?面试又不问,也不能加薪,都是 CURD Boy 就别装逼了,发财要紧,好好学习 AI 早日去修福报才是屌丝该有的心态不是。

  到了这一步,就很难享受解决问题带来的成就感了。焦虑的心态也就日益起来,再也看不下去大部头的枯燥的神书了,让李哥王哥的 xx 速成视频来抚慰一下痛苦的心灵是唯一方法了。

  然而在这一波又一波热炒的大潮里,能真正收割红利的,很可能是早就已经布局了的。年薪百万的 AI 大数据大牛,有多少人在大浪还没来的时候就已经开始研究了,只是潮起潮落,来的巧了。做一个赶潮人,又有几个能真的变成弄潮儿呢,至少与我无关了。

  想明白这些,虽然离大神之路还很遥远,但是仿佛看到一曦微光,不再那么迷茫。享受过程,自然也就不再焦虑。一点感悟,共勉之
12180 次点击
所在节点    程序员
102 条回复
1OF7G
2019-12-25 11:33:12 +08:00
做为一个有些完美主义的前端,我花了很久才明白,细节真的没那么重要,尤其在项目前期。追求细节推高了开发成本,让项目推进变得困难。

我做的是去努力克制自己不去过分关注细节,正如楼主努力去关注细节一样。
eslizn
2019-12-25 11:38:01 +08:00
“细节”“原理”是为了当出现一些“搜不到”的问题之后有能力去解决问题的
而解决问题,也是工程师的核心能力之一
wb477982674
2019-12-25 11:55:41 +08:00
@coconut5200 同意你的观点,我都要活不下去了。我在去追求细节就是找死。我要是活得很滋润,我自然想去更好。但是我认为 大部分人还是处在 活下去的状态,或者说从下往上 冲 80 的状态。真正 80 冲 90 冲 100 的还是少部分人
zhangdawei
2019-12-25 12:13:04 +08:00
我觉得解决需求吧
mightofcode
2019-12-25 12:40:16 +08:00
浮于表面
mark4zhao
2019-12-25 13:15:18 +08:00
就业双向选择,基础好的同学,有更多选择,跟楼主就没有缘分了~ 同立水桥混过,明天生活馆?
xiaotianhu
2019-12-25 13:26:39 +08:00
@Wilon 你说的对啊,我也说了,这是"真理 ".

但是看问题的角度不同罢.从公司角度,速度优先,质量可以妥协,这当然没错.

但是工作之外呢?自己学习的时候呢?你的思维惯性是会被长期的工作习惯带偏的,就出现了我提到的一些心态问题了.

如何去平衡这些,对于个人的发展而言是至关重要的.在此文里,我代表个人利益个立场,换句话说,公司的发展不是我在此文里需要第一优先级考虑的事儿,毕竟我不是老板.

而且,从公司角度来考虑,公司能不能活下去 很多很多时候技术都不是第一优先级的,所以 PHP 现在依然大行其道嘛.

最后,如果事事以公司考虑,工作非常忙 996 修福报,我觉得对个人成长是极为不利的,有干股或者合伙人 /董事另算.
iyaozhen
2019-12-25 13:26:52 +08:00
「当你急着去做完一件事儿的时候,其实你已经不喜欢做了,只是想尽快结束掉这件事儿而已。」
好文,共勉
xiaotianhu
2019-12-25 13:41:39 +08:00
@robot1 没看过,所以也不敢用,只好让看过的人来弄,比如阿里云(RDS 负载均衡 Mongodb Redis)
fengjianxinghun
2019-12-25 13:47:35 +08:00
这么多程序员都是精神老板?
xiaotianhu
2019-12-25 13:55:00 +08:00
@zappos
"久经考验和 peer review"决定了框架本身有没有资格被用在高要求的生产环境.

"看没看过源码"决定了你有没有资格在生产环境用这个框架.
yannxia
2019-12-25 13:55:51 +08:00
你得明白,你学技术的目的是啥。大部分的目的是利用这个技术赚钱养家,那学到 80 分和 90 分,就差点钱,其实没啥意思。你的目标如果是学成计算机之神,那你自然细节都需要考虑。这个事情我觉得不算功利主义,主要还是你怎么看待这件事情,毕竟很多技术学了又如何,还不是一分钱赚不到。
Enya
2019-12-25 13:59:00 +08:00
看完文章,发表一下个人观点。

其实我觉得功利主义和细节之间没有矛盾,只是在当下这个时刻的 balance。

一个按钮设计好几版,做到完美,主要还是有时间有精力做细节。客户或者销售说少慢一小时就少 100 万的时候,细节就没那么重要了。

以前我们部门缺人的时候什么水平的都招进来,大家先把活干完再说。等最近不忙了不缺人了,老板说招人还是要考核一下基础知识的。

都知道有空要多钻研,学无止境,v2 上面摸鱼(包括我自己)的还是那么多,说到底也就是不够忙。
bmy
2019-12-25 14:02:48 +08:00
"当你急着去做完一件事儿的时候,其实你已经不喜欢做了"
这句话真的不错
frantic
2019-12-25 14:03:46 +08:00
非常不错,和我现在想的一样。自己一个 Android 开发,之前一直想通过又会 vue 又会 flutter 又会小程序 来给自己一个大前端的名号方便自己能拿更多的薪资,但是发现基本上更多的薪资基本都是大厂给的,大厂基本上又不需要这么全面但是啥都不是太深的职员,还是脚踏实地,继续深耕 Android 相关技术栈,才能更有进步
lizz666
2019-12-25 14:13:33 +08:00
其实说白了,产品做出来是给用户用的,而且用户大概率不懂编程,代码这些,那么作为用户肯定关注产品本身,而交互细节以及响应速度等等往往能影响用户对一个产品的感觉。
spikedingo
2019-12-25 14:15:09 +08:00
楼主支持远程工作不
vwym
2019-12-25 14:16:14 +08:00
目的驱动才是最有意义的事情。
不同阶段的人当然有不同层次的学习目标。
小公司的员工会为了以后能进大公司,当然会选择一个方面深挖,也就是深究细节。
也有可能想往上做一些开发组长,那就考虑广度方面。
这种基本都没有绝对正确的答案,本质上取决于你的选择。
当然,最糟糕的莫过于在这 2 个状态犹豫不决,不要想着 2 个都搞,没那个精力的,选定一个方向先干着试试看。
xiaotianhu
2019-12-25 14:16:55 +08:00
@spikedingo 管理能力达不到啊,支持不来 不好意思
xiaotianhu
2019-12-25 14:19:13 +08:00
@yannxia 学一个东西,目的是多赚钱,这个不功利还有啥功利?这难道是在做慈善?

只有学了,不为了赚钱,你才能更好地享受过程,才能更持久.

要不然搞技术赚钱真的太慢了.做销售快多了,不如去卖保险

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/632044

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX