Files
CategoryResourceRepost/极客时间专栏/geek/设计模式之美/不定期加餐/加餐四 | 聊一聊Google那些让我快速成长的地方.md
louzefeng bf99793fd0 del
2024-07-09 18:38:56 +00:00

7.0 KiB
Raw Blame History

我一直强调在项目中实践、由点及面的学习是提高技术最有效的途径。但是好的技术氛围、培养机制也能打破通过项目单一成长的限制获得更多项目之外的收获。很多公司特别是一些大公司在关注员工工作效率、工作产出的同时也十分关注员工的个人成长、职场发展。今天我就和你聊一聊Google有哪些让我快速成长的地方。

完善的培训课程

Google内部的课程是非常多的。有些是线下分享有些是线上录播课程。在内容方面课程也多种多样有新技术的DogFood比如我当年就参加过Go语言的有入门级的101教程比如针对后端工程师的前端入门课还有比较有深度的系列教程比如AI相关的课程。所有的课程只要你感兴趣都可以自由选择来学习。

而且最近我还听说Google有个“G2G”学习计划全称是Googler to Googler意思就是Googlers之间互相学习。只要你有值得分享的东西都可以录制成视频分享给其他同事。同理你也可以从其他同事那里学习他们分享的技术。

总之Google内部有大把的优质课程供你学习这点对于好学的人来说是非常幸福的一件事情。而且得益于以结果为导向的企业文化Google非常鼓励员工自我充电学习不像有些公司反对员工占用上班时间来学习。

公开的文档和代码

除了各种线下和线上的课程之外Google还有另外一块非常宝贵的学习资料那就是文档和代码。在Google除了特别核心的一些代码比如跟搜索质量相关的代码几乎所有的文档和代码都是公开的你可以随意查看某个感兴趣的项目的设计文档和代码比如Google Adwords的文档和代码等等。

你可能会说Google就不怕员工泄露代码吗在这一点上Google相对是比较信任员工的。毕竟在招聘入口上做了过滤员工本身的素质都不差这点我们在下一篇加餐中还会讲到。

我们知道Google有非常多优秀的开发框架有些是开源的有些是还没有公布、只限内部使用的。不管你对哪个开发框架感兴趣你都可以在公司内部获取到一手的文档资料。通过阅读别人的文档除了学习这些框架如何使用之外我们还能学到很多关于设计、架构、解决方案等方面的经验和知识。

实际上,我觉得,代码公开最大好处并非是,你没事的时候就可以阅读别人的代码,毕竟泛泛地去读,效率也不会很高,收获也并不会很大,读完就忘了。相反,我一直强调,带着问题去学习是更有效的一种学习方法。所以,我觉得代码公开最大的好处是,当你想要实现某个功能的时候,或者为实现某个功能绞尽脑汁的时候,你只需要搜索一下代码仓库,就可以找到很多类似的优质代码做参考。对于很多新人或者初级工程师来说,参考别人的设计和实现,这样一方面可以提高开发速度、保证代码质量,另一方面也可以从高手那里学习好的设计思路和实现技巧,提高自己的设计和实现能力。

相反据我所知很多公司的代码都是限制访问的员工只能查看一小部分相关项目的代码极端情况下只能阅读自己参与的项目的代码。相对而言Google就“大方”很多。除了Code Review之外我觉得从n多Google高手的代码中学习设计和实现是提高代码水平的另一个非常重要的渠道也是让我代码能力成长最快的地方之一。

清晰的成长路径

除了有那么多课程、文档、代码来供我们自我学习之外Google也非常关注员工的个人成长希望能跟员工共同进步而不只是将员工当成达成目标的工具。所以在不同的阶段公司会帮组员工制定不同的成长计划。

我们知道像国内的一些大公司比如BAT在新员工入职的时候一般都会有集中几天的入职培训。我当年加入Google的时候并没有这样的培训。我只参加过一次TGIFThanks God Its Friday上NewGoogler的欢迎仪式。

Google虽然没有集中的培训但对于新入职的员工公司会有一个新人的学习计划主要涉及编码规范、单元测试、Code Review、开发工具、行为准则等方面的内容。我觉得这一点对新人来说还是挺友好的。新人可以根据指引一步一步完成学习计划里的内容不会因为刚入职还未参加项目而觉得无事可做。除此之外在新员工入职时公司还会分配一个同事作为mentor导师。任何工作、生活中的问题你都可以向他请教帮助你快速地融入公司。

除此之外在工作中每隔半年你的Leader还会跟你一块制定OKR也就是接下来半年你要做的事情除了工作内容这里面还会包含你的个人成长部分比如你可以学习数据挖掘相关的知识把这部分内容直接写到OKR中这部分甚至可以跟你的工作没有任何关系只是你对自己的自我提升。

不仅如此你的Leader还会帮你制定升职计划。如果你有意申请下一轮晋升领导一般会提前跟你一块规划如何来做才能达成这个目标比如做什么项目、做哪些有影响力的事情、管理多大的团队等等也会有意安排一些帮你晋升的事情给你做。

为了不让工程师一直呆在舒适区Google还非常鼓励内部转岗希望员工不要一直做一个项目鼓励员工跳出舒适区换岗到其他团队用不熟悉的语言、不熟悉的技术去做一些不熟悉的项目。虽然我们知道内部转岗机制也并非Google所特有的很多公司都有但是真的执行得很顺畅的却不多。大部分公司都是跟风喊喊口号员工真的要转岗的时候条条关卡、困难重重。

上面的这些机制貌似也没有什么特别的很多公司都有。我要特别说的是在Google一对一的沟通非常多特别是跟自己的Leader或者Manager一般一两周就有一次聊一聊自己这周的工作、想法、迷惑。这种沟通也能让你把工作、个人成长中的困难、疑问及时反馈给领导领导也可以及时地了解你的想法对你进行指导这也能避免很多工程师闷头干活感觉不爽就立刻离职的情况。

课堂讨论

在你的职业生涯中,你觉得哪段工作经历对你的个人成长最有帮助?为什么呢?

欢迎留言和我分享你的想法。如果有收获,也欢迎你把这篇文章分享给你的朋友。