大厂有培养体系?我怎么没感受到!

文摘   2024-11-09 11:30   广东  

通知:代码随想录算法训练营 50期在下周三(11月13日)正式开营,目前可以报名!

一些录友会好奇,究竟培养体系应该是什么样的呢?大厂都会这么培养新人吗?

以下也是知识星球里录友的提问:


请问一下卡哥,你之前的回答里说的,大厂会有比较好的新人培养体系,想问问大概是什么样子的?

有培养体系是普遍现象吗,还是只有成熟的/核心的部门才有?

我目前入职某大厂小半年了,感觉基本靠摸爬滚打和不断问别人,很难受,也没有一套标准的新人学习流程之类的。


Carl 答:

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

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

具体要看部门,有的业务部门营收压力比较大,那就是赶鸭子上架了。

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

要从两个方面来说:

  • 给你详细的学习路线(自我技术提升)
  • 给你有产出的活(用来晋升)

详细的学习路线

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

一个功能的开发,需要经历如下几步:

  1. 看需求文档,确定需求
  2. 这个需求包含了哪些功能
  3. 有哪些难点 (这对以后晋升答辩写ppt很重要)
  4. 后台架构是什么样的(要有架构图)
  5. 定协议(前后台一起商量),服务与服务之间的,后台与客户端之间的
  6. 设计数据结构+算法=程序
  7. 预估一下容量(各种资源例如带宽,存储,CPU等等)
  8. 考虑一下部署(安全性,容灾,可伸缩性。。。。)
  9. 设计评审 (上面过程都是在分析)
  10. 编码
  11. 自测
  12. 联调
  13. 交给测试
  14. 代码review
  15. 合入代码  (这里很容易出错,因为会和别人的代码合并在一起)
  16. 全量测试
  17. 发布  (需要非常谨慎,有时候压力挺大的)

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

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

这么想的同学一般是没有参与过大型且流程规范的项目开发。

互联网千万级用户的项目,几十上百人一起开发是需要规范的,所以上面我说的每一步都很重要!

有产出的活

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

这里就是很多所谓的“套路”,老司机一般挑的活符合如下几点(不一定要求都符合一下条件,但符合的越多,这个活越舒服)

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

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

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

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

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

扯皮

再给大家拓展拓展 平时开发都有哪些扯皮。

其实程序开发,扯皮的事情非常多,例如上面说的开发流程中的:15.合入代码和 16.全量测试

合入之后,一般测试同学去跑一个全量测试,没出问题 万事大吉,一旦出问题,甩锅也是心累。

可能一些录友会感觉很简单的操作,其实合入是非常容易出错的,因为你的代码可能没问题,其他人的代码也没问题,但合入到主干之后,就有问题了....

或者是你 的代码改了一个 地方的,其他模块代码正好依赖这个地方,也出问题了.....

或者是你的代码没问题,是别人的代码有问题,但上次全量测试没测出来,这次测出来了,那测试就认为你的代码引入的bug....

我再举一个例子,有一些bug,是陈年老bug,改起来非常麻烦,谁都不愿意改。

改这种bug在领导眼里是不算业绩,而且还非常容易犯错。

那如果你的代码合入 有引发了这个bug(可能和你的代码没关系,这个bug就是周期出现),那测试会认为是你导致的,开会的时候和领导一反馈。

领导很自然就让你来修改,这个bug就甩到你身上了,所谓的 甩锅接力,你最后接棒了

所以合入代码,特别是和 其他人一起开发一个模块,你的代码一定要尽早合入,这样你会省心很多。(这里只有懂的人才会懂!)

后面合入的话,你的前面已经很有多其他同学代码的,出问题的话 即使不是你的问题,你也要去排查,因为是你合入的代码导致的。

可以看出来,就单纯的写代码,其实 扯皮的事情也非常多....

这是项目大了,繁琐的流程 所带来的必然结果,但 人多去开发大项目又一定需要流程,所以这里需要一个权衡。

每一个项目组权衡的角度是不一样的。有的是 牺牲流程推进效率,有的是降低效率保流程(安全性规范性)。


准备求职的录友们都在代码随想录知识星球 每日打卡,星球置顶一,硬核资料可以让大家少走很多弯路:

已经有3w录友加入了知识星球方向比努力更重要,一群人可以走的更远!


代码随想录
认准代码随想录,学习算法不迷路。 刷题网站:programmercarl.com
 最新文章