我在哥大读博的五年,万字总结

  • 当听众问问题的时候,If you don’t know the answer, just say don’t know.

  • 如果是跟 mentor 日常讨论的 slides,因为会讨论到很细节的东西,有些图 PPT 画起来,很花时间,而且通常这样细节的图还挺多,所以可以就 ipad 上面手画一画,截个图放到 PPT 里就好了;如果是正式一点的 presentation,写 slides 跟写 paper 的 principle 有点像,不要太 focus 在细节上,更重要的是讲清楚 motivation,为什么这样设计,细枝末节的不关键的内容,放在 backup slides 里面。

19 年 CVPR,Doctoral Consortium 有幸 mentor 是斯坦福的一位大牛教授,她也提到了 presentation 的重要性,说她们 lab 有个开玩笑的说法,一份 slides 交给她去改,no pixel left…… 为了分享如何能让报告听起来有兴趣,她画了下面这张图,让听众情感(亦是兴趣高低,注意力程度)随着时间的变化,有三个高潮:首先,介绍你的问题,通常这时候大家都会引发兴趣;但听着听着大家注意力就不集中了,这时候就到了图中第一个低谷,这时候需要指出来这个问题有哪些 challenge,大家的兴趣就又被激发了;等大家兴趣来了,精力集中的时候,介绍你的一部分工作 work 1;等介绍完第一个工作,大家又疲劳了,这时候指出来,即使有这个 work 1,问题还不能被解决,因为有 remaining challenge;接着大家又被调动了兴致,可以开始介绍 work 2。

3.2 谈谈写 paper

在 2.2 里面讲了对某一篇 paper,如何选题和做规划。那真的到了写 paper 的时候,我自己有几点如何让文章写的更好的体会:

  • 先给一个 Talk。写 paper 最难的是构思 storyline,而最好的完成这一步的方法就是先对你的工作做一个 slides,给周围的人 present 一遍。这个过程中,你会梳理好自己的思路,画好文中的 figure,准备好实验结果的 table,周围的人还可以给你提意见,帮助你完善,等这个 talk 给完了,后面写 paper 就会顺畅自然了。其实我现在,如果准备投一个 paper,当做了一段时间后,就会按照最终 presentation 的思路,准备 slides,用在每周给老板们 report 时。开头先快速 review 一下做的 task 和提出的方法,remind 一下 context,然后重点 focus 在那周做的新东西上,所以每周汇报的 slides 可能 80% 都是跟上一周一样的,然后新的方法和实验结果的那几页 slides 是新的,有比较多的细节。

  • 用 Google doc 做语法检查。刚写好的 paper 有 typo 和语法错误是很难避免的,但常常会被 reviewer 揪着不放。大家写 paper 如今大都在 overleaf 上,但 overleaf 的查错还是不够好,建议可以写完 paper 后,贴到 Google doc 里面。几年前开始,估计是由于 deep learning 对 Google NLP 的改进很大,感觉 Google 自动改的质量已经非常高了。

  • Rationale 很重要。不光是要讲清楚你怎么做的,更要 justify 你问什么这么做;不光要讲你的结果比 baseline 好,更要解释为什么好;读者看到的不应是一个 “使用手册”。有时候我们写 paper,花了很多篇幅写了很多实现细节,但是更重要的是,解释 “为什么”,这个背后的逻辑和 insights。

  • 大部分 paper 都是提出一个新的方法,这类方法型 paper 似乎都可以套下面这个框架:

  • Introduction:可以分为以下几个部分:

  • Problem definition

  • Previous methods and their limits

  • 简单描述你是提出了什么技术来 overcome 上面的 limits

  • 一个图,非常 high-level 的解释前人工作的 limits 和你的工作怎么解决了这些 limits,最好让人 30 秒内完全看懂

  • 最后一段如今大都是,In summary, this paper makes three contributions:

  • First work to 解决什么 limits

  • 提出了什么 novel 的技术

  • outperform 了 state-of-the-art 多少

  • Related Work:一般三五个 subp,分别 review 下相关的 topics,同样不光讲 previous work 做了啥,更要讲自己的方法跟前人工作有啥不同

  • Method

  • 这是文章的主体,按照你觉得最容易让别人看懂的方式来讲可以第一个 subp 是 overview,formulate 一下你的 problem 给出 notation,配一个整体 framework 的图,图里面的字体不能太大或者太小     * 看不清,要有些细节,让人光看图就能明白你的方法是怎么回事,但不要过于复杂,让人在不超过 2 分钟的时间看完这张图

  • 然后几个 subp 具体介绍你的方法或者模型;如果 testing 跟 training 不太一样,最后一个 subp 介绍 inference 时候的不同,通常是一些 post-processing 操作

  • Experiment

  • Datasets

  • Implementation details such as pre-processing process, training recipe

  • Evaluation metrics

  • Comparisons with state-of-the-art

  • Detailed analysis

  • Alternative design choice exploration

  • Ablation studies

  • Visualization examples

  • Conclusion (and Future Work)

  • Abstract:是全文的精简版,建议在 paper 写完第一稿差不多成型了,有定下来的成熟的 storyline 了,再去写 abstract;大概就是用一两句话分别概括 paper 里面每个 p,然后串起来

另外 paper 提交时候,可以交 supplementary materials,虽然 reviewer 并不被要求强制看这个,但其实给我们机会,去 include 更多文章技术细节、实验结果的好地方;在后面 rebuttal 阶段,通常篇幅有限制,但如果你已经在 supp 里面未雨绸缪,可以省很多空间,refer reviewer 去看你 supp 里面的内容就好了。

说到 rebuttal,我还是比较幸运的,从导师那学到很多。导师已经是功成名就,业界泰斗那种,起初我以为他这个级别会对我们是放养;但我在哥大投自己第一篇一作 paper 的时候,导师可以说是手把手带我入门了。还记得 16 年 CVPR review 出来后,导师找我讨论 rebuttal,我那会儿对写 rebuttal 并没有什么经验,也不知道可以用 R1 代表 review 1 等等。那天 meeting 开始已经晚上 7 点了,估计导师还没吃饭,我两就挨着坐在他办公室里,对着他的电脑,讨论 reviewer 提的一个一个问题。因为很多时候其实 reviewer 表达问题并不准确,他教我分析每个问题背后 reviewer 真正关注的点是什么。边讨论,导师边直接敲下我们讨论的 notes,meeting 完后,我看这 notes 基本上就可以算是个 rebuttal 的初稿了,比我 meet 前准备的 draft 强多了……

4. 记四次开会


2016 年,拉斯维加斯。

博士期间我参加了四年的 CVPR,这是我们行业的盛事了。学术会议通常,主会 3-4 天,有 oral 环节,大家可以听台上人轮流做报告,有 poster 环节,一个大场馆列满一排排的 poster stand,每篇 poster 有作者在旁边讲解和答疑,oral 和 poster 环节交替进行。大场馆在 poster 周围有各个公司的展台,一方面展示技术,一方面更多是在招人。主会前后一两天,有 tutorial 和 workshop,通常会有大佬来介绍最新的工作,因为现在 paper 大家很多早就挂在 Arxiv 上看过了,很多人觉得 workshop 比主会更有听的价值。

若用一个词形容 16 年参加 CVPR 的体验,那就是兴奋了。首先 Vegas 就足够让人兴奋了,一座沙漠中建起来的梦幻城市,各式各样的酒店,威尼斯人,凯撒皇宫,艾弗尔铁塔,每换一个酒店就像到了一个新的国家。三年后毕业旅行,我带爸妈来,故地重游依旧是很惊艳。

然后这也是第一次见到许多业界大佬们的真身。当时在湾区实习,候机的时候就发现周围都是同行。第一天晚上跟着师兄逛赌城大道,一个很高的老外来跟我们打招呼握手,我后来才意识到是现在在 Tesla 的 Andrej,之前本科的时候还邮件问过他 DBN 的问题,没想到竟然是他… 后面陆陆续续看到各种在 Paper 上面名字很熟悉的真人,很兴奋了…

这次开会,我才知道了,开会的目的不光是听报告学知识,也是 social 认识人的机会,我们需要融入到这个 community 里去。从优秀的人身上我们可以学到很多;每人各有所长,有机会合作的话,可以双赢;每个人都有盲区,需以他人为镜。而这些的前提就是,你要成为这个优秀圈子的一员,跟他们有交流。当时杜老板刚毕业加入 Facebook,因为我的工作基于他的之前的 C3D,在路上看到他,鼓起勇气跟他打了个招呼,杜老板很 nice 的跟我聊了一会儿,也是从那之后跟他们组有了些合作,我去年毕业后也加入了这个组。

不过那年,我对 social 的认识也就仅限于此了,我甚至不知道公司还有 party。不过好处是认识的人不多,没有太多的招呼要打,可以集中精力开会学习,这一年算是我开会最认真的一年了,基本上把所有 poster 都过了一遍。另外,我也是第一次讲 poster,这个环节一般两小时,站着不停说话其实蛮累的,建议可以备点零食,水在旁边。

2017 年,夏威夷。

感谢组织,第二年又免费去了个度假胜地…… 不过这一年,因为已经入行了,开会过程很忙碌。这年有幸中了篇 oral,导师很重视,前后 slides 改了很多遍,rehearsal 了好几回。为了听众体验比较好,可以看着听众有眼神交流,同时看起来 professional,导师要我脱稿。从西雅图飞夏威夷的飞机上,就一直在背稿子,然后一直反复 rehearsal…… 报告前还是很紧张忐忑的,台下坐着得有一千人,讲 12 分钟,3 分钟 QA,不过上台后似乎因为集中精力在报告本身,反而淡定了…… 话说这种事情,感觉都是第一次很紧张,经历过了,以后就好了;记得第一年只是做 poster 展示,我事前也很紧张,但经历过后,这第二年做 poster 展示时就非常淡定了。

报告给完后,因为最后一天有个 workshop 要给个 talk,slides 还没做,只能继续宅在酒店准备…… 悲催的整个开会期间,很多时间都呆在酒店,都没啥时间出去转转,只能默默给大家朋友圈点赞,也没有机会向第一年一样认认真真看 poster 了…… 所以很佩服大佬们,他们又要到处给 talk,要跟各种人 meet,是怎么安排开会时间的……

前面说到公司 party,在会议期间晚上,一般大公司都会组织自家的 party 供大家 social。虽然很多时候是大型尬聊现场,但公司很多员工会来,为来年招 intern 或者正式员工做宣传;很多学生会来,可以了解不同的组做些什么,有没有 headcount,intern 有没有 returning full-time offer;当然,还有就是有 free food 包晚饭,而且 Party 的场地很多时候是有特色的景点,印象中去年,微软是在一艘大轮船上(感谢张老师 carry),Facebook 是在水族馆。

很多时候这些 party 为了控制人流量,会要求 invitation。会议前公司们会给你发邮件 invite,可能是 HR 看到你要来 present paper,可能是某个公司 researcher 想要跟你面对面聊聊,也可以你直接联系公司的朋友,提前把你加到 list 上。有时候没有 invite,有认识的公司朋友,也可能直接带进去,或者人不多了,就直接不限制了。另外,第一年开会的新人,可能看到别人去 Party 自己没有 invite 会失落,但其实 duck 不必哈,找上落单的小伙伴,去周围景点好好玩玩,这可能是今后所有开的会里,可以自由支配晚上的时间,想去玩啥就玩啥,不用去尬聊的唯一一次了,好好珍惜!

2018 年,盐湖城。

这一年我博士第四年结束,开会的主要任务就是找工作了。前面说到,poster 场馆有很多公司的展台,前两年我也就去拿拿文化衫就走了,这一年则不然,因为展台有 HR 给你介绍公司的招聘流程,当场收简历,也有站台的员工,可以直接了解他们组的情况。当然,这样可能还是比较 general 的招聘,即使有员工,很可能跟你也不是做同一个小方向的,一般来说大公司里面偏 production 的组在这里认识的机会比较多;如果想找偏 research 的组,还是通过你 paper 认识你的同行,师兄弟朋友们的介绍,效率相对高些,可以约他们在展台或者 Party 上见面聊。对于找 postdoc 的同学,很多老师会约在开会期间见面,甚至面试,所以可以提前 reach out 约好。

2019 年,洛杉矶长滩。

洛杉矶也是我很喜欢的一个城市,因为我一直有个影视梦,所以很喜欢好莱坞,这大概就是我为什么坚定做 video 方向的初衷了。长滩其实离 LA 市区挺远的,算是一个度假小城市了,甚至有自己的机场。长滩市最著名的景点就是 literally 的长滩了,有很多游艇一列一列地停着,蛮壮观的。

19 年这会儿我已经毕业了,刚加入 Facebook,不用逛公司了解找工作的情况,倒是又可以认认真真开会了。另外,对于毕业生,会有个 Doctoral Consortium,强烈建议申请,他们会组织毕业生和业界大佬一对一吃饭,是个很难得的学习机会,毕竟除了自己导师,很少有其他老师能花一个小时跟你单独聊各种 research 和 career 上的问题了吧。

5. 记三次实习


2016 年,博二暑假,湾区,Santa Clara。

来纽约连轴干了两年,暑假要去师兄在加州的 start-up 帮忙,总算要换一种生活方式了,开心!那会儿对传说中的硅谷还没有概念,还不知道 San Jose(圣何塞)J 发 H 的音。因为纽约就是跟所有国际大都市一样,高楼大厦生活便利,其实没有体验过典型的,所谓美帝乡村生活;湾区则是,住宅区里一栋栋的自家 house 挨着,四层就算是高楼了,每一片儿有个 plaza,聚集各种饭店超市;到湾区第一天,被感叹说像是第一天来美国的……

这次实习很短,两个月,因为是 start-up,工资不高;租的地方没有床,睡了两个月地铺,住家附近有条小河,蚊虫很多,对虫子极度反感的我在地铺上整了个蚊帐;天天上班打车是打不起的,只好买了辆自行车骑车上班,单程半小时还好,天气炎热也还好,最恐怖的是在一个上高速分叉口,得过个马路,没有红绿灯,只能招手示意,过来的车常有大货车,而且车流量大,经常得拦下一列车,每次都胆战心惊……

不过整体工作生活还是充满新鲜感的。工作上是纯 production,了解了很多 prod 的 system design;虽然早九晚七,但不用像在学校搞 research 晚上和周末还要加班,所以觉得很轻松;师兄们人也很好,带着我们去过了优胜美地,三番市区玩。总体感觉就是让我紧绷的科研神经放松了一段时间,也了解了另一种很不一样的美帝生活,习惯了吃早茶,印度菜,越南粉。

2017 年,博三暑假,西雅图,Redmond。

这个暑假是过去几年里,过的最开心也收获很大、非常充实的一个暑假了。这一年在微软,是 research intern;大公司确实流程比较正规,开始的时候有 orientation 带你入门,公司各种 facility 也是不错。

我的 mentor 已经是很 senior 了,是组里的 manager,但还是非常 hands-on,自己还写 code 做实验,所以对技术的见解非常深入;人也很 nice,甚至还有时帮我一起 debug 算法,学习到很多。当时我在一个华人比较多的组,其他的 full-time 也很 nice,我们工作上有问题都耐心跟我们讨论,生活上带我们尝试各个楼不同的午餐。我们在的是 99 号楼,都说 99 很难吃,导致我至今还没尝过 99 的午餐…… 组里每周会有 intern 轮着做 presentation,介绍自己的进展,大家都很自觉,所以,虽然说大家都很 nice,但因为想要在这三个月里做出东西来,自己给自己的压力还是比较大的。这种压力我觉得是好的,积极的压力。

这次实习后,我就习惯了用 Windows 系统,VS 编程,onedrive,自己 macbook 上装着 Windows(这个习惯来 FB 后被打破了,现在又换回来苹果原生系统)…… 微软没发笔记本,而是台式机,所以周末来公司的 intern 还不少,再加上西雅图公交系统发达,去公司很方便,我晚上和周末基本都会在公司;也因此认识了一群小伙伴,因为微软晚上餐厅不开,所以常常坐小伙伴的车,去外面一起吃晚饭,然后再回来干活。夏天的西雅图天气很好很舒服,二十来度吧,晚上九点多天还是亮的,是全年最好的季节,其他时候则都是雨季了。

2018 年,博四暑假,湾区,Menlo Park。

这一年回到湾区,在 Facebook,体验是最 fancy,最累的一个暑假了。

原以为之前我已经了解湾区了,但 16 年其实是在 Sunnyvale,Santa Clara 这块,靠东边,偏热;18 年 FB 在 Menlo Park,公司公寓在红木城,这块靠西边,温度跟西雅图夏天差不多,很舒服,跟 16 年常活动的区域还是有点远的。说 fancy 是因为,17 年在微软,我觉得有免费的咖啡和椰子汁就很不错了;来了 FB,好么,喝的吃的种样繁多,微软就显得小巫见大巫了;FB 楼里各种有个性标识的墙,intern program 组织的活动也多,认识了很多玩得来的小伙伴。在这也学了很多 “黑话”,什么 movefast 啦,什么 what does success look like 啦……

但同时也是最累的一个暑假了,一来因为 open space 办公室,大家都坐在一块儿,业界大佬就在身边,自然也会想向他们学习,做的优秀;二来 FB 有 mid-term 和 final review,一般你的 mentor 们会给你写 feedback,打分,然后有个叫 calibration 的环节,上面的老板们会把所有 intern 放在一起比较,调整分数,要看你跟你的 peers 比怎么样。所以好几次,忙到晚上 3-4 点,早上 8 点就得起来赶班车……

6. 没那么简单的事


6.1 Project vs. Paper

刚入学时,我单纯的觉得,好好做 research 就好了;但事实上,能够专心做 research 的时间其实是没有想象的那么多的,是要挤出来的,甚至去开会回来,报销填表准备材料这种杂事,小事,都得折腾掉好几个小时……

但更 tricky 的是平衡 project 和 paper 之间的关系。如果你比较幸运,有国家的 Fellowship/Scholarship,或者系里的 Fellowship/Scholarship(有的是以 TA 的形式),不用做所谓的 RA,再或者 sponsor 你的 project 是纯以发 paper 为 KPI 的,而且并不 care 你做的是什么 topic,那你可能没有这方面的苦恼。

但是,通常老师们申请 grant,很多 grant,尤其是金额大的 project,通常甲方心里都有一个确定的想解决的问题,向老师征求 proposal,即问题的解决方案,proposal 里面会规划好每个半年甚至每个季度做什么 task。当然,这里说的 project 不包括那种纯粹是给外面公司做工程的 project,倒还都是 research project。经常项目开始的时候,因为 proposal 是以前定好的,如今环境、state-of-the-art 都不一样了,跟当下情况不符;或者甲方想解决的问题比较 practical,是个没有 formulate 好的 research problem,或者不是 community 关心的偏基础的 research task。

举个例子,你想做的 topic 是 object detection,community 关心的 dataset 是 VOC,COCO,但你的甲方关心的可能是某个领域的 object detection,比如 detect 某种野生动物,比如 detect 不同微生物。经常遇到的是,你提出的方法在 VOC,COCO 上面很 work,但在微生物的 dataset 上面效果不佳,这样虽然可以发 paper,但是 project 却没有进展。有些项目,在开始的时候会 fund 好几个 team,然后让大家比赛,比如在项目内部有个 detect 微生物的 benchmark,让你们 PK,第一年结束,淘汰掉最差的那个 team,第二年继续 PK,再末端淘汰。你要是 project 没有进展,导致你导师的项目被砍了,就问你怕不怕…… 因此,很多同学就走了另一个极端,花很多精力做项目,hack 这些 project 的上的 number,很多时候涨点最快的方法是,collect 更好的 training data,用更复杂的网络,渐渐变成了解决工程问题,开发了个很牛的系统,但是没有 novelty 发 paper。

这种情况下,人的本性,会觉得麻烦,就偏颇一方。但这其实是偷懒,千万不可。要 align 双方的兴趣,要注意平衡,trade-off,一方面要 project 有进展,对 sponsor 负责,另一方面更要对自己负责,发 paper 做有 impact 的工作 比如,尽量 focus 在模型本身,找到有 novelty,在 project benchmark 和学术界 standard benchmark 上效果都好的方法。以及,通常一个 project 开始的时候有很多 engineering 的活儿,可以暂时放一放纯 paper research,等 system 搭起来了,后面就是不断 improve 核心算法,这个时候精力更多放在 paper 这边。

拿我自己举例子,15 年底,我开始 take charge of 一个新的项目,于是 16 年上半年,基本都在为这个项目搭初步的 system,从前端网站到后台数据库,从设备采购到 system infra,从 object detection 到 multi-modal;等系统差不多搭起来了,我在项目工程上就可以花很少的时间,也有 progress 去每月 report,于是 16 年下半年,基本在做 paper,当然 topic 做的技术是将来能 improve 项目 system 一个核心模块的;到了 17 年上半年,系统要开发新的模块,又是花了三个月在项目工程上;再之后直到博士毕业,都是尽量找到 common interest,一个新的模型,对 project 的 system 效果有帮助,亦有大的 paper research 价值。

6.2 new dataset 和 new task 不是 low-hanging fruit

刚读博时候,受周围人影响,很多人都说 release 一个新的 dataset 没有什么技术含量,轻轻松松发 paper 还能赚一票引用,是个 low-hanging fruit。但当我参与到一个新的 dataset 的创建过程后,才发现这是一个非常 tedious 的工作,有很多的脏活累活,很多细节的地方需要考虑。之前 v1 版本 data,可能因为一个细节没考虑好,需要重新 collect 或者 annotate,费时又费钱,经常要迭代好几个版本。所以 create new dataset 一点也不简单,可能比提出一种新方法的 paper,花的时间还要长。

同样,以前以为提出一个新的 task(所谓挖坑)是个 low-hanging fruit,但真正做过之后才知道,也没那么容易的。17 年底,导师让我做 live detection,也就是,只根据过去和当下,监测当下发生了什么事件。我发现之前的工作都没有很好地 evaluate 这个问题,formulation 上有问题,实际做的是 per-frame labeling 或者 early classification,于是决定提出一个新的 task,专门 evaluate detection 本身。投完 paper 信誓满满,结果被 CVPR 拒了。reviewer 们一方面指出了一个我之前忽略的点,另一方面指出对于有的 application,per-frame 就可以够用,不能直接说 per-frame 用来 detection 有问题,而仅仅是对于有的应用场景,per-frame 用来 detection 有问题。为此,要大改 paper 的定位。过程是痛苦的,但正因这个痛苦让工作更加完善,我们才能成长升华,最后这个工作重投 ECCV 被大家认可了。

对于 new dataset 或者 new task 的工作,怎么样才能做的尽量完善,减少迭代次数呢?我的一个经验是,这种项目,尽可能 involve 多的 experienced experts 参与讨论,及时跟大家沟通,collect 不同人的想法。 每个人看问题角度不同,放在一起就会比较完善,群众的智慧是大智慧。

6.3 没那么难

说了没那么简单的事,再说说没那么难的事。

万事开头难,难在迈出第一步。当开始做 survey 入门时,发现这么多文献要看,会觉得难;当想好 idea 准备去实现,发现要准备 data,要实现的东西一步又一步,会觉得难;当开始写 paper,构思完每个 p,发现这么多内容要写,会觉得难……

但实际上,当我们一点一点去完成的时候,会发现完成的速度远比我们想象的快,文献一个星期可以看完经典从而入门,paper 一个星期可以有个初稿,idea 实现起来一个星期可以 coding 完,甚至跑出实验结果…… 其实没那么难,就是耐下性子,脚踏实地,干就完了。

7. 毕业后何去何从


7.1 想清楚

一般大家就是三种选择吧:去公司,去创业,去学校。这个问题经常会被归为,想去学术界还是工业界,但我觉得职业本身的区别,可能没有那么重要,重要的是想清楚

最想要什么?最喜欢做什么?最擅长什么?未来几年,哪个选择能最大地支持自己的需求?

面对不同的选择,第一步要做的,就是想清楚,未来几年在这个新的岗位上,你的最大的需求是什么?比如说(1)急着用钱,要钱多稳定的工作;(2)家庭压力大,未来几年需要个人时间多的工作;(3)做自己喜欢做的事情,并在自己喜欢的事业上有进展。显然(1)的话是去大公司写码;(2)和(3)的话公司和学校都可以,(2)的话去一些老牌的养老型的大公司,或者压力小一些的学校,(3)的话去发展快速 ing 的公司,或者 top 的学校;但如果是(1)和(2),恐怕都不能选创业(特别牛的大佬除外)。

7.1.2. 最喜欢做什么?

人生奋斗一辈子,最重要的还是要开心,只有做自己喜欢的事情才会开心;也只有如此,才能一直一直做下去,做出有影响力的工作。 让自己开心的事情因人而异:有的人喜欢编程,写一辈子代码是最开心的,在大公司经常看到年纪很大,还在写代码做 individual contributor 的,人家就喜欢这个;有的人喜欢开车,去自动驾驶行业最为开心;像我的话,喜欢看视频,拍视频,剪辑视频,所以做和视频理解与生成有关的工作最让我开心。

通常一份工作,都是由各种各样的 component 组成的,并不只是非黑即白的。比如说自动驾驶公司,跟编程有关,跟车有关,跟视频有关,跟上面三种人都关,只要有 common interest,能最大地满足你的需求就行;试想,对于第一种人(最喜欢的事情是编程)来说,让他在自动驾驶公司写代码可以,但是当 VP 做管理或者搞商业啥的,他可能并不开心。而我的话,一路走来,从哥大读博研究视频算法,到 Facebook 搭建视频工业平台,再到业余生活中,拍片子制作视频… 在视频生态链的每个环节,我都很开心。

总之,不同的人,看重的东西不一样,擅长的东西不一样,选择本身并无好坏之分。所有的选择,总有好的一面,也有坏的一面;只要适合自己,都是最好的选择,开心就好。可能唯一要注意的就是,不同时间段,各种影响你做决定的因素的权重是在变化的,年纪大了我们可能会更看重家庭和稳定;有的事情年轻的时候不做,以后可能就没有机会去尝试了;鱼和熊掌不可兼得,需要取舍。

7.1.3. Long-term vs. Short-term

考虑毕业后这几年选什么样的工作时候,一方面想远一点,你的 long-term 事业,或者说可以一直做一直快乐的事情是什么?另一方面,毕业后这几年 short-term 来说,是不是曲线救国,短期做的不一定是你喜欢的事情,但是长远来说对你 long-term 目标是不是帮助更大?

7.2 如何找教职?

目前来说,毕业直接找到教职的难度还是比较大的,很多人会先做个 PostDoc,可以一方面积累新的 paper,一方面积累新的 connection。同时博后期间,可以有更多时间,准备更充分地找教职。

7.3 如何赚大钱?

最快赚大钱的方式就是创业了,当然 new grad 选择这个的比较少,要考虑你有没有时间,精力,资金上的压力和限制?有没有一个好的 business model?作为技术出身的我们,有没有好的商业合伙人,mentor?

另外一条路,最多人选的,就是在公司做 production,升职加薪,最终财富自由的。经常有人问要不要读博?我觉得,如果是想走公司这条路的,其实读两年的 master 可能就够了,save 下来的三年,在公司里面选个发展前景好的组(整个 org growth 快,从而 headcount 多的组),可能升职加薪的速度更快。当然读了博士,手握几篇 paper,是工作能力的证明,找工作更容易,是个敲门砖,否则简历关可能就被刷了;博士大家庭的师兄师姐,做相同 topic 的 peers,都是将来有用的资源;这个问题也很复杂,我这里就不展开聊了。

但是,想走公司一路快速升职这条路的,尽量不要抱着又搞想 research,又想做出大的 product impact,早期公司里都没有用 deep learning 的时候是可以大展手脚的,但公司已经解决了 deep learning 从 0 到 1 的局面后,再抱着这种思路,可行,但可能升职速度不是最快的,尤其在是未来这十年。大佬们总结这是 “拿着锤子找钉子”,更应从 product 的痛点出发,找到最有价值的钉子,而不是最适合你锤子的钉子。

当然 research 对于大公司,一直也是不可或缺的一部分,不光是 branding,吸引人才储备人才;更有一些 long-term, high impact 的难点技术攻关,可能需要 3-5 年长度的持续研发投入,毕竟 product 关注的是短期半年内的效益,很多 high impact 的东西,在半年内看不到价值,但 3-5 年后则有巨大的商业价值;另一种普遍的模式,就是 research scientist 自己,因为喜欢,有搞研究的热情,通常会选择跟学校合作,带 intern 做纯 paper 的工作,然后自己负责将 paper 转化落地到产品里;亦或,公司出数据和算力,学校出人才,合作双赢。

说到升职,再给大家科普一下,比如在 Facebook,硕士毕业是 3,博士毕业是 4,往上升 5,6,到 6 后可以转 manager。朋友打趣说,工业界升职路线就是,技术(engineer)—— 产品(manager)—— 销售(business)-—— 投资(chao gu,划掉,capital)。这个路线将来也是要做选择的,某一天可能你觉得赚的已经够了,没兴趣再赚了,就提前退休养老了。在湾区 plaza,你看着一个中年人,穿着简朴,平平凡凡,但经常可能就是超级富翁……

但如果不退休的话,不管是在学校还是公司,四五十岁估计都是比较 senior 了,需要负责的事儿多,压力大,经常晚上周末要加班;像我导师这种功成名就的,还是时常收到他晚上 1 点,或者早上 7 点发的邮件。当然,有的人退休了又觉得无聊,这就回到开头说的,想清楚,想要什么,喜欢什么,擅长什么了。

8. 杂七杂八


Change topic every 5 years

毕业那会儿,导师说他刚毕业来哥大时,师爷跟他说,you need to change topic every 5 years。感觉很有道理。如果在博士开始那会儿,开始做一个 topic,做了 5 年,基本这个 topic 就会饱和了,很难再有大的 impact。这个时间点,差不多刚毕业参加工作:如果还是 research 岗,我们就需要像刚开始读博士一样,重新选一个新的有 impact 的 topic 开始做;如果是转 production,转 business,那本身就是很不一样的 topic 了。树挪死,人挪活,大概就是这个道理。

Work vs. Life

这也是个复杂,需要具体问题具体分析的议题,就不展开聊了。我就简单分享一下,我所得到的一些 advise 和一些自己的浅薄体会。

(1)三选二:还记得博士入学典礼上,院长跟我们分享说:未来几年的生活将由三件事组成,工作 / 学习,睡觉,social / 玩;但是,在某个具体的时间,通常只能三选二,因为时间和精力是有限的。像我自己的话,博士第一学期,以及每段实习期间,选择的是工作和玩,放弃睡觉时间;博士第二学期开始,则是工作和睡觉为主,常常宅家不怎出去。就是按照自己的需求,在每个特定的时间段,在这三者中做出你的选择,对你自己负责,不会后悔的选择,然后该学学,该睡睡,该玩玩。

(2)身体会变的:最近前浪后浪的话题很火,其实很有道理,真的很多有影响力的工作,就是人在年轻时候,精力充沛,琐事不多情况下,才能做出来的。刚来哥大的时候,课业负担和科研任务都很重,还要参加些 social 活动,好几次晚上参加完活动,回到家通宵写代码,7 点半天亮了睡两小时,然后 9 点半啥事没有地去上课。。现在想想那会真的是年轻,现在让我通个宵,第二天工作效率绝对超低。。

(3)做你喜欢做的工作:公司里面经常提到所谓 work life balance,以前我以为这就是对应工作与娱乐,但现在意识到,其实 work 也分 work input 和 work fun,life 也分 life input 和 life fun,其实 input 才是工作,fun 才是娱乐。input 需要我们付出精力,疫情期间注意消毒洗手,这就是 life 里多出来的 input;fun 就是带给我们的快乐和开心,工作中做成一件事,带来的成就感也是 fun。如果要让自己过的更快乐,也就回到上一章说的,尽量做自己喜欢做的事情,增加 work fun 吧。

谈谈灌水

有的时候,经常听到有人评价一个工作,太水了。诚然,有些工作是水,但如果被顶会接收了,我相信它还是有它的价值。有的时候,减一减戾气,多看到事物好的一面,这样我们看这篇 paper 的时间,才没有浪费,而是学到了东西,不是吗?然后,有的新手刚入门的时候,发的第一篇文章虽是顶会,但可能比较 naive,不过只要这篇文章,能给读者带来一些 insights,让人学到东西,我还是支持这样的新手之作的,因为确实积累是需要时间和过程的,中间这样被顶会认可,其实能很好地激励新手去 continue 科研之路。

常怀感激之心

一路上得到很多前辈帮助,非常感激。在来到 Facebook 后,学会心怀感激,感觉是个很明显的公司文化:每个月组里的 all hands 有 shoutout session,让大家在全组面前,表达对工作中帮助了自己的人的感谢;公司有 #thanks hub, 可以给帮你的人写感谢 note,而且这个 note,对方的 manager 会看到;而且,很多时候,感觉是很小的事情,大家也会互相道谢;每次开完会,大家也会互相道谢。简单的一句 thank you 真的可以让人幸福感增加不少,毕竟很多时候别人并没有义务非要帮助我们,这让大家更愿意互帮互助,感觉是个特别好的文化。

庚子年・岁末

Mike 于 旧金山

最后

其实前端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

这里再分享一个复习的路线:(以下体系的复习资料是我从各路大佬收集整理好的)

《前端开发四大模块核心知识笔记》

最后,说个题外话,我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在IT学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值