本期主人公:sqybi
90后,金牛座。毕业于上海交通大学计算机科学与工程学院(computer science and engineer)。目前在图森未来负责软件系统开发。
2018年,图森未来发布了一段雨天无人驾驶卡车运输实录,全长1小时15分钟,倍速压缩后时长约6分钟,无剪辑。
是造一辆车比较容易,还是造一辆“具有无人驾驶功能”的车更容易?答案你们一定有。那为什么后者更难?顾名思义,所谓的无人驾驶,就是要求机器具备和人脑一样的思考及判断力。严谨一些的定义是在特定场景下,由车辆完成所有的操作,无需人类驾驶员——L4级别无人驾驶车。依照这个标准,图森未来的无人驾驶卡车已初步具备L4级别无人驾驶的能力。
让这个看起来“笨笨”的大家伙安全的实现无人驾驶,这背后的操作系统有多复杂,可想而知。稍有差错,造成的物质损失还是其次,人命才是最大的代价。
创造一个历史
于是,我们决定和sqybi聊聊无人驾驶卡车的操作系统。他说了下面这个创造历史的故事。
在加入公司不久后,他接到了一个挑战:用有限的时间完成一个可用的无人驾驶操作系统。这并不是一件容易的事。更何况,还是在一家创业公司。创业公司的特点就是,充满了不确定性。
起初,sqybi计划在人员配置充分的情况下,兴许可以早于限定时间完成。可是最后安排下来的人手远低于计划,甚至在可用的人手里面,还有同时需要兼顾其他项目的情况。简而言之三个字:人不够。
如此一来,作为项目负责人的他,只能迅速调整项目的规划,并很快锁定了需要突破的方向:
1. 砍需求。要保证系统上线,一些功能是必须实现的。所以要做的是重新分析需求简化实现,而非简单粗暴的将某些需求去掉;
2. 了解同事。更准确地把握每个人的技术特点,尽量分配大家最熟悉的工作,确保大家可以立马上手自己负责的部分;
3. 合理安排进度。因为兼顾其他项目的同事本身还带着一部分任务,必须和其他组协调平衡时间。
除此之外,因为这个项目是一个升级迭代的项目,所以在采用了新的架构的同时,还需要兼容一些已有的代码和工具。这就需要在优秀的设计和更好的向前兼容性之间找到一个平衡点,才能让用户用得舒服,同时系统本身的可扩展性和可维护性也更强。
最后,系统毕竟是要给公司的其他开发人员使用的,所以开发人员对其的接受程度就很重要。如果接受程度不高,那么项目必然会失败。这一点,可能常常会被忽略,但也最容易产生内耗。所以,在公司其他开发人员中推广这项系统,也成了这个项目的重点内容之一。
就这样,年龄本来就不大的sqybi,像一个老大哥一样,带领着这个团队一路冲刺,既要做项目管理、又兼顾了产品经理和tech lead的角色。而这个团队的其他成员,当时也不过是刚刚毕业不久的学生。
问他们怎么会有这样的劲头,sqybi说,大家都觉得在创造历史。
关于sqybi: 从上交大保送生到MSRA和Google
他来自天津耀华中学的实验班,在拿到全国信息学奥林匹克竞赛银牌后,顺利进入上海交通大学,攻读CS。算是老天赏饭吧,sqybi从小就展现出不同于同龄孩子对计算机的热爱:小学一年级的时候,跟着爸爸去上计算机课,之后就在心里埋下了种子。直到小学五年级,家里买了台电脑,sqybi用零花钱在书摊上买了一本编程小书,便开始自学编程。初二加入了NOIP大军。天赋?有一点吧,但他说,"喜欢真的是最大的动力,我喜欢编程。"
因为从小打比赛的关系,sqybi的基础相比班上的其他同学,要好很多。他就有更多的时间去接触其他东西。所以大一,他参加了Google Code Jam,进入Top500。
从小是个音乐迷,外加爱看漫画的他,在后来很长一段时间,又玩起了VOCALOID,一个音乐合成软件,在软件中输入音调和歌词,就可以合成出原为人类声音的歌声。
选择做VOCALOID是因为这个和编程很像,参数之类的都是用数字来表示的,怎样调就会有怎样的结果。“音乐背后其实就是数学”,在sqybi看来,用理性的方式去创造感性,是非常具有美感的一件事。
现在想想,如果他没有来图森未来,那应该就在做初音未来了吧。
不过这当中,有一段插曲。在去微软之前,有几个交大的师兄做了一个初创公司,主要做游戏。团队当时只有3、4个人,其中一个学长和sqybi认识,知道sqybi能力不错,就想让他考虑加入。"感觉公司太小,而且游戏也不是我熟悉的方向",没想太多他就拒绝了学长的邀请。被他拒绝的那家游戏公司叫米哈游,在几年之后,凭借《崩坏学园》走红,并且进入IPO。
如果把时间线放到眼前,在米哈游准备上市的那几年,sqybi正在微软,参与着微软Cortana项目,之后又去了Google,就像千千万万个在大公司的工程师一样,享受着高福利,干着眼前小小的一份活。看起来也不差,但是如果现在再有一个“米哈游”机会呢?
没想过自动驾驶能成,就想试试
工作后的第四年,sqybi决定停下脚步,gap一年,再继续出发。这一年,刚好是他的本命年。原本计划让自己放松一年再回归职场,却在某天,突然接到naiyan的电话。naiyan是sqybi在耀华实验班的学长,“他说自己在一家创业公司,做无人驾驶,问我要不要试试”。
在Google的时候,sqybi就接触过Google X,知道他们一直在做一些很神秘的实验,无人驾驶就是其中一部分,“但自己真心没想过这东西能成。”见sqybi有所犹豫,naiyan说:“你不试试,怎么知道不行。反正你也是在gap,过来看看吧。”
年轻的时候,才有足够多的资本来冒险。带着疑惑和不确定,“试试呗,不成我就回大公司老老实实上班”,sqybi加入了图森未来。
后来呢,他没走,因为这事儿成了。
并不是成功才有意义
冒险很酷,那些喜悦背后,一定还有一堆不被人知道的项目。Octopus4.0,这套由sqybi完全自主设计,从拆分到开发的系统,因为各种原因被搁置了,没有上线。
花了那么多心血精力和时间,没能上线,不是很可惜吗?可sqybi却说“很正常”。对他来说,开发工作本身就是一种试错和技术积累,没有成功上线的项目不代表没有意义。机遇往往更重要。“大公司很难有这样试错的机会的,尤其是对年轻人。”sqybi说。
就好比造一个房子。在大公司里大家一起造房子,每个人往往能分到的就是一小部细碎的工作,刷刷墙,铺铺地砖。做一些重复的工作。重复的工作会让自己在某一领域更精,但另一方面又会导致全局观的缺乏。
如果想在职场上更高一步,全局观的培养就是不可或缺的一部分。Senior的程序员和职场小白的差距,就在于此。不仅仅要会造房子,更要成为设计这座房子结构的人。
虽然Octopus4.0最终没有上线,但却是sqybi真正意义上,作为架构师的第一个作品。这一年,他刚过本命年。
让1+1>2
sqybi身上,除了年轻人对新事物的冲劲好奇之外,还有非常难得的谦逊。他一直强调,不要给他按上“系统架构师”这样的title,他还担不起这样的名号。因为自己拥有的行业经验和其他大佬相比,实在算不上什么,“我还在积累,只是想和大家一起把事做好。”他说。
一旦团队有了共同的目标,就能最大程度释放自己的能量,1+1就会大于2。
还在读高中的时候,他就想在天津推广计算机竞赛,想让更多的人加入到计算机竞赛的圈子。
“当时就想着让天津的计算机竞赛在有一天会更厉害”,于是,他便和当时几个朋友一起,创办了计算机竞赛的社团。现在再谈到计算机竞赛,“天津”也真的是一个响当当的名字了。
跟sqybi说话,你会发现他就是一个逗逼,普通的不能再普通:爱看动漫喝喜茶,说起话来自带天津人特有的相声模式。就是这样一个大男孩,却说出“想要创造历史”、“想要让天津更强”这样的话。
宇宙中,有一种物质叫暗物质,它不属于构成可见天体的任何一种已知物质,但它依然是宇宙物质的主要组成部分。
sqybi说,他不是那种一眼能看到的人。但就像暗物质这般,看不见,却很重要。
面试官说:
Q: 开发岗的面试,比较注重哪些能力的考核?
A:这次校招的工程开发岗职位没有做很详细的区分,基本上分为前端(软件研发工程师-前端Web)、后端(软件研发工程师-系统)和自动驾驶测试工程师。其中和我这边比较相关的是后端系统方向,所以我着重说一下这部分。
虽然在图森未来有相当多不同的方向可以做(比如地图、车载系统、基础架构、模拟等),但是它们之间对技能要求的差别并没有那么大。我们更看重的是候选人的代码能力、逻辑思维能力和学习能力。同时,我们也很欢迎某些方向上比组内所有人包括面试官本人都强的候选人,在面试的过程中可以放心地表现你们的长处,优秀的人在一起才能够更有效率地工作。
对于简历投递和面试,我也想给出一些建议。很多人觉得简历不重要,实力才重要,这句话对也不对。实力固然是很重要的,但是简历是你向公司HR和面试官介绍自己实力的第一个通道。在简历中更好地描述你做过的事情,标明最能体现你能力的部分,会为后续的简历筛选以及面试过程都打下一个很好的基础。
而面试过程中,我更倾向于认为候选人和面试官是一个互相考察的过程。除了开发岗最基础的代码能力考核以外,更好更全面地描述你做过的项目以证明你在实践中对目标的深入了解,在面试过程中通过高效率的理解和准确的提问体现出自己的沟通能力,这都是很关键的考核点。如果说代码能力是一个类似于“敲门砖”的硬性指标的话,那么这些能力就是你们最好的加分点。
此外,对于面试官问“你还有什么问题要问我”的时候应该怎么回答?实际上,作为我个人而言,这个阶段更多的是留给候选人去了解公司,以及反向考核面试官的阶段,作为考核候选人的意义反而少了很多。即使在这个阶段你没有什么问题可以问,一般也不会作为扣分项。当然,如果你真的对公司或者这个行业很感兴趣的话,自然可以问出一些很深入的问题,我们也一定能感受到你的真诚和热情。同时,这些问题也是候选人衡量公司的重要手段,所以我还是建议同学们不要错过这个机会哦!
全部评论
(1) 回帖