在谷歌(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的环境, 看看更大的世界.