Synology「白板考」解密:用一面白板,看清工程师的工作性格

为什么Synology 会这么坚持白板考?白板考到底考验面试者哪些技能?事前又有什么方式可以准备呢?因为一名优秀的软体工程师,最重要的技能绝对不是程式能力本身,而是「定义问题」的能力。

Synology「白板考」解密:用一面白板,看清工程师的工作性格

某个下午,面试者带着忐忑的心情,走进位于远东通讯园区的Synology 群晖科技,经过基本的学经历面谈后,随即会被带进一间配备有白板的会议室。过一会儿,面试官走了进来:「我们现在就来写点code 吧!」

「我们要提供服务让民众确认自己跟COVID-19 某一确诊案例某天移动路径是否有相遇。

given: 某一确诊案例某一天的移动轨迹,最细到秒,但也不是每秒都有位置(t1, x1, y1),(t2, x2, y2), …

input: 民众同一天的移动轨迹,最细到秒,但也不是每秒都有位置。

相遇的定义: 民众与确诊者直线距离< 30m,且确诊者到过的地方30 秒之内都算会高密度残留病毒。

output: 测试的民众是否有被感染风险,时间与地点为何?」

出现在白板上的,就是Synology 大名鼎鼎、却又被众多面试者视为大魔王的「白板考」。群晖科技软体开发部门经理许智程说明,除了数学题外,这几年白板考也开始出现时事应用题,例如这题就是依据COVID-19 的情境所设计,题型更加灵活。

在Synology 目前全球近千名员工里,软体开发相关部门员工占全公司三分之二,其中就有超过300 名软体工程师。自2004 年以来,软体工程师都得经过这样的关卡,透过与考官一对一在白板上写程式,来判断面试者是否适合成为Synology 的一员。

但为什么Synology 会这么坚持白板考?白板考到底考验面试者哪些技能?事前又有什么方式可以准备呢?

因为一名优秀的软体工程师,最重要的技能绝对不是程式能力本身,而是「定义问题」的能力。

担任考官超过五年,群晖科技软体开发部门经理简寗晏表示,白板考的题目本身其实不会太困难,绝大部分会落在大学资工相关课程中基本题型的范畴,例如白板考就曾出过一道经典题型。

「小明爬阶梯每一步可以跨一阶或两阶。请帮我设计一支程式计算从平地爬上一个N 阶的阶梯有几种可能的步法。以三阶的阶梯为例,共有『 1阶1 阶1 阶;1 阶2 阶; 2 阶1 阶』三种步法。」

以爬阶梯这题为例,题目叙述并不复杂,主要目的是借此观察面试者写程式的习惯、程式的可读性如何,以及有没有做好例外状况的处理等。例如,有些面试者选择的做法在程式逻辑上是正确的,但在实务上却会对系统资源造成浪费。可以说要得出解答并不难,但要写出「有效率」的程式却也不容易。

更重要的是,在这样的过程中可以看出面试者逻辑思考的能力。「程式就是把你的想法表达出来的过程。」这考验的是面试者是否具备比较好的资料结构跟演算法概念,以及如何在没有工具的辅助下,在脑海中重新解构、组织自己的想法。

寻找解答的过程,远比问题本身重要

软体开发实务上来说,在开发越前期发现问题的成本越低,所以在开始解题之前是否能正确的定义问题,是软体工程师很重要的特质,而白板考的核心价值正是在测试面试者是否具备这样的特质。

「我们比较喜欢说这是一个『讨论』的过程,而不是考试。」群晖科技软体开发部门资深工程师陈扬升说明,白板考的出题方向多半会是一个偏短、小型的题目,约在三十行程式内就可以结束,并不会是非常艰深、需要面试者写到上百行程式的问题。

依据不同RD 部门的需求,以及面试者自身的经历,题型都会有不同的变化。比方说,刚毕业的新鲜人,题目会比较着重在资料结构跟演算法的设计,如果是有工作经验的面试者,就可能会利用side project 的主题下去延伸。但出题的共通点在于,一个题目绝对不会只有单一解,叙述不会太明确,一定会是可以延伸、循序渐进的问题,以便在后续讨论过程中探索出「最佳解」,「题目本身其实不是那么重要。」他说,因为寻找解答的过程,远比问题本身重要。

沟通与讨论的能力更是核心关键

群晖科技软体部门主任开发研究员李可涵也进一步指出,解题时通常会遇到两种类型的面试者,一种就是会先与考官讨论题目的人,一种则是直接埋头下去解题的人。以白板考这类题目通常不会讲得巨细靡遗的模式来看,能够在一开始就提出疑问讨论的人,会是设想比较周到的人,比较不会写到一半才开始发现哪边怪怪的。当然,如果问得很不着边际那也可能是个扣分的机会。

Synology「白板考」解密:用一面白板,看清工程师的工作性格

以COVID-19 路径侦测的这题为例,题目的叙述只有如此,但较灵敏的面试者马上就会发现因为给的时间跟地点都不是连续的,「eg,12:00 在北车、 13:00 在双连站」,这中间的资讯是不足的,于是就会开始跟考官讨论有这个限制,该怎么处理,或是可以如何提出假设等。

在整个白板考的过程中,考官都会在旁给予适当提示,面试者的程式能力只是评断的标准之一,白板考更重视的是双方交流跟讨论的过程。陈扬升指出,过去Synology 也曾经录取过程式能力不是顶尖的人,他们并不一定能解出最佳的解答,但可以感受到他是能够理解考官的询问,并且在讨论的过程中持续改进的,这会被Synology 视为有潜力的人才。

简寗晏也说明,由于白板题的问题都是口述的,考官可能有意无意会在表达上有些比较模糊的空间或是缺少细节。比如一些考题牵涉到数列,数列的边界、是否连续、是否包含0 、有没有排序过,这些条件的定义很大程度会影响考题的复杂程度,如果一开始就先讨论清楚问题会更有效率。此外,考官也会观察面试者问的问题如何,合不合乎受过程式训练的人应有的常识,而问问题不仅是个面试者跟考官交流或自我表现的机会,也能让考官借此评估面试者沟通讨论的能力。

白板考模拟的是真实工作环境会遇到的问题

最重要的是, Synology 白板考模拟的其实是面试者未来工作实际会遇到的情境。比方说,在开发过程中,你能不能够先定义、厘清问题并确认需求,一开始就掌握大方向;或是,你面对新的指示时会如何反应,以及你如何与他人互动沟通等。

目前沟通讨论、合作能力几乎已经成为RD 的必备技能。「进入公司后你会有很多协同合作的机会,遇到问题你会需要跟PM 沟通,需要跟同事一起作业,光以技术力单兵作战的模式已经不常见。」群晖科技软体部门资深开发研究员谢昀达认为。

甚至,有时候面对未知解时,是否有足够的毅力与抗压力寻找解答,毕竟之后工作上也可能会遇到不是那么明确的需求,但当你遇到困难的、没有正确答案的问题会如何解决,从这个过程中可以看出很多个人特质。简寗晏认为,「简单来说,我们看的就是一个『解决问题』的能力,我们认为合格的工程师就是可以解决问题的人。」

面试是一场双向的「适性」测验

「面试其实是一个双向的过程。」白板考共分三到四关,每一关各自独立,也都有各自独立的考官,最后再经由共识决来决定面试者是否录取。相对来说,面试者也可以透过这样的过程更了解Synology 的企业文化。

事实上, Synology 比较看重的会是面试者未来在团队中所扮演的角色。在面试者进入白板考流程之前,以人资部门第一步审核履历来看,除了面试者熟悉的程式语言、论文题目及所学与职务的关联性外,面试者过去在团队合作、在学校做专案的经验会是加分条件。如果是有经验的人,还会看他过去的领导经验。

回归到Synology 规划白板考的初衷,之所以不像许多科技公司选择直接让面试者上机考,或是透过书面测验的方式事先筛选,是希望更全面的考量面试者与Synology 的契合度,这是即便会花费更多时间、人力等成本, 20 年来也坚持要维持白板考模式的原因。

乐米推-全球时尚潮流资讯!发布者:乐米推官方,转载请注明出处:https://www.lemitui.com/news/venture/10126/.html

发表评论

电子邮件地址不会被公开。 必填项已用*标注