刚入职,实在太闲怎么办?

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

通知:代码随想录算法训练营 46期在下周三(9月11日)开营,目前可以报名,提前拉群做等开营。

星球里很多 24届录友已经入职几个月了,刚出来工作,难免会遇到不少职场问题。

而这些问题在网上也是找不到答案的。

下面这位录友就是刚入职几个月,就有如下两个问题:

  • 部门目前比较闲,自己没有开发任务,自己要去学点什么?担心学错方向耽误时间
  • 面对大工程,有什么理解的步骤吗?部门代码看不懂

还有一点新人大忌,就是自己目前手头没活,不要感觉这是好事,可以安静的在公司摸鱼

公司不傻,领导也不傻,没有产出的员工 绩效是不会好的,劝退也是早晚的事。

所以手头没活,要自己和领导要活,要自己找活,没价值要创造价值才行

相信这些事绝大多数 刚入职录友会遇到的问题,所以分享给大家,以下是他在知识星球里的提问:


卡哥好,我又来啦

目前也入职两个月了,组内的开发逻辑目前算是清楚一些了,但是还是没给我什么需求,要么就都是一些小bug小需求解决一下,也主动问了很多次mentor 都是说后面就会忙起来了但还是没啥活哈哈哈。

所以目前每天还是比较闲,都是在自己学习下设计模式,看看文档啥的。一旦闲下来就都会七想八想,虽然过得比较巴适,但没产出也会焦虑起来。所以想请教您几个问题

第一,目前这种比较闲的情况下,需不需要学习一些其他知识,拓宽自己的技术面,比如说找一些好的开源项目学习一下啥的。

总觉得什么都可以学,但是怕没定好方向,浪费自己的时间精力,卡哥对于闲暇时间的学习有什么建议吗?

第二,面对大工程,有什么理解的步骤吗?

现在都只是面向需求,去进行增添功能啥的,也就只了解了相关的部分,对工程整体还是比较迷茫,组内文档相对不够规范,相关文档都看完了,但是工程还是理解欠佳,只是对组内相关业务有些了解。

主要就是这两个问题啦,辛苦卡哥有空的时候解答下❤️


Carl答:

你刚刚入职,还没工作多久,不太建议 自己 去拓展知识面,例如开源项目之类的,就像你说的,怕自己做了很多无用功。

你目前部门文档不规范,这对你来说不是危而是机!

你空闲时间就去 读项目代码,给项目组 规范文档,哪里没有文档说明,哪里写的不规范,你就写哪里,你就去补充哪里。

等自己写出一篇项目架构文档,完善的不错的话,就发到工作群里, 领导会看到的,也一定会认可你的工作。

因为部门需要有详细的技术文档沉底,这样可以帮助部门后面来新人快速成长。

同时一些老人可能都忘了哪些模块是怎么设计的了,你的文档也帮助大家快速回顾,而你相当于 给部门做了 很多人没时间做的,而且非常有意义的事情

这么做,不仅帮助你 理解项目,沉淀思路,也对项目组有贡献,也让老板认可你的工作

如果你能把项目组文档整理的不错,年底没有理由 给你差绩效,因为你的贡献是可以量化的,你写的文档 对项目组技术沉淀很有帮助。

反过来 如果你闷头自己学习,学各种框架学开源项目,你目前工作本来就闲,年底 很容易因为 产出不够 拿差绩效。

至于 “面对大工程,有什么理解的步骤吗?”,星球里有一位录友,林夕,分析的挺好,我直接复用他的描述:


林夕答:

如何快速理解一个全新的大项目?

其实一开始我是比较自信的,因为我觉得我看过一些 Linux 源码,也能弄懂 muduo,我以为我那些经验能让我马上弄懂这个项目。

但是我忽略了一点重点,我以前看 Linux、muduo 源码都是有很好的文档的,其实并不是我自己去分析代码,而是看了一遍别人的分析之后理解起来当然快,但是这次是没有这么全的文档的,也不会有人带着我分析。

那么这个情况我一开始是怎么做的呢?

我一直在找数据流图,一直在找类图,因为我坚信直接看代码我不可能看得懂。

但是迫于无所事事的压力和自己小小的自信,我还是去看了一部分源码,果不其然没有什么收效。

找到数据流图 和 类图了,我就开始想设计思想了,我想自底向上分模块击破。

但是为了搞懂思想我陷入了细节当中,面对一堆 magic number 、继承体系和异步,每一个细节都是难以攻破的。占用了很多时间,而且我没有梳理出有用的东西。

最后一个阶段,我开始想尝试通过调试 demo 来运行项目,但是写过多线程代码的同学是理解的,这种调试痛不欲生,4个线程,一堆 callback,经常不知道跑到哪里去了。

更好的方法是:

1、从最高的抽象层级开始挖掘项目本质,先从高的抽象层级击破它。举一个例子,一个 RTC 协议,那就先明白:RTC 是什么?

RTC 是实时音视频协议

什么是实时音视频协议?

就是延时 < 400ms 传输音视频包的协议。

到这我就明白了,它是一个应用层传输协议。

诶?这会不会 和 HTTP ,FTP 这些协议类似?

了解之后发现是类似的,那么也就是说 是封装了 TCP 或者 UDP 做传输咯。

2、用以前自己熟悉的项目区类比

分析到这,我就开始用分析 HTTP 和 FTP 去做相同的应用层功能分析,到此,我了解这个协议的功能。

然后我开始细化,我发现了很多回调和 select,我在哪里学过回调?Linux kernel 和 muduo ,我开始用分析 muduo 回调的方式来分析 这里面的回调,我发现都是 这种 buffer 的形式,很类似。我开始了解了这个项目的工作流程。

3、多问同事,特别是 owner 或者是正在维护的同事

在上述分析过程中,并不是像写这么几行文字那么容易的,中间我去问了 4年前写这个项目的 owner,和他确定了项目思想,然后细节问题,我就问正在维护这个项目的人,这样才能理解地更快。

4、最后就是及时去学习 类似的、资源更多的项目,比如我这里是写 RTC,那么我就去学了 RTC 的祖宗:WebRTC,发现有很多类似点,也对理解会有帮助。

5、TODO :分析出线程模型,接收和发送的流程。


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

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

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