在谷歌(Google)工作是怎样一番体验?

上面那么多回答都没有说过码农最关心的谷歌工作开发相关的问题,那我就正好来说一下了.

之前在鹅厂和某小厂干过.从鹅厂跳槽去某小厂的时候,当时就感觉跟鹅厂比起来那家小厂的内部系统就是一坨翔.但是来了google后,我发现鹅厂的内部it系统文档系统代码质量都是一坨翔.

首先就是内部新手引导做得很好,文档非常完善.google内部有一个叫做codelab的网站有一系列的新手引导教程,从最初的怎样提交代码,到代码风格,到怎样写单元测试,到怎么用内部各种系统(包括mapreduce,bigtable,spanner之类的)而且附带练习,手把手教你入门.codelab上也有文章介绍主要业务比如adwords和搜索的系统架构.而大部分项目组都有自己的主页,上面有介绍各个项目组做的事情还有他们设计文档.这些文档是货真价实的,从立项的考虑到架构设计到实现细节都有.作为对比,之前在鹅厂的时候km上面一堆说我们这个系统多么的叼性能多么的高然后没有给出设计和实现细节的注水文章,更不用说可以看到代码了.

其次就是之前新闻报道过出来的代码管理系统,知乎也有讨论过 如何看待谷歌工程师透露谷歌有20亿行代码,相当于写40遍Windows? - 互联网. 在这个系统上面,我可以轻松地搜索到任何我想知道的样番代码,也可以看到某个人提交的change list,而code search可以轻松地搜索到各种你想要的代码的所有版本.假如你要用到一个其他组开发的东西,你可以直接能看到所有代码,最坏的情况你也直接看到上一个提交changelist的人,可以直接去问他.假如你很屌然后觉得某些代码写得太挫,那还可以直接改代码然后提交给维护的体验成品大香伊煮蕉小辣椒在线视频人review,说不定对方觉得你确实是谷歌工作很屌然后给你peer bonus你还能白赚个一百多刀呢。

另外就是样番内部从代码提交到测试到上线所有系统都是无缝结合在一起,你提交changelist给其他人review之前测试系统会先把你的修改影响到的代码都跑一遍presubmit测试,代码提交后再跑postsubmit测试,假如你的代码出了bug影响了其他代码你可以第一时间知道然后去修改.上线的时候也是全自动化,非常方便。体验

此外还有公共的谷歌工作组件服务。例如用dremel可以查询到大部分你可能关心的样番日志数据,也提供了bigtable和spanner的体验网页版和命令行客户端方便你查询或者修改里面的数据。google内部大部分包括bigtable和spanner在内的谷歌工作成品大香伊煮蕉小辣椒在线视频系统都是公开的服务,需要用的样番话直接使用他们提供的接口使用即可,不需要做额外的体验沟通。作为对比,谷歌工作我之前在鹅厂要做一个自己项目的样番日报,但是上报的组件系统不是我们组维护的,我跟了三四个人扯皮最后花了两个星期才能搞好,而且那个东西只能由他们维护,我要是想修改得给他们提需求。非常不方便。体验

还有一点可能国内国外工作方式的区别。由于google内部很少pm,而且pm本身也会写代码,开发的时候基本不会有那种需求不断变化代码改完又改的情况。boss也不会要求你加班也不会要求你具体去做某某事情,你想要做出成绩想要promotion得自己去思考该做些什么事情,这就是所谓的leadership。而国内的公司大部分时候都是有很明确的目标和需求要你去完成的,特别是那些业务需求很多的部门可能连自我思考的时间都没有。

总之,整个公司内部对于技术方面是非常开放的,你可以看到任何你感兴趣的代码和文档,大部分组也会在主页上有自己的OKR或者newsletter告诉大家最近在负责什么事情.大家也觉得你在这里面学到了东西会反过来更好地给公司做贡献.google内部拥有巨量值得学习的资源,就比如一个bigtable花费了很多十分资深的工程师好多年的时间来设计开发以及优化才达到目前的性能,而你要想深入地了解这个系统都得花个一年半载,所以内部的这些东西就算你想学都学不完.跟这些学习资源比起来,其他的比如吃的还有工作环境之类的一点都不重要.

从我呆过的公司和道听途说听别人描述在其他公司的工作经历来看,没有任何一家公司有google这么重视工具的开发.在google,有一个叫developer infrastructure的部门专门开发内部开发工具提高工程师的效率,而每个产品部门也有自己的团队来开发自己产品的测试工具和开发工具.在google工作,你不用担心找不到合适的解决方案和工具要自己造轮子,绝大部分时候你只需要关心你自己业务上的问题尽力做好就行.当然有人说这样的google的员工的工作看起来都很琐碎,这我不否认.但是国内的bat也已经那么大了,去那里一样只是负责很小的一部分工作.而你看起来的"多"和"重要",大部分时间只是"杂",也就是说时间大部分都花在本身的工作之外,比如说要跟其他团队沟通/开会.而在google反正你只需要关心自己的事情,其他的别人造就帮你弄好了,你快点搞定然后回家打游戏泡妹子或者留在公司学习甚至你觉得原来的轮子不牛逼你也有时间再造一个出来,这样不比你跟人开会扯皮到下午快下班了才开始专心写代码要好多了嘛

===================================================================

补充一下在google工作的最大缺点,我现在已经在担忧习惯了google内部各种方便又好用的工具和服务之后以后离职了咋办...

焦点
上一篇:360发澄清公告
下一篇:这张照片全网刷屏!紧急处置