0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一名工程师在谷歌无人车组的职场生涯

工程师人生 来源:网络整理 作者:工程师吴畏 2018-07-16 16:46 次阅读

在谷歌无人车组全职工作已经有四个月了。写一下感想。鉴于项目的高度机密性,很多话不能说,我唯一能透露的,就是两条:同事们都很牛,然后都非常努力。

我们组基本上是9点开始工作,然后晚上6点多走,老板不怎么主动管,但大家都明白如果事情做不完就得加班,因为一个一个小发布(release)的最后期限(deadline)摆在那里,不能不干。总的来说,比谷歌的其它部门要忙一点,节奏很快,不像是在大公司里工作,反倒更像是在一个初创团队里忙碌。

这四个月感觉下来,Google[x]实验室有几个很有趣的特点。其一是软硬件结合极其紧密,这一点从已有的报道里可以看出,不论是无人车(Self-driving car)、眼镜(Google Glass)还是最近公布的气球无线网络(Loon)及能测血糖的隐形眼镜(Iris),都是软硬结合的产品。这直接导致的结果,就是我们每天面对的问题和之前在学术圈时思考的完全不同。

在学术圈,问题的已知条件和数据集都是给定的,我们要做的就是像解数学题一样,钻进去找到更好的解法,并在已知的数据集上和前人对比证明其有效性。但在Google[x]则完全不同,大项目(比如说开发无人车)摆在这里,但已知条件,解决方案,使用何种硬件,如何分配资源,都是不确定的;唯一确定的,是要以最快的方式和最小的成本把它实现出来——让一辆车能安全地自行其道,同时生产成本又最少。在这样的特定背景下,碰到一个难题,首先想的不是把它死命解出来,而是问自己是不是有必要解它,能不能绕开它而实现目标?事实证明,在这样高自由度的空间里寻找一个特定的解决方案,几乎总是能绕过学术界的难题,找到简单易行的实用方法。这就像要发明能在道路上移动的机器人,不是绞尽脑汁去研究人类两足的机理,而是用容易控制又廉价的轮子代替;要设计飞机,不去模仿鸟类形态优美却机理复杂的扑翼,而是使用固定机翼加喷气动力。

其二是几乎没有专职的研究职位。所有人既是研究员(Researcher),又是软件工程师(Software Engineer)。基本上每个人负责一个具体的方向,对这个方向自主地分析现存的问题,并不断通过和同事讨论提出新方案,最后评估方案的效果。就算是组里的老板(Manager),甚至是老板的老板,也要写代码查错误完成具体工作,唯一的不同点,是他们对系统有更整体的理解,遇到问题能帮忙找到下属找不到的角度。碰到许多任务同时需要完成的时候,能分清主次,丢卒保车,确保整个组的大方向正确。

对于从来没有碰到过的新问题,思考新思路和写代码开发是同时进行的,C++代码写完就直接上产品去测试看效果如何,不行就分析研究再换一种,如此快速迭代直到找到好方案为止,如果一两周里找不到好方案,那就认为这个问题是困难的,于是就要退一步思考,想办法绕开它。

因为这个原因,诸如“写代码和做研究的时间比例是多少”之类的问题就没有什么意义,因为完全看需要解决的是什么问题,写很多格式漂亮架构清晰的代码却不能解决问题没有意义,天马行空地思考不在实际数据上跑也没有意义,最重要的只是“解决问题”这四个字。

这种思路决定了研究风格是“具体问题具体分析”式的,有额外条件和额外信息就尽量用上,不会花时间思考一般情况;是“崇尚简单方案快速出结果”式的,而不会使用精巧复杂却不太直观的数学理论,也不会花几个月赌一个万能算法。这种研究方式的缺点显而易见,就是没有办法产生深远及本质的成果,但是既然目标是利用人类现有的技术,去完成一个举世瞩目的新系统和新产品,我想不出来有其它更好的推动方式了。

其三是组内信息交流的极端重要性。学术界强调钻研问题,独立工作和原创性成果;但至少在无人车组,是鼓励也必须时常和别人沟通的。一个人,特别是刚进来的新人,对整个系统的组成没有深刻理解,也不去询问同事,老板给一个问题就按自己的想法单干,结果发现三分之一工作和无人车目前急需解决的难点无关,三分之一工作已有人做出过类似工具,还有三分之一工作听起来很有道理,自成一说,但是在实际数据上一跑效果很差。这些情况是完全可能的。按学术界的思路,这些工作都可以发(不同风格的)文章,但在我们这里,全都是没有用的。

而充分交流讨论就能避免这类情况。有越多来自别人的信息,就越能明确目标直入主题;越知道系统的优劣和目前的可用工具,就越能借风使力,提高效率。有时候跨组间不经意的一两句对话,少则抵得上几小时或者几天的辛勤劳作,多则改变整个组的行进方向。无人车组里中国人非常非常少,因此英语的地位相应提高,实在是需要在业余时间多加训练才好。

对于这样一个开创性项目,虽然已经取得了重要的进展,但还是有很多棘手的具体问题需要解决,每一个细节都决定成败。并且,越接近最终目标就越为艰难,有时候为了有百分之一的效果提升,是不惜从头再来,将原来的工作全部推翻的。所以说这个项目最后是否成功,还要看全体同事的聪明才智和勤奋努力,及一点点捉摸不定的运气。

希望运气在我们这边。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 谷歌
    +关注

    关注

    27

    文章

    5862

    浏览量

    103269
  • 工程师
    +关注

    关注

    59

    文章

    1553

    浏览量

    67517
  • 无人车
    +关注

    关注

    1

    文章

    294

    浏览量

    36279
收藏 人收藏

    评论

    相关推荐

    企业老工程师和高校老师有啥区别

    电子工程师硬件
    电子发烧友网官方
    发布于 :2024年02月28日 17:50:00

    如何搞崩个硬件工程师心态?试试对ta说这几句

    硬件工程师
    扬兴科技
    发布于 :2024年02月20日 18:05:49

    优秀电源工程师需要哪些必备技能?

    随着电源市场的不断扩张,开关电源行业飞速发展,企业对电源工程师的需求日益增加,对电源工程师的技能要求也日渐提高,相信没有位电源工程师会错过让自己变得更优秀的机会。作为
    发表于 01-29 11:29

    #人工智能 #FPGA 怎么成为个合格的FPGA工程师

    fpga工程师
    明德扬助教小易老师
    发布于 :2023年12月18日 21:19:01

    电子工程师天上班就暴揍师傅。。。#科普 #示波器 #电子工程师 #打工日记

    电子工程师示波器
    安泰小课堂
    发布于 :2023年12月18日 17:36:12

    FPGA工程师需要具备哪些技能?

    。 FPGA工程师进行DSP电路设计之前,需要深入了解数字信号处理技术。他们需要掌握数字信号处理中的概念和基础知识,例如滤波器、傅里叶变换、数字信号采样等。FPGA工程师还需要了解
    发表于 11-09 11:03

    如何成为一名优秀的嵌入式工程师

    如何成为一名优秀的嵌入式工程师?嵌入式学习的第步,首先是C语言。 1.理解内存管理:C语言不同于高级语言,它不会自动管理内存。因此,你需要理解并掌握如何使用malloc()、free()等函数
    发表于 11-07 15:36

    电源工程师常用的几个典型电路分享

    具有电源知识水平的工程师来完成设计和开发。作为一名合格的电源工程师平时工作经验的积累很重要,但同时也应该提高理论水平,通过积累几个常用的电源电路,说不定下次就能用上,还是学习吧!
    发表于 09-20 07:59

    一名硬件工程师都具备哪些技能?

    芯片嵌入式物联网STM32
    学习电子知识
    发布于 :2023年08月02日 12:54:00

    热门推荐:硬件工程师必备工具

    硬件开发的工作流程般可分为:原理图设计、PCB Layout设计、采购电子BOM、PCB板生产、PCBA组装、功能调试及测试、小批量试产、大批量生产正式投放市场等步骤。 作为一名优秀的硬件工程师
    发表于 06-21 10:15

    招labview工程师 (广州)

    招labview工程师1-2,工作地点:广州天河 负责仪器设备系统软件开发工作; 协助公司已有产品软件的维护及改进; 协助模块功能调试及系统搭建; 熟悉工业常用接口RS232、USB、GPIB、TCP/IP等 薪资情况,待遇可谈。QQ:3549663089有意者请联系本
    发表于 06-08 18:48