把写代码作为方法
来自: 吃辣条的贡丸儿(人生忽如寄)
是的,标题抄袭了项飙老师的《把自己作为方法》。
TLDR; 关于转码话题的主流讨论一直非常二元论,如同bool一样非true即false。如果用更多元的视角看待这件事情或许能收获更丰富的体验。
========
motivation:早前受到组里一位姐姐的帮助,因为她的鼓励得以有继续前进的勇气,所以这篇帖子也是顺便再次谢谢她。
disclaimer:中英夹杂是因为在某些情况下想不出来更好的中文表达。
正文:
我小学时候的梦想是当作家。大学刚接触代码的时候没想过要把这个作为工作,只是因为去上了一门前端的课程,单纯被html和css的简单直接所吸引,用代码画东西在那时候的我看来其乐无穷(直至今日我依旧认为html是很适合入门编程的语言之一),而且写代码在我看来是最接近「不需要天赋的写作」的过程,(不需要天赋as可以通过不断地练习精进技艺)于是就顺势去上了其他的cs课程。反正本科修够学分就可以毕业,我本着「大学就应该体验知识的乐趣」的原则,除了cs以外还修了其他我同样感兴趣的课程。因为兴趣太过分散且没有重点,我甚至都没有所谓的「实习」经历(因为我假期就跟学姐去森林公园徒步,或者去天文俱乐部的活动了)那个时候唯一我想学但是在学校没有开设的课程是法医学,算是本科期间唯一的遗憾。
大三时候一节图形学的课让我大受震撼,当我第一次看到电脑上用代码画出来的三角形的时候,我被那种单纯的几何之美深深打动,我想:虽然我不知道我擅长什么,但我知道我想干啥:画三角形。于是就找了大家心目中最有前景的「画三角形」的细分领域:游戏。工作过之后因为基础不够牢固的原因吃了各种各样的苦,如同其他所有人都提到过的:technical debt早晚都得还,根本躲不过。但我比较幸运的是第一份工作中遇到了神仙mentor,以身作则给我示范了所有最优秀的程序员应该有的职业伦理。某种意义上他塑造了我的「工作观」。跟这样的前辈一起工作很愉快也很幸福,但我也更快地意识到了我和行业顶尖的从业者在热情上的差别:顶尖的前辈真的是可以不吃不喝对技术甘之如饴,对他们来说放假的意义是终于可以没有负担地写上几天几夜的代码;while我只想追求work life balance,我对代码的热情更多是出于对新鲜事物的「好奇」。我很快意识到:我没有他们那样的热情。技术可以磨练,但是passion是无法「被培养」的。于是我很快开始了我的职业思考:我喜欢什么?我的热情在哪里?
我还是很喜欢三角形。于是就换到了一个更小众的细分领域。虽然都是画三角形但是用到的技术栈可以说是大相径庭,很多东西从头学起,又是漫长的还债旅途。我非常非常喜欢这个行业,终于也能开始体会前辈的感受了。对我来说周五夜晚写代码是最棒的时刻,因为还有周六周天也能写代码!但这份工作期间我经历了非常严重的职场霸凌和人身攻击,如果不靠心理咨询完全无法出门,一度想过要转行。「feel like a total loser」这种情绪是我漫长的时期一直有的感受,不仅如此还觉得给学校丢脸(我真的很爱我的大学!)以及给前mentor丢脸(感觉他带了我那么久我还是那么废物)。多亏第一份工作的mentor(此时已成为行业金字塔顶尖的人)给了我所有需要的支持和鼓励,力劝我再坚持坚持。彼时我正处于对自己最不自信的时刻(甚至不是不自信的问题,而是self loathing),根本无心刷题。于是我在仅有的脑袋清醒的时间作了如下思考和行动:
1.找我能想到的所有我信赖的行业前辈(不限于代码,也包含优秀的pm或者其他行业的前辈)聊我的职业规划。再出去读书是一个option,但我判断读书并不能解决我当时的问题;且经过一段时间的工作积累之后我认为大部分所需的知识我可以靠自学完成;出国提高眼界的部分我本科已经经历过了所以也已经祛魅了。
2.如果工作是一个package,对我来说这个package里面的item重要性排序是什么样的?彼时我经历了严重的心理创伤,我判断我最需要的是一个能让我足够放松下来疗伤的环境。过往的工作中我曾经跟很多「厉害」的人共事,也越发明白技术的进步离不开人(ie有人带)但更重要的是自己的initiative,而且work is all about people,如果身边全是厉害的人,但是氛围很suffocating(如同我之前经历过的一样),技术再好也发挥不出来,因为精力都内耗掉了。
3.行业市场上现在到底需要什么?这里的什么可以是资源,可以是能力,也可以是商业逻辑。作为一个最底层的programmer,往往只需要把assigned task做好就可以,但我结合自己在职场上的观察,发现最重要的往往并不是技术,而是scenario in which tech is applied to(即技术是为业务服务的),而我工作了几年对业务可以说毫无所知。现在市场上有哪些竞争对手?竞争对手最强的武器是什么?我需要做什么让自己能够在这个行业中立足?我在市场上有怎样的议价能力?
这些问题其实是最难通过单纯的搜索找到答案的,一方面因为行业太小众,另一方面行业大拿没必要花时间给不了解的人科普。因此我选择了最直接的方式去搜集信息:面试。当时的我既不刷题也没有精力准备,我单纯奔着面试越高级别的人获取越多信息越好的原则去面试,把行业内从龙头公司到腰部的公司到有趣(团队人员构成非常有吸引力/做的事情非常有趣)的创始团队,评价好的坏的好坏参杂的公司都面了个遍。我的重点是在他们问出「你有什么问题问我们?」的环节,那就是我开始获取所有无法在网上搜索到的信息的时刻。借此机会我了解了行业内所谓的「决策层」看重的到底是什么。(因为涉及非常具体的行业信息就不赘述了)也大概知道了自己应该在哪方面查漏补缺(技术wise&&职业发展wise)。
因为不是奔着拿offer的心态面试的,我整体都特别放松,反而意外地几乎都拿到了offer。选择offer的时刻,我参照了那段时间我最常读的Peter Norvig写的《Teach Yourself Programming in Ten Years》。他在recipe for programming success那一段中第一个建议就是:Make sure that it keeps being enough fun so that you will be willing to put in your ten years/10,000 hours.他在说的其实是兴趣是重要的,因为兴趣而愿意投入具体的时间精力精进技术也是很重要的。于是我降薪去了一家我觉得最有趣的公司,因为我认为这份工作能让我在下班之后依旧有兴趣继续写代码,事实上也确实如此。
工作一段时间之后,我很快就有机会跟尸体打交道(是的,就是我本科时最大的遗憾),虽然并不是严格意义上的法医学。
去年因为一些原因,我疯狂迷上了头足纲生物。今年乌贼变色相关研究出了一篇新的论文,运用了大量cv的术语。我在看的时候真的很庆幸之前的工作有接触到一些cv相关的技术,我才得以用技术稍微理解了我最爱的生物。
然后在某个时刻我突然意识到,借由写代码这件事情(把代码作为方法),我几乎体验了我当前阶段所有想体验的事物:我感受到了写作的快乐:more specifically,通过不断练习总结系统性提高写作能力的快乐;我结交了非常了不起的亦师亦友的前辈,感受到了友谊强大的力量;我弥补了本科时代的遗憾,而且在今后的工作中能用新的视角去看待曾经的遗憾;如果不是因为写代码,我可能会错过更好理解我爱的生物的机会;我一直很想跟我的好朋友一起工作,借由现在的小众行业的domain knowledge,我可以和她们产生更强的共鸣,也许以后还有机会合作。
最开始工作时共事的同事们,几乎都已经在管理层或者至少达到了了主流意义上的「向上走」,而我既没升职也没有成为行业内「大神」般的人物。那我失败了吗?
这让我想起了很久之前看《英文系主任》,有一段台词是男主如何看待写作这件事:

这也是我现在对于代码的感受:我学到了新东西、我被它改变,这是非常复杂但忠诚的关系。
现在大家在讨论转码这件事的时候,一般都会说到转码的struggle,我承认这其中有非常多难过的时刻。但不妨把这一切都当作游戏体验的一部分:打不了主线任务还可以开发一下side quests,更何况a)side quest常常更有趣 b)转码成功也不是主线任务打完了。人的自我探索、自我成长、自我迭代在我看来是比「写好代码」更重要的课题。c)转码不成功也不代表游戏结束。可以在某个地方存个档,重新回来存档点的时候,带着在世界闯荡了一番的经验,说不定会有全新的视角和更开阔的心态。
你的回复
回复请先 登录 , 或 注册相关内容推荐
最新讨论 ( 更多 )
- 友情劝退|论文代码一行没写,全靠claude (大施的崇高客体)
- 失败宣言|转码没有捷径·写于培训班转码失败后。 (管埋员)
- 真相披露|国内三月培训班的转码路 (momo)
- 选择到底是正确还是错误 (悟空很忙)
- 我感觉如果喜欢小孩子可以搞少儿编程 (大施的崇高客体)