为了保证制作简历的安全性和流畅性,建议您使用Chrome浏览器进行访问
拿哞 学校
APP 内打开
分享
21
135

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

默默地过完在Google的最后一周, 下周就要去startup开始新的征程了, 趁着现在写一下对Google的看法.


在Google工作让我成长了很多, 在这里我遇到了很多优秀的同事, 学会建立规范的流程, 写一个完整详细的design doc, 以及设计scalable的system. 我觉得对于刚毕业或者像我这种没在互联网公司工作过的人, Google绝对能称得上软件工程师的蓝翔技校...


有几点我学会的东西很值得拿出来跟大家分享:


1、Design doc: 在Google工作后, 我在做一些自己side project的时候, 都会先写一个design doc. 我觉得写design doc这件事情不只适用于大公司. 因为design doc可以帮忙理清楚思路, 分析清楚需求, 系统架构, 项目的商业价值, 等等.


2、建立process: 我曾经在一个项目里面管理过几个contractors, 这需要很多沟通, planning, 以及和Google内部的组配合. 当时的lead PM首先做的就是建立一个好的process来streamline不同组之间的合作. 对于一个早期的项目, 很多东西其实没法很好得自动化, 这个时候建立一个process就很有帮助了.


3、Why system design is hard: 进入Google前, 我的工作比较偏modeling. 当时我也读过Google那几篇经典的论文(Bigtable, GFS, MapReduce), 但其实并不明白为什么设计系统这件事情很困难, 或者说没法理解system paper的价值在哪里. 后来在Cloud AI从0到1做一个ML system的项目, 从身边做系统的同事学到了要去思考failure怎么处理, API应该怎么设计, 怎么去解决consistency相关的问题. 慢慢地也有了对system的taste, 也开始更深入读一些system相关的paper, 比如UCB Riselab一些新的研究成果. 我不敢说自己这一块经验很深, 但起码知道了需要考虑什么问题, 这个问题为什么难, 以及有哪些方向可以去解决.


那为什么会离开Google呢? Google作为一家有着接近十万员工的公司, 已经变得更加官僚, 做事情的速度变慢, 升职不给力. 虽然这能保证Google能够继续稳定得输出, 但对于个人来说, 并不是每个人都能在这样的游戏规则下, 找到让自己快速成长的机会. 这里说的成长机会, 不只是说升职, 也包括拿到更大的scope, 对公司决策的影响, 管理团队的机会, 等等. 如果把自己放在一个更有挑战的环境, 成长的速度也许会更快.


对我而言, 我以后还是希望有机会成立自己的startup, 所以也会关注自己不只是在技术上线性进步, 而是也能在strategy, product, management skill上得到锻炼和提升. 抱着这个想法, 最后还是决定继续去startup试一试. 也许会失败, 也许财务上的回报不如留在Google, 也许还会是个大坑, 但希望能跳出Google的环境, 看看更大的世界.

发布时间:2021年06月23日
用户头像
我来说两句…
共 21 条评论
Aoaoa
谷歌出来的人真是对这个行业贡献特别大。我们公司现在的java后端系统底层就是谷歌出来的一个大神一手写的。guice, bazel, grpc, thrift。有这整套基础公司后端迭代特别快。
2021年06月25日 回复
郭芙蓉
想问一下你对 new grad 选择大厂还是 startup 有啥建议呀?如果能私聊就更好啦
2021年06月25日 回复
拿哞 郭芙蓉: 这个问题问不同人会有不同答案. 我个人的看法是, 对于new grad, 求稳选择大厂; 能承担高风险(家里不是急需钱/可以接受选错了, career发展变慢)可以选择startup. 因为new grad一般情况对行业的判断还会欠缺一点, 有大厂的branding/培训/形成良好的工作习惯都会有帮助. 但如果你真的遇到很不错的startup, 尤其是高速成长的startup, 成长的速度会比大厂快很多, 说不定就直接财务自由了.
2021年06月25日 回复
幸_被_票。 软件测试
老师教教我怎么写design doc
2021年06月25日 回复
拿哞 幸_被_票。: 你们内部文档应该也有不少design doc吧 :). 感觉跟着Template走, 看看别的工程师写的design doc就会有感觉吧. 我现在想到的基本元素有 1. Background / Introduction (为什么要做这件事) 2. Requirements vs non-functional requirements: 明确好需求和设计的目的. 3. Proposed solution and alternatives, 先说方案, 然后表明自己做过research, 但别的alternative没有我的好. 最好画些架构图方便大家理解. Proposed solution需要非常详细, 可以包括数据库schema设计, RPC method, 需要修改到的地方等等. Alternative可以简单一点, 但需要点明优劣. 如果系统比较大, 可以拆成不同components, 每个components都有proposed vs alternative.. 4. Test / Monitoring / Metric: 怎么做测试, 监控系统, 哪些metric可以衡量项目的成功 (帮助你升职)... 5. Work items: 估计每部分需要多少时间 (多少engineer week) 6. Questions / Meeting notes: 一般设计的时候, reviewer会有些问题可以在这里clarify或者comments, 或者design review的时候记录一下别人的问题. 7. Reference: 放些相关的doc, 比如需要碰到的系统之类的.
2021年06月25日 回复
Culaccino
果然劝退传统机械不是没有道理的,真正优秀的机械人是你这样
2021年06月25日 回复
舟镜 多伦多大学·2022届
Google cloud ai....厉害的
2021年06月25日 回复
田川 天津工业大学·2022届
十有八九是Apache Arrow RiseLab好像最近没什么轰动性项目了:-<
2021年06月25日 回复
北城 哈尔滨工业大学·2022届
永远向着这种大佬看齐,才能不停进步
2021年06月25日 回复
joker_pwn
emmm中英混搭的写法也是在外企学会的吗...
2021年06月25日 回复
玩火的印度人
大佬的startup准备用啥子技术?也是golang吗?
2021年06月25日 回复
落叶№凋零 香港科技大学·2022届
佩服你敢于冒险的勇气
2021年06月25日 回复
小白你快跑 中兴·产品运营
望而却步
2021年06月25日 回复
姚琼WEsport 广东金融学院·2022届
好牛
2021年06月25日 回复
白日梦九级玩家
真的强
2021年06月25日 回复
九月 电子测试工程师
大佬怎么去的国外工作呀
2021年06月25日 回复
授衣月节肚使__
同求如何写设计文档~~
2021年06月25日 回复
千粉黛
求教如何写设计文档。。。头疼
2021年06月25日 回复
牧诗 西北农林科技大学·2022届
大佬啊
2021年06月25日 回复
枕梦 产品营销策划
真的很不错
2021年06月25日 回复
薛定谔的猫 天津理工大学·2022届
英文太多。。看不太懂
2021年06月25日 回复