如何练习
如何准备非技术问题?
回答非技术问题的时候需要结合关键点以及自身经历。一般来说,你需要准备 5 到 6 个故事,这些故事都可以从不同类别(团队合作,技术,个人成长)来进行阐述,每个故事请根据以下内容准备:
- 简介:用两三句话简述该故事的背景
- 详情:故事的详细过程与细节。
- 不同类别的关键点:针对团队合作,技术,个人成长三个类别,每个类别列出几个关键点。
- 找出能够回答的问题:尝试找到这个故事能够回答的问题(本文最后)
准备示例
简介
在 A 公司实习的时候,我作为开发组成员,参与了 B 项目的前期调研与功能开发。主要职责包括需求评审,方案调研与 C,D 等多个模块的开发与测试。期间,我们与产品组密切配合,在三个月时间内完成了主要需求和项目核心功能。
详情
在 A 公司实习的时候,我作为开发组成员,参与了 B 项目的前期调研与功能开发。刚开始,产品组向我们阐述了项目的需求,我们与他们通过多次会议,对需求进行了优先级划分,确定了第一阶段先完成哪些主要功能。接下来,我们通过调研业界的方案以及结合团队情况,对项目开发给出了三个月的预估时间。
在开发过程中,由于需要用到 Kafka,我使用下班的时间阅读官方文档与资料,快速学习了它的基本原理与常见操作,并且在项目过程中通过阅读文档加强对它的了解。另外,我们使用了开源框架 Celery 作为队列服务,但在项目后期,发现该框架无法支持定时任务功能。通过阅读源码,通过修改框架源码,我实现了该功能,并且提交了 pull request 到该项目。
开发进行到一个半月的时候,有新的紧急任务,需要开发组更新另外几个项目的安全,导致无法按时完成本项目的全部需求。于是我们与产品组再次沟通,对需求重新进行调整,并且最终在三个月完成主要功能。反思整个项目过程,一开始我以为队列服务只需要一周时间就能够完成开发,没想到最终耗费了两周时间,不过幸好在其他方面节省了时间,最终能够及时上线。另外我在本项目接触了数据分析与大数据处理,感觉开拓了视野,不排除之后会转向该方向。
不同类别的关键点
- 团队合作:
- 与产品组进行沟通,对需求优先级进行划分,确保按时按量完成需求
- 与团队成员对开发方案有不同意见,通过沟通与方案对比解决问题
- 专业技能:
- 遇到了定时任务的技术难点,通过阅读源码,研读资料与询问团队成员后解决,并且学习到解决这类问题的方案
- 通过 Kafka 阅读官方文档与资料,快速学习没有接触过的技术栈
- 个人成长:
- 对于开发时间的预估不准确,之后会进行前期调研以及 Demo 开发来确认开发时间
- 接触了大数据开发与数据分析,对于自己未来职业规划有了新的理解
回答对应的问题
- 如果你和团队成员有冲突的话,如何解决?(团队合作的关键点)
- 你遇到最难的技术问题是什么?如何解决?(专业技能的关键点)
- 这个项目你学习到什么东西?(个人成长的关键点)