之前我一直在知识星球和大家讲,能进大厂一定要进大厂,大厂有比较好的培养体系。
也有录友在星球里问我,究竟培养体系应该是什么样的呢? 大厂都会这么培养新人么?
其实大厂部门也是非常多,不同的领导对待新人的态度也是不一样的。
就拿腾讯来说,腾讯里面 上千个部门,基本就是上千个小公司,只不过外面披一个腾讯的壳子,每个小公司的leader风格截然不同。
赶上什么样的领导了,这就看命运了。
只能说进大厂,大概率会有一个比较好的培养体系。
那么好的培养体系是什么呢?
要从两个方面来说:
- 给你详细的学习路线(自我技术提升)
- 给你有产出的活(用来晋升)
关于详细的学习路线,一般大厂入职之后配有导师的,导师给你安排的每一个功能,应该带你熟悉整个研发的流程。
一个功能的开发,需要经历如下几步:
- 看需求文档,确定需求
- 这个需求包含了哪些功能
- 有哪些难点
- 后台架构是什么样的(要有架构图)
- 定协议(前后台一起商量),服务与服务之间的,后台与客户端之间的
- 设计数据结构+算法=程序
- 预估一下容量(各种资源例如带宽,存储,CPU等等)
- 考虑一下部署(安全性,容灾,可伸缩性。。。。)
- 设计评审 (上面过程都是在分析)
- 编码
- 自测
- 联调
- 交给测试
- 代码review
- 合入
- 发布
可以看出来,写代码仅仅是 其中的一小步。导师应该带你走一遍完整的开发流程,然后告诉一些注意事项,这样为自己程序员生涯打好基础。
可能有的同学会感觉:我就开发一个小功能,哪用得着这么多步骤,一把梭哈,直接代码写完。
哈哈,这么想的同学一般是没有参与过大型且流程规范的项目开发。互联网千万级用户的项目,几十上百人一起开发是需要规范的,所以上面我说的每一步都很重要!
初入职场的同学,可能都非常在意能不能学到东西,也就是自我技术提升,往往忽视了你干的活,是否有产出,能不能用来晋升。
这里就是很多所谓的“套路”,老司机一般挑的活符合如下几点:
- 非常规整(周边没有烂糟的额外工作,例如还要开发各种小工具之类的)
- 独立模块(不需要和其他人扯皮,省事)
- 对项目组很重要(既有技术难点,又没有大量的业务增删改查)
- 风险系数比较低(上线出问题,锅甩不到他这里)
这种活就是好活,用来晋升的利器,而且干着也舒服。
但一个项目,一定会有大量需要打杂的活,写各种脚本,各种处理数据,然后看各种问题,整理文章,汇报,开发边缘工具等等。
新人一般进来都是先打杂的,但如果领导确实是细心培养你,还是额外给你一个小模块,让你做好,这个小模块就是让你用来晋升的或者转正的。
这个建议不仅适用于实习生,对于初入职场的同学也很用帮助,这个部门是不是有在培养你,老司机一眼就能看出来,只不过新人可能自己很难发现。
所以需要过来人点拨一下,大家就知道自己现在的处境了。
希望对大家求职和工作有所帮助!