五年前“冯兄很笨,但他很勤奋”,五年后“好吧,冯兄很用功,但还是很平庸!”,谁为冯兄五年来被“辜负”的努力负责?

本科毕业时想,距离冯兄30岁还有五年,五年总能做成一件事吧,结果而立之年的冯兄依然在人海里浮沉;刚工作时想,指导我代码的30岁架构师水平也就那样,三年内我比他更优秀,现在冯兄与架构师的差距估计还需要续五年的一个“疗程”。工作5年了,冯兄见证了自己的平庸,也慢慢习惯了平庸。新的五年就要到来,冯兄回顾五年来的点点滴滴,希望2022年之后的冯兄拥抱平庸并做到不简单。

2021年12月20日

目录


1. 他十年努力,被辜负了?

冯兄有天在Hack News上看到一个热议的帖子https://news.ycombinator.com/item?id=29545069,看完后心情久久不能平静,Phil Jones四十岁开始在https://www.quora.com/平台上作为一个问题回答者,十年来共回答了11000多个提问。现在他要退出quora平台开始玩编程和音乐。文中Phil Jones说十年来她付出了很多,然而收获并不匹配,十年的努力被”辜负”了,该谁来负责?

跟着冯兄看看帖子的内容:

作者10年来在quora平台回答了超过11000个提问,然而作者要退出quora平台了,作者并不是因为quora惹恼了他而痛苦退出,也不是被平台抛弃。相反作者说quora是一个优秀的平台。

作者说自己是quora控,控制不住自己浏览quora并回答提问者的问题。可是当作者翻看之前自己回答的时候发现回答中有很多东西大有可为,但是从来没有真正做过。另外很多和时事相关的回答随着时间流逝过时了,那些自己花费数小时写下的苦口婆心劝别人改变心意的回答可能别人并不一定会听。

作者在quora平台上花费了数千小时(如果没有过万)写作,回答了超11000个提问和超5000个草稿。这些草稿因为没有润色就从来没有发布过。粉丝们关注作者,给作者点赞,作者在quora上成为了”顶流”的”up主”。

然而最终静下心来思考,作者说他十年的努力被”辜负”了,这里的”辜负”不是指经济意义上的、不是社交意义上的,也不是个人成长意义上的。作者开始在quora上写作的时候40岁了,如今50岁了,quora上那些回答成了作者十年来最大的项目和成就。

作者并没有否定在quora上写作那十年,那是一件很值得自豪的事情。但是它并没有形成价值的积累,最开始花费数小时写回答,获得了关注、赞和极大的满足感,但是慢慢的边际收益就越来越小了。十年来作者的朋友有的出书了、有的学术上小有成就、有的在影视界有所建树。而作者的成就是一堆quora平台上的回答。并不是说这些回答没有价值,而是面对十年来付出的时间、精力和才智,这十年是被”辜负”了。

作者提到10年前写的一篇杂志文章比这10年来写的11000篇quora回答挣更多的钱,这里不是说钱的问题,但是那篇杂志文章可以放在简历中增彩,而很少quora的回答可以给履历加分。实际上,作者意识到这些情况已经很多年了,但是每次作者都是快速打开quora,查看通知,为无意义的政治问题争论不休或者解释互联网上已经有很好定义的通用编程语言概念,意识过来发现一天的时间都浪费在quora上了。

帖子的原文链接为:http://exquora.thoughtstorms.info/

他十年努力,被辜负了吗?估计只有Jones Phil本人才能准确回答这个问题,不过这不重要,冯兄为他感到高兴,在50岁退出quora玩编程和音乐,他以后肯定不会再辜负自己的努力了。

那到底是谁辜负了Jones Phil十年的努力呢?已过而立之年的冯兄说不出为什么心里空落落的,Jones Phil十年来坚持做一件事并且这件事也做成功了,到头来却得到了”不值得”。

Jones Phil用十年的时间得到一个教训,相信这个教训代价很大,也很有价值。冯兄回顾一下五年来的工作经历,希望能在Jones Phil的教训中反思,为2022年开启一个好的开端。

2. 冯兄这些年

冯兄普通二本学校毕业,为了续时间找工作上了三年研究生,文科专业。2017年正式参加工作已经快满五年了。五年来冯兄见证了自己的平庸,也慢慢习惯了平庸。

上学时想,冯兄如今24,到30而立之年应该能干好一件事。如今我拿不出什么…

刚工作时想,指导冯兄代码的30岁架构师水平也就那样,三年内我比他更优秀,现在呢?还难望其项背。

2.1 入门编程

冯兄研究生开始接触编程,最开始在学校的信息化部门打杂工,接触htmlcssJavaScript,心里想着这个专业适合自己。网上找教程学,每天晚上自习课后去信息化教室看视频。

清晰记得有一天晚上把RGB颜色表给打印出来,心里想着要把它背会。总之,感觉上学这么多年找到一个正道,当成宝贝似的。

那时候2015年还不知道web服务端和客户端之分,心里想我们访问的网页在哪里维护呢?感觉很神秘。

后来接触linuxgitvimjavaweb,看视频学习linux基本知识;注册github账号,克隆别人的项目改造,学习vim命令并强制自己使用vim编辑文档;网上到处找别人开源的项目学习源代码。

印象最深的寒假回家硬盘里下载了linux高级课程学习,但当时也没学多少。那个时候谈不上技术的热爱但热情是一定有的,心里想将来能找到一个编程的工作,成为程序员应该就很厉害了。研究生期间做了两个开源项目,一个是生成适合程序员的简历,一个是麻雀虽小五脏俱全的图书管理系统,这个开源在github都有几十个fork。

2.2 学而"实习"之

很荣幸研究生期间遇到了一个好的导师,导师曾经给冯兄一个研究课题,一周后冯兄就主动放弃了,真不是做学术研究那块料,真切体会到数学基础、智力与别人的差距。

导师还帮忙推荐一个他大学时间同一个宿舍同学的公司实习,这个公司是做跨境电商的,导师同学在公司做CTO,给我布置了一个任务”抓取各大电商境外业务(如天猫国际、京东国际等品牌)的商品价格等信息”。

实习公司用的是PHP技术,当时就打印了一本厚厚的PHP书,每天下班公司人走光了,冯兄就在那里学习,晚上回去也继续看书,对PHP语言有基本的了解。

实习的公司离住的地方远,早上六点五十起床用开水冲一个鸡蛋花(那时候全部的家当就是一个热水壶,一个茶缸,一台风扇和被褥),七点匆匆去赶地铁,再晚就是人山人海了,把《Modern Operating System》英文原版打印出来,坐地铁是始发站,有位置坐,就抱着厚厚的书看。

公司是九点半开门,八点半左右就能到公司园区,进不去公司就在园区的凳子上看书。那段时间了解了操作系统进程、线程、虚拟内存、竞态等概念。

实习虽然没有参与到项目中,但也感受了真实的工作环境。导师的同学非常忙,中午基本不休息,晚上也很少加班,到点就下班了。工作五年后冯兄想来,这实际上很厉害。当然了,加班不加班和公司、团队文件自己的关注点有关,但是导师CTO同学身上那种搞技术的热情和效率让冯兄大受震撼,看到他那么忙,冯兄几乎不好意思去问问题,感觉耽误人家时间。

最后一个多月时间产出了爬虫程序,爬取了几百万条数据。由于导师的关系,纯属在那里历练,没给公司产出任何价值。实习这段时间见识了真正的企业环境,懂得了企业中基本的人际交往。

2.3 哭出来就好了

实习结束马上进入9月份的找工作时候,9月到11月面试了一二十家企业,基本没有进入3面的。上午跑校招或者去面试,下午没面试就在家里看书,刷LeetCode上的算法题,看java基础的东西,晚上七点到九点去奥林匹克森林公园跑步,偶尔会看看电视剧。每天是很充实,但慢慢就变得焦虑了。

有时候冯兄会对自己说,难道真的不适合程序员这条道路?但箭在弦上,不得不发。有一次去北航参加招聘会,那是一个普通的下午,食堂还没开饭,进去坐着回忆一两个月来奔走面试还没有什么结果就哭了,没有声音,泪水真的像泉眼一样往面庞上流,不过在别人学校哭,也不算那么丢人。

哭出来就好了,整理一下心情重新出发,11月份主动联系了现工作公司问为什么还没有复试,因为技术面试表现还可以,公司说以为人在外地,没有安排,马上安排起来HR面试,没过多久就接到了录入通知。那是一个月黑风高的夜晚,收到HR电话,整个人感觉卸掉了包袱,变轻快了,终于有公司肯要我了。冯兄对自己说,只要给我一个机会,一定会做出成绩的。

2.4 五年来冯兄很用功,但还是很平庸

2017年2月进入了公司实习,相比较之前实习的公司,这是一个大公司,大的办公区和规范的流程。但是很快就有烦恼困扰冯兄,公司基于第三方平台做大屏项目,所做的工作无非就是拖拽控件和调样式,和做PPT一样,没什么技术含量。初入职场冯兄就是要把它做好,仔细查看了产品说明文档,思考实现上的更多可能性,做东西的时候思路也更多。有一个功能在我参与项目之后团队才知道原来可以这样用。

7月份毕业了,女朋友也跟着冯兄来一线城市闯荡。当时冯兄心潮澎湃,心中充斥着”我来了,大有可为!”的激情。清晰的记得,下班后去和女友去市场买菜,冯兄都心不在焉的,想这样”会不会太浪费时间,是不是应该用这些时间学习才对?”。那时候也确实拼,在出租屋里,早上六点多起床看书、写文章,怕吵着女友睡觉买了个可调亮度的台灯,把亮度调到最温和。

工作中冯兄很幸运遇到了一个好领导,可以说是一个贵人。领导很赏识冯兄,除工作外经常谈职业生涯规划,谈个人发展,关键是给予很多的信任和鼓励。在领导的关心和帮助下,冯兄在入职一年半就获得了职级晋升。这中间也想过多次换工作,但换工作需要自身本领硬,为了在繁忙的工作中能够抽出时间来学习,记得冯兄有一段时间利用中午去园区看书。那期间买了一个看电纸书的kindle,会下载技术书籍,坐地铁等碎片化时间都会用来看书。

转眼来到了2019年,冯兄携女友去了另外一个一线城市。刚毕业在一个出租屋早上读书怕吵到女友睡觉时想”要是有两个屋能隔开多好”,现在实现了,新租的一房一厅。可是这三年冯兄的激情消退了,在公司中也成为了”老人”,过着和尚撞钟的生活。这三年冯兄很少早起看书,也很少思考进步和发展,但是却非常忙。或者说因为非常忙,冯兄忘记了思考和看书,项目任务铺天盖地,冯兄疲于应对,似乎成了工厂中的机器,一切都变得是被动的。这三年比刚毕业的那两年早上能起来在出租屋看书的日子更辛苦,似乎也更勤奋。但是得到了什么呢?当时心潮澎湃的大有可为,如今变成了习惯了的”逆来顺受”。三年来,冯兄的博客很少更新了,也没有深入研究技术,那到底都干什么了?工作当然是干项目呗,只是项目压的人喘不过气来思考了。失去了思考的能力,冯兄在这三年里”堕落”了。当初那个拖拽控件像做PPT一样的工作都能做出花来的冯兄,如今只会亦步亦趋步履仓皇而毫无方向。

3. 论平庸

优秀是一种习惯,平庸也是。优秀的人会说自己很平庸,那是一种自谦;有平庸的人会说自己终将变得优秀,那是一种自信;也有平庸的人的说自己确实很平庸,那是一种自知。

冯兄是一个有自知之明的人,实际上根本不需要五年的工作证明冯兄的平庸,一个小学学习差、中学复读一年考上普通二本的冯兄能优秀到哪里去?至少能证明智力平庸。冯兄还有社交恐惧症,情商平庸。智商和情商双平庸,是平庸无疑了。

既然冯兄已经认识到自己的平庸,那么拥抱平庸对冯兄来说是大有裨益的,怎么说呢?

当冯兄写一篇技术博客的时候,会彻底搞清楚写的是什么,花更多的时间去验证去理解而不敢乱写误导了别人。花更多时间有什么关系呢?请记住冯兄很平庸。

当冯兄研究一个技术问题的时候,看一遍官方文档不懂就看两遍、三遍,查更多的资料去了解,编更多的demo去验证。别人1天掌握的东西冯兄3天掌握了有什么关系呢?请记住冯兄很平庸。

当冯兄看到技术牛人解决问题的思路如此清晰,产出架构的效率如此高效,就连文档也画的很漂亮而感叹差距的时候,想的是如何提高自己的能力而不是自怨自艾。别人五年就成架构师了有什么关系呢?请记住冯兄很平庸。

是的,根据二八定律,只有20%优秀的人。大部分人都很平庸,如果能够拥抱平庸并尝试做一些不简单的事情,平庸还是不会变,但确实会变得不简单。

当冯兄写一篇技术博客的时候,不贪图量的多少而追求质的增加,产出的每一篇文章都能帮助自己理解技术并帮助别人成长。这就是不简单。

当冯兄在研究一个技术问题的时候,看了三遍文档还有那么多依赖的知识没搞明白,没有真正的理解技术原理。这时候冯兄不放弃,从最开始、最基本的知识学习,抽丝剥茧一点点消化最终掌握这项技术。这就是不简单。

当冯兄和牛人合作被人按在地上碾压的时候,冯兄站起来拍一拍身上的灰尘,总结那些被自己忽略的细节,被牛人碾压的地方,悄悄记录下来,有机会就学习补充。这就是不简单。

平庸加上不简单就等于小跑着奔向优秀了。用个公式就是:平庸 + 不简单 >> 优秀

4. 论"搬砖"的艺术

冯兄还没有参加工作的时候,只是听说程序员”搬砖”,知道”搬砖”就是工作的意思,但实际上没有理解其中真正的内涵。

工作后,突然有一天冯兄悟了,每天在公司的工作就是数据库的”增删改查”,这和工地上搬砖何其相似啊。”搬砖”意味着工作没有技术含量,重复但量多还不得不做。

编码只是程序员工作的小部分,实际上企业雇佣程序员就是来解决问题的,很大部分时间可能在对接客户、梳理需求、理解需求、架构设计、编码实现、单元测试、整理发布包、现场实施、解决线上问题等等。即使在真正写代码的时,也大部分时间在看代码或者在搜索引擎中找答案复制粘贴。

如果你接手的是新项目,那么恭喜你是很幸运的,因为工作中大部分接手的项目都是已经存在但是要增加需求或者是复用某个项目开发。这就到替别人填坑或者给别人背锅的时候了。

总之,程序员和其他职业人员没有什么区别。但是编程这个行业有自己的特点,那就是程序员要不断的学习才能跟进技术的发展。所以喜欢编程的程序员爱好学习新知识、肯钻研。

冯兄是自学的编程,一路走来在编程下的功夫很多,也跳了很多坑,像Jones Phil那样冯兄认为很多自己努力是被辜负了或者说可以做的更好。

冯兄曾多次在搜索引擎中寻找”编程的核心是什么?”,并没有得到完美的答案。至今冯兄也给不出这个问题的答案,但是五年来工作对编程的理解积累出对”搬砖”艺术的一些理解:

开发语言框架、编程工具只是辅助编程的工具,不能沉迷

一个公司一般有自己主流的编程语言,可能是java也可能是go或者其他,工作当中用到这个语言及相关框架当然要深入学习,但是不能太沉迷于各个框架学习,尤其不能停留在使用层次,而不去研究背后的原理。如果这样你下的功夫再多,也只是对一个框架熟悉而已,不能提高自己的编程能力。

编程语言也要从语言层次去多了解其他语言,这里说的语言层次不是指语言的类库实现,而是语言的解决问题的方式,比如编程范式、动态/静态类型、强/弱类型等。

不要沉迷于vimIDE等主题样式的过多研究,除非你想编写一套样式。如果你感觉别人的主题很酷,有时间可以配置一个,但是不要浪费太多的时间,这对你程序员核心能力的提高不会太多。

程序员要好读书,并且求甚解

编程当中经常会遇到很多问题,如果都”好读书,不求甚解”,那么就会收获很少,很多东西感觉像玄学一样。这样久而久之,会慢慢地失去自信并对编程失去兴趣。

如果能将遇到有价值的问题研究透彻,并且将自己的心得记录、分享出来,会大有裨益。当然,这里还涉及到一个问题就是下面说的知识体系,人的精力是有限的,如果是你知识体系外的一个问题没弄明白就没必要纠结,就像用git时候可能你明明就没有改到冲突代码结果一拉取冲突了,这时候先网上查查或者请教别人解决问题,而不要花费太多时间研究,除非你是在研究git,那需要系统的学习才能解决你的问题,在网上随便找乱尝试浪费时间也不会有结果。

用博客将你平时研究明白的知识一点点记录下来,并能够给别人讲明白。这样你才是真正掌握了知识。

如果想创建免费的个人博客,可以参考:https://fengmengzhao.github.io/2018/06/07/step-by-step-learn-to-build-an-awesome-jekyll-blog-free-hostd-by-github.html

人的精力是有限的,定义自己的知识体系往深度发展

和编程相关要学习的计算机科学知识有很多:操作系统、编程语言、数据库、网络等等,每一个分支都不是那么容易能研究透彻的。而一个人的精力是有限的,不可能各个分支都成为专家。定义自己的知识体系,在知识体系内往深度发展能带来质的蜕变。避免出现今天研究后端发现没那么容易,明天就开始研究前端发现前端更难掌握,这种小猫钓鱼的学习情况,最后会对计算机科学失去信心。

计算机科学各个分支是相关联系的,发展知识体系的广度开阔视野很必要

如果把知识体系比作一颗大树,那么上面说的知识深度就是说”这棵树的根能够扎多深”,那么知识广度就是说”这棵树能分出多少枝杈”,二者也是相辅相成的。枝杈茂盛了能帮助根扎得更深,根越深就有更多的机会长出新的枝杈。

当一个后端开发被安排前端活的时候,不要带着偏见和抗拒。前端无非是用另外一种编程语言处理不同范畴的问题而已。对一个开发来说这是扩展知识广度增加知识体系枝杈的时候。

知识深度决定了你有多强,知识的广度决定了能变得多强。

要低头看路,但也要抬头看天

马克思说:”资本主义来到世间,每个毛孔里都沾满了血和肮脏的东西”,这句话可能只有被残酷的社会毒打过才能有深刻的体会。在资本的糖衣炮弹诱惑和皮鞭驱打下,程序员打工人双眼布满了血丝,身体被掏空了,精神上对自己”哀其不争,怒气不奋”。这群人经常默默心里说:”老子明天开始背面试题,受够了,不干了!”、”整天干这样的活把人都干废了,要好好看书换一家工作”、”撒币领导真的无脑,不想再多呆一天”…。可是疲惫的工作下班回家是晚上10点了,很难抽出时间来学习,早上更是起不来,即使用意志强行起来了,发现不知道该做点什么。

这是大部分程序员打工人的困境,也是一个恶性循环。付出了精力和时间,但是个人没有成长,每天兜兜转转一晃可能就是三五年。这时候能引领打工人走出困境的只有自己,资本把打工人当做机器驱使,程序员打工人要赋予自己灵魂,低头看路做项目完成工作没问题,也是职责所在,一定要时不时抬头看天思考:”我今天有成长吗?我是不是陷入了恶性循环但没有做任何改变的尝试?是不是一直待在舒适区而自我感觉良好?…“。冯兄也是在困境中的人,或者说任何人在他所在的阶段都不同程度的存在所谓的恶性循环,如果不知道该怎们做,可以尝试:

  1. 做别人做不了的。任何人都具有自己的优势,结合自己的长处去发展,你就已经赢了很多人。比如冯兄能多看懂几个英文单词,就找一些国外高质量博文翻译,一来提升自己,二来帮助初学者。
  2. 做别人不愿意做的。似乎程序员人人都不愿意写文档,如果能把一个项目文档写的体体面面,这是一个强大的能力。

要低头看路,同时别忘了抬头看天,看一看初心,看一看自己的收获,看一看接下来的路是不是自己想要的,看一看要不要做一点什么…

5. 愿:功不唐捐

那,到底谁该为Jones Phil那十年被辜负的努力负责呢? 应该是他发现自己是个quora控但没有做出改变的勇气。五年来冯兄很用功,还是很平庸,谁来负责呢?应该是压低的头只顾看路的仓皇,都不记得抬头看一下天的那份思考。

愿2022年:

和冯兄一样平庸的程序员都能努力做到平庸但不简单,记着平庸加上不简单就是朝着优秀的方向小跑。

那些佝偻着、绷直着和半躺着身体改代码的程序员能够对bug手到擒来兵不血刃。

那些心理默念或者大声说出来”见证奇迹的时候到了”的程序员能够收获多一点自信和笑容,少一点落寞和失望。

那些掉落在桌子上、地板上的头发能够兑现:”我秃了,但我也强了”。

那些心理憋着一股气受够了的程序员能够多一点勇气和行动,打破恶性循环,逆境而生。

那些被别人碾压、抓耳挠腮说学不会怀疑自己是否适合编程的程序员能够找准自己的定位和方向,心急吃不了热豆腐,要慢慢变强。

那些还没踏入职场在辛苦找工作以及那些由于种种原因离开了原工作还在找工作的程序员能够遇到伯乐,择良木而栖。

所有的程序员打工人能够低头看路并抬头看天,日拱一卒,功不唐捐。

6. 引用

更新记录

  • 2022-01-17 12:34 修改引用中原文链接错误