今天重新翻看我的原来写过的那些文章,感慨良多。

19年8月份从麦马毕业,九月三号到华为入职,一眨眼已经过去了八个月。工作之前从来没接触过GPU,C++,编译器,所以入职以后花了很久的时间补课,但是项目不会停下来等我,该有的ddl都在既定的时间等着我,不会早一天,也不会迟一天。这样倒是很好,给了我学习的动力,但同时也把996,或是9127变成了日常。

如果一定要为研究生阶段加上一个注解,我觉得是“迷茫地往前冲”。研究生的时候,最明显的感觉就是迷茫。很好理解,我知道我当时的研究方向(深度学习)不是我的兴趣所在,只是老师给我的任务而已,而我当时的目标是做一个后台的java程序员,所以找不到志同道合的伙伴,这是其一。我不是一个热爱学术的人,我读研的唯一原因就是充实我自己,或者更功利的说,就是储备好技能,为了工作做准备, 但是以后的具体工作是什么?要储备什么技能?谁能和我聊一聊?不知道,这是其二。好在当时认定了四个方向:高并发,Java语法(或者叫语言更贴切),数据结构,算法,其中的后三个帮助我找到了工作,并在工作中的每一天都疯狂使用。很好,也很幸运。当时看一本书,叫JVM深入理解,看了两遍,做了读书笔记,但是自己也一直在质疑研究这么底层的东西是否有意义。结果面试的时候,面试官问我,Java是怎么怎么运行的,JVM有什么是怎么管理对象的,我才明白当时死抠JVM的意义。研究算法的时候,把leetcode做烂了,还买了会员,所以在面试的时候问我算法,数据结构我从来没有慌过。读研是一场苦心孤诣的旅程,没有风景,没有陪伴,得不到支持(好在我的导师人很好,也从来没有反对,在此感谢陈隽老师!),更可怕的是没有明确的方向,只能埋着头向前冲,现在回头看,这一切可能效率不是非常高,但都是有价值的。

刚刚入职华为的时候还是很慌的,完全没有接触过编译器,有C的经验但是没写过C++,所以刚工作的时候都是憋在那儿,不知道应该干什么,也不知道怎么干。当时我的一个同事在教我的时候说了一句话,编译器是很难的,基本上没有人能快速上手,都要慢慢来,don’t worry about it(感谢他)。所以我就觉得,每天多懂一点点就可以了。实际上量变产生质变是有道理的,从什么都不同到什么都懂也是不可能的。但是慢慢的,是能感觉到ok,这个东西虽然我不知道细节,但是我知道是大概干什么的,项目过程中碰到的代码,用gdb跟一下,代码读一读大概能理解部分的细节,到自己改动的时候,把一些corner case想明白,不明白的再git blame,和写的人讨论一下,慢慢的心中就有一个总体的概念了。

在华为还有一个特殊的好处,就是我可以用中文去明白一些概念。我不是CS的学生,几乎所有的编程都是我自学的,虽然我也会读英文的教材,但是总体的知识体系都是用中文构建的,所以在华为,我能从身边说中文的同事,和国内的同事身上学到更直接的知识。同时,高强度的工作会让目标变得很单一,方向也会很明确,好也不好,但是对于一个知识结构是空白的人来说没什么坏处。

写于2020年4月20日,赶工Packed Math,deadline在月底。