<p align="center">
<a href="https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ" target="_blank">
  <img src="https://code-thinking-1253855093.file.myqcloud.com/pics/20210924105952.png" width="1000"/>
</a>

# 大厂的新人培养体系是什么样的

之前我一直在[知识星球](https://mp.weixin.qq.com/s/QVF6upVMSbgvZy8lHZS3CQ)和大家讲，能进大厂一定要进大厂，大厂有比较好的培养体系。

也有录友在星球里问我，究竟培养体系应该是什么样的呢？ 大厂都会这么培养新人么？

![](https://code-thinking-1253855093.cos.ap-guangzhou.myqcloud.com/pics/20210717173307.png)

其实大厂部门也是非常多，不同的领导对待新人的态度也是不一样的。

就拿腾讯来说，腾讯里面 上千个部门，基本就是上千个小公司，只不过外面披一个腾讯的壳子，每个小公司的leader风格截然不同。

赶上什么样的领导了，这就看命运了。

**只能说进大厂，大概率会有一个比较好的培养体系**。

那么好的培养体系是什么呢？

要从两个方面来说：

* 给你详细的学习路线（自我技术提升）
* 给你有产出的活（用来晋升）

## 详细的学习路线

关于详细的学习路线，一般大厂入职之后配有导师的，导师给你安排的每一个功能，应该带你熟悉整个研发的流程。

一个功能的开发，需要经历如下几步：

1. 看需求文档，确定需求
2. 这个需求包含了哪些功能
3. 有哪些难点
4. 后台架构是什么样的（要有架构图）
5. 定协议（前后台一起商量），服务与服务之间的，后台与客户端之间的
6. 设计数据结构+算法=程序
7. 预估一下容量（各种资源例如带宽，存储，CPU等等）
8. 考虑一下部署（安全性，容灾，可伸缩性。。。。）
9. 设计评审
（上面过程都是在分析）
10. 编码
11. 自测
12. 联调
13. 交给测试
14. 代码review
15. 合入
16. 发布

可以看出来，写代码仅仅是 其中的一小步。导师应该带你走一遍完整的开发流程，然后告诉一些注意事项，**这样为自己程序员生涯打好基础**。

可能有的同学会感觉：我就开发一个小功能，哪用得着这么多步骤，一把梭哈，直接代码写完。

哈哈，这么想的同学一般是没有参与过大型且流程规范的项目开发。互联网千万级用户的项目，几十上百人一起开发是需要规范的，**所以上面我说的每一步都很重要！**

## 有产出的活

初入职场的同学，可能都非常在意能不能学到东西，也就是自我技术提升，往往忽视了你干的活，是否有产出，能不能用来晋升。

这里就是很多所谓的“套路”，老司机一般挑的活符合如下几点：

* 非常规整（周边没有烂糟的额外工作，例如还要开发各种小工具之类的）
* 独立模块（不需要和其他人扯皮，省事）
* 对项目组很重要（既有技术难点，又没有大量的业务增删改查）
* 风险系数比较低（上线出问题，锅甩不到他这里）

这种活就是好活，用来晋升的利器，而且干着也舒服。

但一个项目，一定会有大量需要打杂的活，写各种脚本，各种处理数据，然后看各种问题，整理文章，汇报，开发边缘工具等等。

新人一般进来都是先打杂的，**但如果领导确实是细心培养你，还是额外给你一个小模块，让你做好，这个小模块就是让你用来晋升的或者转正的**。

这个建议不仅适用于实习生，对于初入职场的同学也很用帮助，这个部门是不是有在培养你，老司机一眼就能看出来，只不过新人可能自己很难发现。

所以需要过来人点拨一下，大家就知道自己现在的处境了。

希望对大家求职和工作有所帮助！

