① 5.26,leader 搞好了 demo 让我自己在本地测试代码,花好大劲把代码和数据下载下来后(由于用的是腾讯自制的软件,出了问题没法谷歌,只能自己整…),代码还是怎么也跑不起来。过去半年我基本上都在提升自己的软实力,好久没有过挣扎于技术细节的时候了。软件这东西真是一点错都不行,这么巨大的一个程序就更是…
② 实习第 6 天,我已经感受到了“学习曲线斜率指数下降”的感觉。5.27 还是怎么也跑不了代码,绝望。Leader 给的指示经常非常“宏观”,漏掉的细节需要我自己摸索着补上。而且很多时候指令并不清楚,我可能得在不同场合下看好多遍才能明白他说的意思。
③ 哎,上手是最难的阶段了,虽然现在卡在跑不了程序的阶段,效率很低,但相信一旦我开始理解了整套程序,进度一定会很快的!leader 应该可以理解的 :-) 以我在学校的经验,如果我理解不了,换别人也很难理解这么复杂的代码。
④ 5.27,我收到了 SVL 飞飞组的编程测试,在 Ubuntu 上装了几个包以后我电脑的硬盘空间顿时减小 20 GB。
⑤ 5.28 花了一天尝试理解概念,感觉还挺有趣的,5.29 真正开始写代码以后,我很快就被各种复杂的细节整的要吐了,面对这个不可能完成的任务,我无数次有放弃的想法。
⑥ 搞懂它游戏的框架得一天,CNN 得花一天,算法的每一步都要自己花很久找细节补上完整的版图。有的代码直接抄上面的。OpenAI 的人是神仙吧…
⑦ SVL 测试要求里强调代码质量大于 performance,这一点我十分赞同。OpenAI 的 PPO 算法是我见过最清晰的代码之一,所有参数都有极其整洁、详细的说明,整个算法虽然长达几百行,但非常有条理,重要的步骤也有解释。
⑧ 腾讯给我的代码质量还是稍差些,当然工作文档里有对输入输出的简单描述,不过没有详细的数据类型和 pre-conditions,测试程序也没有对 argv 格式的描述。
⑨ 这样高强度的工作是有一个限度的,每天工作 7 小时是可持续的极限,40 小时可能是连续工作的极限,再长就要吐血了。大学期间我准备时间最长的一次考试是一年前我花 35 小时狂怼的 NP 完全,这么复杂的概念让我更长时间地钻研我肯定是受不了的。
⑩ 5.29,随着某行政令的签署,留学生群体瞬间炸开了锅,无数工科留学生的人生轨迹或者规划,似乎在一夜之间改变。为此 Jim 还延长了 SVL 编程测试的规定时长(5 天延至 8 天),以“减轻我们的焦虑”。
⑪ 我之前还从来没把中美关系考虑进我的人生规划当中,现在突然觉得我的一些人生选择(如是否读 PhD),可能要上升到选边站的问题了。
⑫ 本来我是否读 PhD 考虑的因素是自己能否胜任、PhD 对我职业发展的影响,现在我意识到,如果我在美国读“敏感方向”的 PhD,可能要面临毕业前无法回国的境地,甚至签证还可能随时取消?这样也太憋屈了。是时候考虑退路了,去大陆 / 香港 / 欧洲读 PhD?或者直接不走 PhD 这条路了?
⑬ 5.31 整个白天我都完全无法学习,后来 6.1 一整天也荒废掉了。也许是我现在的任务都太过复杂,远超我舒适区能接受的范畴吧。同时也没有太多外界的动力…
⑭ 5.31,在我苦苦研究道路挖掘的代码时,张老师说他准备让我换一个项目;原本的算法他自己跑出来效果不好,他想重新换一个算法。这样项目周期迭代太快,可能不适合我做。
⑮ 实际上,上周他忙着搞其他事,就随手把代码和数据复制了一份,让我自己下载下来研究,也没再管我。哎正好上周我花了两天搞 SVL,要是啃他给我的代码估计也不会有啥进展。
⑯ 新项目是“路网对比”,带我的新 mentor 很明显比 leader 空闲得多,我的消息他回得特别快。他是中科大本科毕业,已经成家带娃了,入职腾讯 3 年,还拿过五星员工。后来我知道他和 leader 其实都是 x 级,manager 比他们高 3 级。(感觉 x 和 x+3 之间有好大的鸿沟啊,副组长都是 x?)
⑰ mentor 问我对实习有何期望、想要怎样的难度。一开始他发了一堆文档给我看,有很多地理上的术语还有业务上的东西,我并不能看懂(突然理解了为啥金融公司招程序员不需要会金融),也不知道哪些是和工作有关的。
⑱ 之后他为我设计了一个循序渐进的项目计划,还说如果我能做出来那已经能赶上正式员工的“中段”水平了。开始之前我先接了一个上手的项目,这个项目很简单,大致是统计各省份的道路长度,6.3 我很快就做好了。
⑲ 本来是需要用多进程做的,但我发现多进程下要共享 Counter 非常不方便,就用正常方法写了,后来证明不用多进程也只要 9 分钟就能跑完程序(数据一共有大概 10 GB)。这样一来我对项目和数据也有了初步的了解。