如何快速适应新工作?
背景
作为程序员,跳槽或者被跳槽都是寻常事,那么当你成功入职一家新公司,你会如何快速适应新工作?
即快速的融入团队,尽快发挥价值。
按照基本的思考框架。先来思考一下。
思考问题 | 回答问题 |
---|---|
where are we?现状 | 刚入职,对业务了解很少 |
where are we going?目的 | 快速上手,至少就解决项目问题,长远可大展身手 |
how can we get there?实现路径 | 先了解业务,再宏观了解技术,最后熟悉团队运作过程 |
下面我发散来分析和解决实现路径的问题。
实现路径
明确了目的,实现路径就是一个任务分解的过程。下面我按照第一人称来阐述分解过程。
快速熟悉业务
业务解决的是做什么?
我会在团队中找到熟悉全局产品设计的产品经理或者架构师花大概30分钟的时间讲解一下业务的大图景,(只讲大图景,不用涉及业务的细节)。
即回答如下三个问题:
- 项目是做什么的?
- 项目解决了什么问题?
- 项目的主业务流程是怎样的?
结合业务讲解,我会初步思考,假如我是架构师或者产品总监,我会怎么去设计和实现这个项目。
然后,到测试环境或者演示,完整体验一遍功能点,从项目的用户的视角体验一下是如何解决用户的需求,实现用户的价值的?
快速熟悉技术
技术回答的是怎么做?
技术是伴随职业生命周期最长久的东西,刚入职,不用太着急下沉到技术细节里去。
可以先从宏观上了解技术。
比如可以先找技术导师介绍当前的技术栈,使用的那种语言,明确使用的工具和框架,做到心中有数。
然后,找到现成的业务架构图,了解当前技术解决的业务模型,如果没有,可以找相关的人一起绘制一幅。
有了这些粗粒度的技术栈和业务架构图之后,可以从项目的外部入手,明确系统对外提供的接口有哪些,依赖的内部或者外部系统的接口有哪些?采用的是那种通信方式(REST,RPC,MQ),以及采用的通信协议(JSON,ProtoBuf,Thrift,3GPP);
其次项目内部,即分哪几个模块,每个模块的职责,分层的职责,构建脚本跑一遍,并熟悉常见的构建命令
最后是到代码级别,熟悉目录结构,配置文件(日志,中间件)的位置,模块在源码的体现;
有了宏观的了解之后,可以针对接口的重要程度,从头到尾绘制一下接口的时序图,顺序图,加深对核心业务的理解。
了解团队运作
熟悉业务和熟悉代码解决的是个人的问题,在新的公司,你不可避免的要跟不同的人协作。如果团队的管理比较规范和专业,一般会有规章制度文档描述清楚,如果没有,可以参考一般的处理方式。
团队运作主要分成两块,即外部接口和内部活动。
外部接口主要包括: 需求从哪里来,最终的产品谁来使用,团队向谁汇报,外部客户的日常沟通如何安排;
内部活动:站会,复盘会,周会,设计和代码评审,内部分享机制
了解清楚团队运作流程之后,可以在你需要的帮助的时候,明确知道找谁。
小结
如果你只能记住一句话:快速适应新工作,从业务大图景入手;
以上分解过程都会涉及到跟不同的人进行交流,请尽量使用行话沟通。
原创不易,关注诚可贵,转发价更高!转载请注明出处,让我们互通有无,共同进步,欢迎沟通交流。
我会持续分享Java软件编程知识和程序员发展职业之路,欢迎关注,我整理了这些年编程学习的各种资源,关注公众号‘李福春持续输出’,发送'学习资料'分享给你!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架