baiyan

2019的主题叫做重生。

反思

1月。刚刚结束为期五个月的实习,我回到杭州暂做休整。这五个月,是我一生中成长最快的五个月,也是我一生中受到打击最大的五个月。在校期间,我通过两年时间积累起来的自信一落千丈,我感受到我的能力是那样一文不值、身体是如此的弱不禁风。那一刻我才明白,我不过是一只井底之蛙罢了。我折服于雷总能力的广度与深度、叹于伟滨哥、栋哥对一位合格后端工程师的要求。感谢你们,教会了我面对问题,如何学习、如何思考、如何总结,这对我今后的职业生涯有着莫大的帮助。最后,我也很高兴、很荣幸能够认识grape同学,在成长与奋斗的路上,有一位优秀战友的陪伴,实在是太幸福了。
实习期间写过的一个bug,把2018了写成2016我也是服了......

一件事,你只知道怎么做,并把它按时完成,是远远不够的。你需要知道为什么这样做,同一个问题,有没有其他更好的解决方案,每种方案的比较优势在哪里。“会当凌绝顶,一览众山小”。感谢你们,让我能够从更高层次,新奇的角度、更宏观地领略那些栩栩如生的、我从未见过的大好河山。虽然实习的路上布满荆棘,但是我内心深处对编程的热爱,与用一行一行代码垒成高山的这份成就感,能够驱使我一直坚定不移地走下去。而且我不仅要走下去,而且要走的更快、走得更好。2018有太多太多值得回忆的汗水与泪水,就只能先暂且停笔了。
2月回到久违的家中,却又不能和父母吐露太多过去在精神上以及身体上所经历的一切苦难与挫折,此时此刻我只希望他们能够平安、健康。其实这就足够了。所有过往的经历都告诉我,身体健康就是P0优先级的事情。实现任何人生目标的前提,首先需要一个生龙活虎的你。2018年,随着工作上的压力及生活琐事的困扰,我的身体状况不断恶化,血压一度升到170,甚至要靠降压药维持,心脏功能也受到了很大的损伤,甚至出现了胸闷等轻度抑郁的症状。直到2018年底,我的身体已无法支持如此高的工作强度,我无法继续实习下去。所以,这篇文章的主题叫做“重生”,从2019年1月开始,除了毕业论文与答辩,我没有继续进行繁重的脑力劳动,取而代之的是旅游与运动,并且重拾我的音乐及电竞事业,这就要从3月开始说起了。

调整

3月,一个春暖花开的季节。我从家中启程,回到学校,享受学生时代仅剩的最后一个快乐学期,所以我会切换到比较轻松愉快的写作风格哈哈。但是,我不再想把它叫做一个学期,它更是一个让你去完成四年来未尽心愿的一个契机。开始重拾荒废了半年的羽毛球,基本每天泡在球馆。这段时间,我开始做旅行计划,启程领略祖国的大好河山。首先,我们跟着大佬的脚步,自驾来到西湖太子湾公园(大佬帅气的背影):

因为我们觉得自驾游实在是太香,所以去湘湖野餐也被妥妥的安排(又是大佬帅气的侧颜):

然后我们还去了LGD杭州主场:

但是,每当想起来比我优秀的同事还在努力研究源码、学习技术,我这样一直无休止的玩下去,是让我相当有负罪感的事情。所以,看到之前优秀的同事们都在通过写技术文章提高自己的影响力,所以,抱着试试看的心态,在2019年4月18日,我在segmentfault上发表了第一篇技术文章,也是在我的职业生涯中,一项从0到1的一个里程碑式突破:
【PHP7源码学习】PHP内存管理1笔记
当然了,那时的文笔还是相当稚嫩,以至于在发出文章之前,我都要在心理思考许久,会不会有人看,会不会有人评论我写的不对、不好。在经过一番心理斗争之后,以及好兄弟grape的鼓励下,我还是咬牙发出了第一篇文章。让我欣慰的是,我担心的事情根本就没有出现,因为根本没什么人看......但是换一个角度说,幸亏没什么人看,不然,我可能更加不敢迈开这一步。目前为止,grape同学和我共同发表了51篇文章,收获了42次点赞、26个粉丝,并且开通了属于我们两个人的微信公众号。我佩服当初决定开始写作的勇气。我会更加用心地写下去,形成一个技术-写作-收获-技术的完整闭环,在技术的道路收获果实,继续前进。
这是为了其中一篇文章的写作所打的草稿:

随着文章越发越多,我的自信心也开始逐渐恢复。过了半个月,我们创建了“LNMPR源码学习”微信公众号,将自认为写的还算可以的文章同步到微信公众号中,也收获了一些粉丝(很多都是自己人哈哈)。
5-6月的主题是毕业旅行。我的毕业旅行第一弹是一次广度优先的旅行,而第二次就是深度优先了。第一次毕业旅行中,我最好的朋友雨辰和我一同,从杭州出发,途径武汉、重庆、成都、都江堰、西安、华山、洛阳,共7个城市。而第二次毕业旅行,我和世钰小伙子决定赴四年前那呼伦贝尔之约。在我的旅行中,飞机这个交通工具是不会出现的。这源于我看着火车长大的童年,也源于我看过的一句广告语:“在乎的不是目的地,而是沿途的风景“:


至于景点内部的图我就不发了,毕竟网上这么多专业人士拍的比我强多了。唯一有一点遗憾的是,在满洲里国门俯瞰俄罗斯的时候,我真的很想踏上国门下方这条西伯利亚大铁路,由一名旁观者,变成火车上的一员,从这里开始继续下一段到莫斯科的旅程。

回到杭州之后,至于毕业,除了对相处了四年之久的好兄弟们有所不舍之外,并没有让我太多留恋的人和事。每当想到那些上课水、给分高、期末给划重点却讲不出什么内容的老师受到学生们热捧的时候,我就想赶紧离开这个地方。这样一来,认真备课、讲课的那些严格的老师就会越来越少,上课讲笑话的老师却越来越多,这种恶性循环每一天都在上演。虽然有些人说,师傅领进门,修行在个人。但是,师傅这个门都没领进来,个人怎么开始修行呢?修行的高度又能有多高呢?

新生

由于之前秋招的offer还是在北京,所以我又要回到让我百感交集、又爱又恨的帝都了。这是我人生的一个新的开始,但又不算是一个全新的开始。毕竟经历了去年的魔鬼训练,再次面对北京这个老朋友,我已经无所畏惧了。入职之后,由于我的技术栈和公司还是比较匹配的,所以刚开始并没有适应方面的问题,也得到了领导及同事的鼓励,这对我自信心方面的恢复还是有很大促进作用的。我不再像去年那样畏手畏脚,小心翼翼地写bug了。由于工作环境还算轻松,而且有很多应届的小伙伴,这非常有助于我调整心态、从上一阶段的人生谷底慢慢爬上来,找回自己的节奏。感谢你们对我的认可与鼓励。我会用心记住,在我成长路上的每一座灯塔。
当然,仅仅工作是远远不够的,grape同学和我还是那样的上进(成功感动了自己)在结束了redis源码的写作之后,我们决定暂停写作计划,回归实践。于是,我们制定了一个2019下半年至2020年“宏伟”的开发计划......

可能大家会觉得没什么技术含量,让大家见笑了。这其中很大一部分灵感都是来源于工作中其余大佬同事们的经验与成果,而我又无法在工作中一一去实现那些基础服务。所以,我们此次创建业余项目的目的,就在于亲力亲为地去模仿、并完成这些服务,将工作中学到的知识内化,进而变成自己的东西。
在项目开发中,我们的后端使用了:PHP+Yaf+Nos(我们二人组的名字叫Nos,取自grape同学和我的姓名)。Nos框架是我们为了解决Yaf自带类库过少的问题,所以我们自己造轮子,能够兼顾Yaf的性能和开发的效率。而前端呢采用Vue + ElementUI,后续其他微服务如果有高并发和高性能的需求,可能还会引入Go,总之我们也不会盲目的跟风模仿,最好的就是最适合的,技术选型中的超前投资往往是不明智的,其投入产出比也并不会很高。
在下半年业余项目的开发过程中,让我受益最大的就是,我对前端有了一个全新的认识,我抛弃了之前对前端老三样 + jQuery的架构的认识,而领略到了组件化开发的思想。这种前端思维方式的转变,对我来说是一个全新的认识。但是,虽然它表面上看起来比较”新“,但是我们通常说的组件,其实就是一个代码复用的单元,就是函数的思想。父组件给子组件传值的props,其实就是在一个函数中调用另一个函数,然后将函数的形参传递进去。那么子组件如何向父组件传值,在Vue中是通过事件触发的方式,而在函数中就是return的形式。而Vuex的作用其实就相当于全局变量的作用,解决了非父子组件间传值的问题。所以,我不太认可父子组件的说法,而更认可调用组件和被调用组件这种说法。其实这就是编程方法论中的“变”与“不变”的重要性。所以,为了分离“不变”的代码,我们又开发了一个前端的common项目,把我们两个人所能够复用的,比如登录注册组件,分离到common项目进行统一管理。​在需要使用的业务线中通过npm引入,实现了对组件的复用与对“不变”部分的抽离。我们其实就像提取公因子那样,把不变的部分单独提取出来,其本质上都是通过复用达到提高可维护性、进而提高开发效率的目的,Vue的组件化开发思想也是如此。
由于前端对于我来说,也仅仅是一个副语言而已,可能我对Vue的了解并没有那么深。我只是想通过这个例子告诉大家,在计算机技术中,许多编程思想其实是相通的。很多专业名词其实看起来比较复杂,其实,如果你能够抓住很多名词之间的共同点,并抓住其本质,我相信就可以触类旁通,举一反三,并将这种思想运用到工作中。这也是我为什么要读源码的目的。很多人说读源码没有用,离工作太远。但我认为,学习源码,就是学习源码中那些优秀的编程思想,以及对某种数据结构的权衡取舍的过程。比如MySQL为什么使用B+树而不是普通的二叉树,Redis的sorted set底层什么时候用ziplist,什么时候用skiplist,每种结构都有什么比较优势,我相信这种技术选型的过程,是通往架构师的必经之路吧。技术学习是一场马拉松。技术的潮流每天都在更新迭代。学习一门语言、或者是一门新鲜的技术固然没错。但是,5年后、甚至10年后,这些技术可能已经走下神坛。但是,如果你学习的是编程的思想而不仅仅拘泥于某门语言,那么你就会成为一棵常青树,不管他出了Go语言也好,还是Run、Stop语言也好,我相信经过这种通用能力的培养,你一定会驾轻就熟、信手拈来了,这同样也是一种对“变”与不变作出权衡取舍的过程。

展望

这篇总结写着写着,笔锋一转,好像回到了日常写技术文章的状态。虽然我的核心竞争力在于技术,但技术,也只是我漫漫人生长河中的沧海一粟。除了学习技术、立足于生存之外,我们也不要忘记精神上的滋养。学会读书、读人更为重要。最近在读朱光潜的《谈美书简》,其中“无所为而为”的思想令我感触颇深。这里第一个为是四声,第二个为是二声。那么第一个为,是为了什么呢,其实作者将做事的思想分为两种,一种是实用主义,一种是美学主义,同时作者又将实用思想与艺术思想做了一个对比,讲述了同一个事物,当你的脑海中持有不同的思想时候,你看到的景象,也会完全不同。我们在做一件事、用代码描绘一个项目、一个产品的时候,不要去想太多的利益纠纷,工资、升职、投入产出比这些琐事,而把这个项目、产品当做一件艺术品,而你就是一个艺术家。当你以这种无所顾忌、心无旁骛的美学心态去打磨每一个页面、每一个产品的时候、当你只管用打磨一件艺术品那样的心态,将它们做到你心中的极致的时候,工资这些“身外之物”其实就是水到渠成的事情。这里,我只是举一个小小的例子,其实读书不仅仅能够促进我们树立职场上的一个良好心态,更能够影响我们生活中的方方面面,使整个人的气质得以升华。
读书的同时,我们还要学会读人。工作中,每天你都要和人打交道,这是任何行业都无法避免的。良好的沟通是成功的一半。而每个人,却又是不一样的,你怎样恰到好处地和不同的人,建立不同的沟通桥梁,也是一个很大的难题。我觉得沟通的关键,就在于“换位思考”这四个字。如果你能够用心的体会对方的感受和需要,并且给出符合对方感受和需要的答案,你就基本掌握了读人这门广而深的学问了。
2019整体对我来说,相当于一个缓冲区。在去年的这个时候,我也并没有给自己树立多么宏伟的目标。我觉得,先把身体和心理调整好是2019的第一要务。但是很遗憾,由于2019年也发生了不少令我情绪波动比较大的事情,所以我还并没有完全调整回来,2020,我们继续吧。
最后是2020我对自己的要求:

  • 每天至少阅读1小时技术以外的书籍并记录读书笔记
  • 每周去健身房运动2-3次
  • 深入研究MySQL,再读《MySQL技术内幕》
  • 读Yaf框架源码,继续产出文章并同步SegmentFault和公众号
  • SF粉丝达到50+
  • 熟练掌握Go语言
  • NDP平台上线
  • 在日报系统中记录每天的成长
  • 减少无意义的信息摄入
  • 尊重身边的每一个人

每日精进、刻意练习、摒弃杂念。2020,加油。

03-05 13:23