上面那么多回答都没有说过码农最关心的开发相关的问题,那我就正好来说一下了.
之前在鹅厂和某小厂干过.从鹅厂跳槽去某小厂的时候,当时就感觉跟鹅厂比起来那家小厂的内部系统就是一坨翔.但是来了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内部各种方便又好用的工具和服务之后以后离职了咋办...
吹 Google 的这么多,这里泼点冷水
(自己 14-17 年在 Google,个人观感)
Good parts
Bad parts
总之:
工作4年多了, 从一个小实习生成长为Senior, 强答一发。
我感觉加入谷歌是我一生当中最幸运的事情。
在谷歌,有launch 产品,展示项目,升值加薪的高光时刻。也有迷惘不知所措,遇到不行的老板的憋屈,和在组会上被怼的哑口无言的沉默。
但是好在我在谷歌遇到了几位非常不错的manager, 他们不仅在技术上帮助了我, 也成为了我的人生导师,让我的视野从最开始的如何做好技术工作, 也慢慢把目光拓展到商业和管理上来。
我对谷歌最大的感情就是感谢。
谷歌给我打的这些基础,不管是经济上,经历上的,还是技能上,都给我奠定了一个美好的未来。
默默地过完在Google的最后一周, 下周就要去startup开始新的征程了, 趁着现在写一下对Google的看法.
在Google工作让我成长了很多, 在这里我遇到了很多优秀的同事, 学会建立规范的流程, 写一个完整详细的design doc, 以及设计scalable的system. 我觉得对于刚毕业或者像我这种没在互联网公司工作过的人, Google绝对能称得上软件工程师的蓝翔技校...
有几点我学会的东西很值得拿出来跟大家分享:
那为什么会离开Google呢? Google作为一家有着接近十万员工的公司, 已经变得更加官僚, 做事情的速度变慢, 升职不给力. 虽然这能保证Google能够继续稳定得输出, 但对于个人来说, 并不是每个人都能在这样的游戏规则下, 找到让自己快速成长的机会. 这里说的成长机会, 不只是说升职, 也包括拿到更大的scope, 对公司决策的影响, 管理团队的机会, 等等. 如果把自己放在一个更有挑战的环境, 成长的速度也许会更快.
对我而言, 我以后还是希望有机会成立自己的startup, 所以也会关注自己不只是在技术上线性进步, 而是也能在strategy, product, management skill上得到锻炼和提升. 抱着这个想法, 最后还是决定继续去startup试一试. 也许会失败, 也许财务上的回报不如留在Google, 也许还会是个大坑, 但希望能跳出Google的环境, 看看更大的世界.
更新于Robinhood IPO之后
来了Robinhood有九个月, 感触很多, 刚好回来更新一下这个回答, 对比一下大厂和startup的区别. 这次更新我会从几个角度来对比一下Google和Robinhood. 但毕竟不同startup的特点也不一样, 所以不能一概而论.
从技术深度去考虑, 我会建议喜欢钻研技术的朋友们去大厂. 对于业务/产品驱动型的创业公司(我觉得大部分创业公司都会是产品驱动), 其实不会有太难的技术问题需要解决的 (Note: 大家就别提PingCAP, Anyscale, OctoML这些公司了). 而大厂有足够的资金去养一支团队, 有足够规模的问题要去解决, 也需要优化到极致. 在大厂的核心组, 你会有很多机会深挖一个系统. 而对于startup, 能把开源技术理解并整合到产品, 往往已经是够用了. 对于个人技术品牌的发展来说, 大厂会自带branding. 而在startup, 就需要自己额外多花时间去建立自己的技术品牌了.
2. 财务回报
在同等的包裹(base + 股票)下, 其实两者可能差别不大. 从我加入Robinhood之后, 每股价格大概翻了一倍多. 然后在同样的时间里面, Google的股票价格也是翻了一倍. 从财务的回报上, pre-IPO公司不见得会比大厂高很多. 当然, 这也取决于加入的时机.
3. Work Life Balance
其实我没感觉startup的work life balance会差很多. 也许是因为我还算那种比较喜欢工作的人. 又或许是我当时在Google的Cloud AI, Cloud AI的活多同时升职也不快...当startup到了一定规模之后, 也会开始考虑employee retention, 会考虑减少员工的压力. 所以我没感觉到工作量会多很多.
4. Scope
这个应该不用对比了. 在Robinhood, 我负责着整个ML serving stack的技术方向, 也会带着junior engineer去搭建新的Infra. 在Google, 我提出的想法会受限于我当时的级别, 也很难去推动很多事情.
5. 其他
Robinhood有一点很刺激的地方, 在于会收到market volatility的影响. 所以在里面工作心态要放宽. 同时, 毕竟Robinhood会尝试革新金融市场很多方面, 所以会引起很多争议, 天然有招黑的属性. 我觉得从招黑的角度, Robinhood和Facebook有得一拼了. 这个时候就要学会去调整好自己的心态, 要尝试去过滤掉一些无用的争执, 而专注于做好产品.
还有一点我觉得很有感触的是Robinhood的mission (democratize finance for all). 进去之前, 我对这个mission只信了5成. 进去之后, 我信了9成. 我觉得最难能可贵的是, Founder提出这个mission, 并且愿意花费自己人生一大块时间去实践这个mission. 而且在那么多争议和挫折的情况下, 坚持自己的初心. 这个mission, 我认为是区别一个好的startup和一个great startup的重要区别. 是否有一个足够宏大的mission, 并且愿意为之不断努力和奋斗.
也许最后的这两段看着有点像广告. 你猜对了!!! Robinhood的Core ML team在招ML infra工程师, 有兴趣的朋友欢迎私信联系. 我们组负责搭建整个Robinhood的ML infra (包括Notebook, training/serving infra, feature store, embedding service, 等等). 我们期待的candidate有一定的ML经验 + 比较不错的engineering背景, 需要能在美国合法工作.
声明: 所有内容仅代表本人观点, 和Robinhood无关
Disclaimer: Any opinions here are my own, and in no way reflect that of Robinhood
在离开湾区三个月后,想和大家聊聊谷歌苏黎世。
我是18年初有了离开湾区的想法的。
从14年到美国,到19年底离开,我在美国也居然待了五年。毕业后我一直在湾区Airbnb工作,三年以后逐渐厌烦了三番的生活。每个地方都有它自己的生活方式,三番是个有特点的城市,有些朋友特别喜欢,但是对于不开车又在意安全的我来说,其实生活也挺没趣的。西海岸距离各个地方也都不近,飞一次东边需要五六个小时也是不短的距离。平时我的乐趣除了逛街和吃饭,倒也就没有什么了。
因为各种原因我在过去三年里去了快十次日本。18年初运气特别好赶上了东京樱花季,当下就觉得如果有一天我能到东京生活,那简直是太完美了。我彼时拜读了byvoid大神的博客,因为朋友的缘故得以认识,并参观了Google在东京六本木的办公室。当下更觉得简直再幸福不过,那食堂,那地段简直吊打山景城一万个回合。东京也有东京的不好,但对于当时的我,就好像是机缘巧合的一个种子。
多数离开湾区去其他办公室的中国人都是由于h1b抽签的缘故,常被人戏称流放。而我已经抽到h1b,职业发展也相对顺利,离开湾区就变成了更为艰难的选择。正因为有了选择,所以这个过程漫长而纠结。byvoid的博客也给了我很大的启发 - 人生真的有许许多多的可能性。
19年初我开始了海外公司的面试,虽然作为设计师,Google也并不是我最最理想的去处,但是由于庞大的体系和全球各处的办公室,谷歌成了我的理想选择。同时我也去东京面试了Indeed Tokyo并拿到了offer。Google东京的设计组实在太小,苦等两三个月都没有消息后,由于对欧洲文化地理的兴趣,我最终选择了苏黎世。如果你也正在考量去哪一个海外分部,那么苏黎世是一个很好的选择。我当初很少看到苏黎世的信息,所以在这里分享一下。
基本收入+假期
苏黎世几乎是世界上为数不多可以匹配湾区收入的地方。如果你从湾区转来,可以预期收入没有任何降低,股票也给的还不错。并且这里工资税收极低,大约20%上下,比起湾区动辄接近4成,可是好了太多。带薪假期则是一年25天,年初就会发放给你。
工作
Zurich的Google办公室比我想象的大。是美国以外最大的一个,有大约三四千工程师,两个大campus。组的话则有我所在的Youtube,Google assistant, Google lens, Geo, shopping, Search,Ads等很多选择。这边虽然欧洲人居多,但反而待的很自在,因为这里的员工来自世界上八十多个国家,比如英国,西班牙,还有之前我都从没见过的摩尔多瓦,白俄罗斯,保加利亚等等,大部分人语言都不是母语,也都来自不一样的文化背景。我们组有次出去吃饭,六个人都不是一个地方来的,这种感觉还挺有意思的。
工作也没有想象的清闲 - 大家工作都很努力,有时候需要和mtv开会,也会到很晚,但可以自行调整。
生活情况
苏黎世甚至整个瑞士,生活上英语都没有任何问题。当然公司也给提供一大笔钱来给你学习德语,法语,或者意大利语。在苏黎世的话本地人是讲德语。
在餐厅吃饭是很贵的,一顿普通中餐30CHF,与美元1:1。超市价格和质量也是 Wholefoods 水平。然而房价则相对湾区来说低了很多 - 市中心的比较大的2b2b大约3000可以租到。坐车20分钟的2b1b则是不到2000刀。
瑞士和日本大概都是交通基建狂魔,瑞士拥有世界上一流且准点的交通系统,实在是特别特别特别的方便,也特别特别特别的安全。比如2小时公共交通可以到Laax等雪场。半夜在市中心走也没有任何奇怪的感觉。总之交通可以用完美来概括。当然了,现在我上班也都是步行10分钟的样子。
虽然苏黎世不大,可是各种活动你都能找到,滑雪就不用说了,其他比如射箭,攀岩,舞蹈课,音乐课等等。一百刀机票就能去伦敦或者周边各大城市找乐子。
Zermatt小镇风光 https://www.zhihu.com/video/1201047831966121984亚洲胃的出路
来这里之前我以为苏黎世会吃的很差,难以找到亚洲食物。湾区显然有数量和质量都还不错的亚洲餐厅,但其实苏黎世的中餐厅数量和质量远比你想象的多。日料,东南亚菜也特别多,韩餐则少很多。苏黎世也有一家日韩超市,和很多家中国超市,没有大华那么大,但是也能买到大部分需要的东西。本土超市migros和coop也能买到排骨等等高质量的肉类,此外还有肉联厂等。所以作为亚洲人,我并没有觉得在吃上格外艰难。当然平时小伙伴火锅局也是少不了的。
很神奇的是瑞士本土超市和wholefoods一样,总是有各种寿司和广式点心卖,简直是震惊我。此外商场下边都有很大很高级的地下超市,逛一逛都很幸福。
https://www.zhihu.com/video/1201048455319273472平时Google的某个食堂80%的时间都供应寿司,简直太幸福了,还有一个意大利食堂,一个普通食堂,总之简直吊打在湾区前司的食堂。
旅游
四小时火车可以到巴黎,米兰,慕尼黑。一小时飞机可以到西欧几乎所有首都。两小时多就快要能到整个欧洲了。隔一个周末就在外头浪。机票的话便宜的一百刀,就算临时买,两百多往返即可。这个价格在湾区大概只可以去西雅图LA。此外瑞士是申根区但不是欧盟,所以去欧盟国家可以退税。
如果感兴趣的话,可以移步同名小红书,时常更新一些欧洲见闻:)
我在Google工作了10年,03年离开普林斯顿加入Google时,Google还是一家mini创业公司,那时的大公司是微软、IBM。
我还记的在Google第七轮面试时,最后一个面试官穿着运动装,满头大汗地跑进来,显然是刚刚健完身。他是谷歌副总裁艾伦•尤斯塔斯(Alan Eustance)。2014年,全球媒体报道了他从4万米高的平流层一跃而下,打破了三项世界纪录的壮举。
谷歌对我印象最深的两个点是:“不作恶”和“自我颠覆”。从Google成立以来的10多年,一直在给大家创造着各种各样的惊喜,也成为了全球科技的领先者。如果回头来看,我认为可以总结三个经验:
第一,需求倒逼改革。
即产品需求、业务需求、用户需求让Google不断改进自己的业务模式,革新业务流程。03年加入Google时,Google刚好就站在了搜索引擎时代的风口浪尖上。那时,对于搜索产品的使用率和产生的数据都是前所未有的,之前没有人见过这么大规模的数据。这个需求就要求Google不能从现成的解决方案中去找答案,也没办法找一个现成的产品把它拼凑起来。所以以需求为导向,意味着我们必须要将之前的业务模式推倒重来,从无到有搭建一个合适的系统。因此,日后很多领先的技术,都基于这个前提。
第二,对于基础架构的重视。
当时Google有一些很具体的问题需要解决。但它不仅只解决单一问题,而是希望能系统化地解决这一类问题。比如Google最早就开始搭建一个非常强大、超大规模的数据中心。在有了这样的一个硬件基础,再加上一批非常厉害的人,开发出了一个有深远影响的基础架构。
第三,选用最好的人,即便做最普通的工作。
不管在哪里,人的问题都非常重要。Google一开始就把招聘的标准放得非常高。招进来的人一开始可能不做特别资深的工作,但Google一贯的招聘理念是把最好的人招进来,即使让他做最平凡的工作,他也能做出闪光点。这样才能保持公司持续的创造力。
另外,因为我在Google硅谷总部、谷歌中国都工作过,也想简单说一下中美技术人才的区别。
有人曾经问我,该如何定义一个好的技术人才?我觉得这没办法给出一个统一标准,如果用Google的文化来衡量,那就是能否把一个以前从来没有接触过、或是完全不会的东西,在很短的时间内学会,并且做得很好,这是一个很重要的因素。和学习能力相比,个人经验就显得并没有那么重要。
这一点我相信放在哪里都同样适用,但同时,随着回国组建团队,开始慢慢发现中国工程师和美国工程师的一些差异:
中国的工程师有一些明显的长处,例如说,很擅长做一些理论基础很强的事情,算法、基本功、计算机能力都很强,能一件事情做得很工整、很好。
但不一样的地方在于,中国工程师的思维发散程度明显不如美国的工程师们。我们可能特别习惯于被分配一个工作,把这件事情做好。然而硅谷的工程师,他们每天中午吃饭、或是喝咖啡的时候,随便聊天都是在说,我应该做一件什么样的事情去改变世界。他们对这些事情,特别感兴趣。
不过近几年我在国内很多工程师身上也看到了很多极类似硅谷工程师的特质,特别在国内的一些创业公司里。
第一次在知乎答题,希望对大家有帮助。
不需要,我已经几乎两年没用过有线充电了。
把常用场合都部署好无线充电以后,真的不用操心换手机换充电器之类的事情。
其实很简单的一个问题:取消耳机口之后,各位是改用L口耳机C口耳机,还是改用无线耳机?我曾经以为会普及L口或者C口耳机,然而现实就是无线耳机开始普及。
无线充电座普及之后,由于它没有插拔,所以她的寿命其实远比手机要长。
--
所以,如果你没有无线充,强烈建议你尝试无线充。
技术上:光刻机的制造和使用工艺。
金融上:打破美元的霸权。
军事上:台湾问题。
别的问题(房产绑架经济、老龄化、东西部平衡等)都是发展中的问题,都是可能通过发展来解决的。
上面列的3个问题是当前面临的核心问题。