① 6.14,我在图森的实习开始了!开始前,我刷了一遍(我混入的)亚麻实习微信大群,大家吐槽最多的是 mentor 或 mgr 没时间(比如因为 on-call)、失约、去旅游了、不接电话、中途离职跑路或被调走(极其常见)、不清楚政策、不熟悉 project、无力解决实习生的技术问题、给的文档让人看不懂,遇到 blocker 一卡可能就是一两天…
② 我还是被分到了 Map Infra 组,我本来说我前 2 个暑假都在搞地图,不想继续搞地图了,开始前我应该联系当时那位 HR 聊分组的事的,不过无所谓了。后来想想,总是搞地图也许也是件好事;老爸强调过要把 SWE 和某项具体业务结合,地图是生活中的必需品,而且如果世界按万物互联的趋势发展,地图的提升空间还很大,未来我可以选择深耕这一领域。
③ 6.14 见了 mentor 和组长,组里除了我共 6 人,一位港中大 PhD 毕业的组长、4 位 Sr SWE,这是职级的通货膨胀嘛…(后来发现我们组好像是例外,其他组平均职级远没这么高。回想起了我腾讯的组…)
④ 6.15 忙着配环境、设置 VS code SSH,哇,如果当时 224n 我会这种操作,那就不用整天 git pull 或者远程 vim,得方便很多了!第 1 周学了点 vue.js,真是太庆幸我上了 CS142、暑假前两周自己又实践做了网站!
⑤ 这里得提一下 783 对我的影响,至今记得第一次见面时(D5P342-200907)他说了句“我的目标很明确,就是要做全栈”,他的选课也确实是一系列挺实用的 SWE 课(当然也有 AI)。
⑥ 6.16,我在小会上问了组长关于 return 的政策和对我的期望,了解到组里 2 位组员是去年的 intern return。另外一个关键信息是他们今年招的另一个 intern 给割了,这对我应该是利好。
⑦ 6.18 组会上认识了其他组员们,这是唯一一次大家开了视频,平时开会大家都不开的。我们组每周只有 1 次组会,组长说现在这种组会的组织方式不太 scalable,他也在思考这个问题。话说我好像不用写周报,啊!太爽了!!以前在 GSILab,写周报真的非常耗费精力。
⑧ 其中一位组员吐槽了他要做的一件事已经有其他人做过了,但“他的代码是给自己用的,我和他要求稍微有点不一样,就只能自己重新写码”,我虽然不知道细节,但很能感同身受。
⑨ 我的第一项任务是写个 API(根据 GPS 点,返回卡车在此地拍摄过的图片,是个类似谷歌街景的功能),这需要“连接”起内部已有的一些 API。这让我想起了 761 对她去年 FB 实习的评价(如果我理解正确的话):上游和下游的 API 都写好了,她只要写些中间件把上下游给串起来。
⑩ 这个 API 是 Map Platform 组的人整的,564 就在这个组。API 的教程写的其实算详细了(和我 RAship 遇到的文档相比),但比较过时,里面用的数据、路径早已不存在了,而且还有几个 subtle 的坑。6.21 我按照教程上的代码调 API,结果返回结果总是空的,于是去对应的 slack channel 问。(话说不仅是我们组,这个大 channel 工程师都通用中文沟通…)
⑪ 这时,该 API 的另一个用户在 slack 上找我说,API 的负责人今天不在,他可以帮我看看;于是很耐心、客气地帮我分析可能的问题,还分享了他的代码给我。这件事挺触动我的,能够这样完全无偿的帮我,这就是 TuSimple 的文化嘛?i 了 i 了。
⑫ 6.24 到 29 号 mentor 放假出去玩了,6.23 下午他带我过了一遍 Map Editor 的前后端代码结构,这个 tool 主要是 2 年前他和另一位不在了的工程师写的,mentor 说我的实习会围绕着它展开。晚上他在离开之前写好了 starter code 给我,这还是挺关键的,不然我还真不知道从哪开始。
⑬ Map Editor 是 TuSimple 内部点云数据的可视化软件。这个点云的作用有协助导航、交规信息预存等,每次卡车开始驾驶前,相关路段的点云会加载进车载电脑。现在只测绘了美国几条高速路的点云,因此自动驾驶还任重道远啊。这条感悟我和不少朋友都聊过了。
⑭ 6.27,564 说他感觉组里每个人独立负责一个大 project,多人合作比较少。000 提到他去年在 TuSimple 的 mentor,评价他虽然厉害,但并不在意如何在团队合作情境下写码。
⑮ 000 自己写的码也没写啥对应的文档,他评价这样的代码后来人是没法使用的。“如果有合作,那应该有 40% 的精力是花在写文档上”,我深以为然。
⑯ 000 当时是科研岗,因此这不由得让我想起了我的 RAship。709 非常聪明,思维极其灵活,但他似乎认为我读懂他的代码、按他代码的思路继续写一些东西,是轻而易举的事,其实不然。这主要不是我的能力问题,却会使我看上去显得 incompetent。
⑰ 6.30 早上 mentor 回来了,我们整了好久 mac 上面点右键被 JavaScript 认为点左键的问题。目前我写的后端代码,每个请求都得遍历一个 bag,要跑至少 30 秒,还不保证精度。下午的 3 人小会上和组长、mentor 讨论了一下,mentor 解释了为啥遍历需要这么长时间(和 bag 存储的方式有关),说 d2 应该提供一个跳着遍历的 API,这是别的组应该负责的事情。
⑱ 他们说我可以先不优化,先把 feature 发布了,到时候会有各种人给我提需求。还在给我准备下一项 project,但“得先跟别组的大佬 argue 完怎么设计”再让我加入…
⑲ 组长考虑了一下要不要发 ticket 给我,之后说算了,刚上手时谁也不知道我进展的速度会怎样。这才对嘛!(对比我在 lab 里那个蛋疼的周报制度。)另一个原因是 ticket 主要是要协调多组员工,上下游依赖关系复杂时使用,我现在的任务比较独立,所以组长说不需要 ticket。7.1,实习第 14 天,经历了各种卡住之后,我终于对之后的代码要怎么写有清晰的认知了。
⑳ 前面提到 d2 这个内部工具的功能不全,7.2 早上,我在一个 slack 群里向 d2 的负责人确认过后,组长直接介入,向他怼了一句:“这合理吗?”这让我感触很深,想起地里有篇写 FB 实习的帖子里有句话:“好的 manager 是对内态度好照顾组员,对外强势能拿到好项目保证组内 grow ”,真高兴我的组长就是这样的人!
㉑ 7.5 放假贼爽,工作以后真是比上学轻松好多啊;我的很多同学们也深有同感(761:上学仿佛同时在 4 个组 intern 而且没有 mentor),这让我突然断了延毕的念头,除非拿到特别值的实习 offer。看着 471 在全国到处玩、000 在全美到处玩,我想工作以后我也会是这种状态吧!