今年我司的晋升面试,目睹了有些候选人因为一些细小的失误,导致没有通过,感觉十分可惜。所以写一篇文章记录一下我看到的几个特别常见的问题,希望对身在互联网大厂内卷的算法同学能有帮助。
此处先介绍下背景,互联网晋升答辩在一些公司一年一次,分20-30分钟不等的PPT汇报环节,和几乎不限时的提问环节,最后评委表决结果。评委会从技术能力,业务贡献,表达沟通等软实力,全面考察候选人的能力是否达到下一层级。
功在平时,以终为始
评委们日常的面试,听的演讲实在太多了。由于见过了太多的人,经验丰富的评委,通过几页PPT的画风,以及只言片语的逻辑,基本上就能判断和掌握你是怎样的人,临时抱佛脚是基本不可行的。这里的核心是,功在平时,以终为始。
功在平时。业务指标固然重要,但因为面试官很难了解业务细节,指标提升很难拆解到面试者,且不同场景指标提升的难度完全不同,极难横向对比,评委未必能在如此短的时间内进行充分判断,因此硬指标才是答辩的硬通货,例如论文,专利,文章分享和公开比赛。同时,假如日常没有形成正式的可交付物的习惯,不仅导致在答辩时的材料,图表都要临时抱佛脚,还会导致个人影响力严重受限,只能辐射到身边的极个别人,更不用说在评委那里的日常感知了。
在软实力上,例如日常工作习惯也存在提升空间:如果平时很少去做分享,表达和逻辑上没有经过足够的打磨,那么不清楚背景的同事往往听得一头雾水,甚至没听懂最初优化的动机;如果平时没怎么经历过连珠炮式的连续追问,在答辩时很快就开始露怯,不自信的眼神很快出卖自己:一个掌握“柏拉图反问法”的人,可以通过几步简单的演绎,就能轻松击破整个链条,更不用说久经沙场的面试官了。
以终为始。很多算法工程师,都在凭着感觉去直接尝试,没有效果马上换方案,拿到效果后尽快去推全上线。但这种做事情的方式,导致了其动机,逻辑和细节根本禁不起推敲:动机拍脑袋,而不是来自业务数据的深度分析;原理机制甚至不清楚,甚至相关工作也没有足够了解,沦为调包侠;评价指标不够全面甚至漏洞百出,实验缺乏下钻分析,参数优化缺乏消融实验,后续的优化,方案的缺点也不甚明了;对周边方案不闻不问,隔壁同学/团队做了几年的方案连名字都没听过,更不用说横向对比技术方案和优缺点了,评委问的时候,自己一脸懵逼,“这是啥?”当时看着省时省力,快速上线,但却会埋下巨大的隐患。
诚然在大部分情境下,由于机器学习本身的模糊性,直观和容易的优化在早期很快就做完了,通过理论推导,一步一步正向思考获得成功的幸运实在不多。但是以终为始的思考方法,在笔者看来却是很必要且实用的 。很多人都在答辩后都会有懊悔,“如果我平时如何如何,那面试时就不会这样了”。晋升答辩的评价标准可以作为日常驱动力,从结果反推过程,在平时就把工作做扎实,把硬指标和软实力提升上去, 答辩就变得不那么困难了。
材料准备:简洁逻辑
做PPT,最难的就是做减法。如果内容太多,即使在20分钟内语速飞快地讲完,或最小字在10页PPT内全部放下,评委也难以接受:换位思考一下就很容易理解,他们一天的评审是相当疲劳的。你可能觉得”为什么这都不能放“的内容,在评委那里反而是负分:这和相亲有点像,越急于表达更多,反而适得其反。
因此最好能做到简约简单,少就是多。只讲一件事,一个项目,一个故事。从这个故事的多个切片来展示能力,而不是内容的堆砌。最好能将所有的工作清晰地串成一串逻辑链条,砍掉那些不必要的枝杈,它们除了分散注意力,吸引炮火之外,没什么好处。
在整体内容上,我的建议是:
开头的背景/动机/问题/难点:字少话多,讲得清晰透彻
虽然惜字如金,但故事要讲动机,难点和方法论。大环内套多个小环,尤其是整个项目的难点和挑战,一定要清晰,直接,干净地讲出来,这些都是答辩常识,不用多说。但晋升答辩不是项目汇报,难点适度讲,千万别把没想明白的难点暴露得太多,否则就圆不回去了。
后续的技术方案细节:字多(图表和数据)话少,只说框架和重点,其他留给QA
算法答辩,能用定量的表述的,就尽量避免定性的,泛泛而谈的估计;核心算法该有的论点论据,任何一个改动对应的消融实验一定要有;公式推理和证明也不能缺,重要的放在正文,必要的补充放在附录:评委看不看是他的事,但放这些论据是对自己的要求。这是工作扎实程度的第一印象和核心要素,也是评委发问的重要素材。
还有几个建议:
1.PPT不要准备得太早,也不要太早地去考虑美观,排版这些次要的内容。因为DDL才是最高生产力,PPT一定会反复迭代,直到最后实在没时间才能收敛。战线拉得太长,最后会搞得非常疲惫。最吐血的莫过于,花了大量时间准备了精美的PPT,却被全盘否定直接del,浪费大量时间。因此前期先准备关键数据,QA问题,进行头脑风暴;中期梳理思路,搭建框架,就可以和老板,peer频繁对焦,获得反馈;最后几天再调样式,逐字逐图检查。
2.不需要写逐字稿,因为实测下来,20分钟内讲的内容高达1万字,写逐字稿只会浪费宝贵的时间。作为正常的技术人,看到PPT就能顺理成章地讲述,哪有时间让你写逐字稿?背得太熟就会陷入过拟合,增删几页,调整了顺序到了现场就傻眼了。
3.美观在技术答辩上不重要。只要字体一致,清晰明了就可以。但是良好的PPT排版则是必须的,是从左到右/从上到下的串行推理,还是并行的分类阐述。整体逻辑在一眼看到这页PPT时,就应该知道。然后别捉迷藏,将每一页的重点,要表达的关键想法,直截了当的写出来,必要时加粗。而技术框架图,在算法基层员工的答辩中,一定要慎用。因为评委看得太多了,一屏幕的花花绿绿,大格子套小格子,换你你也烦。
4.战术上的小技巧:总要有1-2页相对难以理解的,有“深度”的内容,否则PPT太过深入浅出,全篇大白话就很缺乏体感。给答辩内容留1-2个容易发现,但故意没有交代清楚的“小漏洞”,吸引评委从这些已经准备好的漏洞来发问,以保护我方主力部队。
问答攻防:终见真章
晋升面试,最难的还是在答辩环节。答辩PPT谁不会疯狂地练?经过前期的反复迭代和预答辩,大家PPT和演讲各方面的质量,几乎已经持平,区分性不大,甚至在做梦中都能完整复述。
然而,演讲是已知的,而问题却是未知的。最终掉链子的最可能是问答环节:因为问题没答好铩羽而归。试想,自己熟悉的领域做好几年,再几乎脱产地准备一个多月,自认为打磨地可能已经很完美,但却很容易陷在自己的世界里跳不出来。一些从未想过的刁钻角度,和根本性的动机问题很容易被问出来。“你为什么不去做XXX?”,“你做的这个优化有什么意义呢?” 瞬间肾上腺素就飙升了。
因此,与其演练PPT练到脑壳疼,不如多准备下问答环节。
答题前,听懂问题非常重要,在答辩前反复地告诫自己要听懂问题,确认清楚后再行作答。但人是有应激反应的,在受到较强挑战时,回答简直是脱口而出:自己认为清晰地理解了,实际上旁人听来一塌糊涂,驴头不对马嘴。关键对话时,不少人的表现还不如平时的闲聊,平时轻松回答的问题,此时却瞬间大脑短路。
评委很容易问一些极其开放的问题,这种最好要提前框定回答范围,否则很可能“回答五分钟,评委一句哦”,5分钟的回答没有评委一句想听的巨大悲剧。不清楚时适当追问,但追问不能过头,否则你就成面试官了。
问答时,有条理,简洁,更重要的是,自信不能怂:条理就是总分总,先亮出观点一二三,再适当解释,这和写作文一样,体现金字塔原理,结构化思维;简洁就是说重点,能少说就少说。说得越多,漏洞就越多;更可怕的是如果没说对点子,评委无奈地看着你夸夸其谈,却又不好意思打断你,真的忍无可忍打断的时候,坟头草又长高了几尺。
整个答辩内容千万别只依赖某一个强论据,尤其是论据进入了评委每天钻研和熟悉的领域。那么1-2个关键问题答不上来,亦或是评委在极其有限的时间内发现了逻辑漏洞,那基本上就要说拜拜了。同时,要对自己研究方向的其他流派,其他团队,甚至竞品的优缺点了如指掌。例如算法中卷得最狠的”多任务学习“,评委平时听得耳朵茧子都出来了,不卷你卷谁。
一定要自信,不能怂。评委未必知道答案,但当看到你眼神中的惶恐,表情的迟疑,身体的紧张时,你就输了一半。评委什么都还没说,一句”这个问题我还没有考虑好“,就已经判了死刑。回答问题是有套路的,看看外交部坚哥的战术性拖延,来两句废话,或是让评委重复说下问题,给自己留出思考的时间。功在平时, 很多工作本身就存在着短板,比如方案不够优雅,或是某些方面的硬伤,因此平日做事情就应以终为始。但若无法回到过去,那最重要的是真诚和逻辑。没有完美的事情,很多方案就是当时的权衡,评委也不见得要怎么为难。
回答后,随时进行自我评估。以我司为例,现在的评委似乎和几年前不太一样,评委老师们非常的温和,但却不在现场给与及时的反馈:面无表情,即使你没答好,文不对题,甚至评委没听懂的情况,可能也不再追问。很可能出现当时自我感觉良好,回来一把辛酸泪的情况,所以一定要极其小心。
因此,平时就应该把风险和问题提前暴露出来。多与不同方向的同事交流,多参与问答的分享,多提出优质的问题,并尝试正面回答那些尖锐的挑战,并对经常提尖锐问题的同事心存感激;在答辩前,邀请一些层级稍高的同事,来做1-2次完整流程的模拟答辩:让他们使劲提问题,然后很正式地做出回答。你会惊讶的发现,很多人在模拟面试场合的问题答得依然大失水准。以上这些练习会成为关键时刻的救命稻草。
跳出规则:平常心
关于晋升标准是很值得探讨的。有人说,我平时工作非常勤奋,是不是就够了呢?在互联网公司,提名和晋升,可能是大家最关注的几件事。好绩效才能获得提名门票,而答辩则是在舞台表演。因此它们的评价标准看似接近,但却有很大的不同:
例如,苦活累活,比如打通8个系统,标注了30份数据,上线20个实验,帮5个同学获得转正,或各种推进/补位/协同/拉通。可能获得好绩效,但晋升却并不好体现。这里是要说明,即使通过非常艰辛的努力拿到很好的战功,也不见得能通过答辩。先有厚度再有高度,日常的厚度决定了拿到门票的资格,最后冲刺,认真提炼获得高度,厚积薄发,两者缺一不可。
一种常见而美丽的误会是,将自以为的优秀和努力,与晋升划等号。不同视角看问题会完全不同,答辩不是要你觉得,而是评委和老板觉得。优秀只是晋升的一个必要条件,而核心是被团队和公司需要。个人的优秀如果不能对周边发光发热,在团队层面就是没有意义的。当你能成为团队技术提升的发动机,成为团队稳定的重要支点,带领大家走向成功时,晋升便成了水到渠成的事情。因此在平时做事情时,要更多地从团队和公司角度去思考。
再就是要保持平常心。一方面,晋升很大程度决定了在整个团队的站位,后续的发展空间;同时,我们将人生当中最黄金的青年阶段,用相当大的一部分时间奉献给了工作,而工作本身和环境的评价很容易成了唯一的坐标系。因此我们延续了学生时代的思考方式,晋升短则两年,长则四五年。一次晋升答辩,似乎就如同中高考,考研那样决定命运。但其实不必要这样。
绩效和晋升,本质上是一种规则,一种抓手。职级本质上是一种符号,一种不太容易交易和兑换的货币。公司制定规则,对员工进行打分PK,是为了让管理变得更加顺畅和可持续,这和幼儿园发小红花没什么本质区别:给一小部分员工涨薪和晋升,不会实质付出太多成本;一个公司的P9变多了,和公司在商业或技术上成功并无直接关系。职业经理人和创始人的本质分野在于:前者可能沉迷于内部游戏的规则与结果,而后者则会跳出来看整个规则和逻辑的合理性,并负责任,长期有耐心地去迭代和优化它。
说上面这些是想表达,要保持平常心,跳出规则,来看规则。因为运气也是很重要的,比如要求三票全过,一旦出现任何不利的因素,都可能付之东流。成功固然很好,但即使失败,我们要总结教训,但千万不要怀疑自己。前面说了,个人的优秀和晋升并没有必然的联系。我们已经将生活中除了睡觉的时间都交给工作了,再用这种事情来折磨自己,似乎怎么都没有必要了吧?
随着互联网整体的增长陷于停滞,人员流动性大大降低。在可见的未来,晋升会越来越难,越来越卷,竞争越来越激烈:从以前只关注1-2个点的单向突破,到现在既要也要还要的全面要求。可以预见,日常工作论文化,顶会论文的要求一定会在这1-2年内成为算法同学的日常。
衷心希望每位同学的工作能有获得感:都能让自己的工作,为公司带来一些的商业价值,为社会带来前沿的技术价值,早日晋升。在工作之余多关注人生的第二曲线,寻找工作以外的人生坐标轴;同时少一些内卷,多一些开心。