Skip to content

Latest commit

 

History

History
84 lines (63 loc) · 5.91 KB

how-do-we-rank-interns.md

File metadata and controls

84 lines (63 loc) · 5.91 KB

我们如何对实习生进行能力分级评定

我们模仿常盘台中学经验将能力者分为LV0到LV5六种不同的程度。达到不同的能力等级之后,具备对应的能力,承担相应的责任。能力等级评定采用仁慈独裁者模式,由 wuwei 评定。能力等级评定会参考 mentors 和 LV4+ 的意见。评价标准均以能否完成机器人公司日常开发任务为评价标准,公司用不到的能力,不在评价范围。

LV5 超能力者

  • 在LV4基础上,有能力独立分析和分解问题,整合各种资源完成任务。
  • 能够指导LV4及以下伙伴,能够独立领导开发团队并保证交付。
  • 有能力应对各类突发情况,并代表团队与mentor沟通。
  • 在某些情境下,被授予自主决定权,能够根据现场状况调整策略,是公司指挥链的一部分。

LV5 不管是实习生还是员工,都具备了可以领导一个开发小组的能力。

LV4 大能力者

  • 在LV3基础上,能够独立承担模块级别开发类工作,能够快速学习新领域知识。
  • 对于LLVM等大型软件系统,能够独立地完成调试、分析查错,找到问题根源并修复,确保开发任务的按时推进。
  • 能够指导LV3以下伙伴,辅助伙伴完成开发任务。
  • 能够独立做技术报告和分享。
  • 能够察觉和指出LV4及其以上的错误、知识的盲区,并且纠正出现的错误。
  • 能够根据需要,独立的从0到1的为团队开辟一个新的知识领域,通过调研报告、技术分享、扩展开发等途径撑起一个细分的技术方向。

LV4 是默认的全职员工招聘等级要求,达到LV4的实习生可以获得Offer。

LV3 强能力者

  • 在LV2基础上,能够独立承担一周以上长度的代码开发工作。
  • 能够独立的分析遇到的bug或crash,具备较强的测试、调试、分析查错的能力。(这是LV3的准入门槛)
  • 能够快速理解任务内涵并在mentor少量辅助下找到解决方法,完成任务。
  • 熟练使用一门以上编程语言,一般是 C/C++/Java + Python/Ruby/Bash;例如C++要求熟练C++11及以上。
  • 熟练使用bash/python脚本语言。
  • 熟练阅读英文技术资料。
  • 能够熟练的进行公开的技术报告。

达到 LV3 级别的实习生将会有机会独立完成技术挑战。

LV2 异能力者

  • 在LV1基础上,对于数据结构、算法导论、计算机组成原理/微机原理/计算机体系结构、现代数据库原理等课程有比较系统的了解,学习过,能够快速的复习和掌握。
  • 对编译原理、计算机网络、现代操作系统三门课程的知识,要有比较好的理解和记忆。
  • 能够熟练使用 Linux 命令行工具,包括 find、grep、sed 等,熟练使用不同小工具的参数和组合完成日常的任务。
  • 能够熟练使用 git 进行团队代码合作。
  • 能够使用 C/C++/Java 中的一种语言完成开发任务,在 mentor 指导下进行一周以内的代码开发和测试。
  • 能够使用 Python/Bash/JS 中的某种语言熟练完成数据处理的任务。
  • 加分:能够自己进行软件调试,调试自己的代码。会使用 gdb 的同学加分。
  • 加分:知道并使用过 make、cmake 等构建脚本工具,会看懂和修改 Makefile,能够搞定简单的 CMake 配置问题。

这是实习生招募的默认门槛。大部分实习成员都是以LV2等级加入的。加入之后根据实习表现情况不定期晋级。

LV1 低能力者

  • 至少掌握一门编程语言,C/C++/Java 必须掌握一门。(【掌握】在这里的意思是,知道基本的函数调用的概念、如何将源代码编译运行起来,可以写出来一个数组的读入、排序、按照格式输出的程序。)
  • 会基本的 Python/Bash 脚本编程。(这里【会】的意思是给了一段脚本之后,能够自己通过Google或书本完全弄懂脚本的意思。)
  • 具备基本 Office 软件操作能力;能够在组内进行技术报告。(新实习生每周三的周例会上会要求进行报告。)
  • 可以在mentor指导下完成函数级别的功能的开发,能够自己阅读代码,理解局部代码逻辑。
  • 有能力在指导下完成项目的测试、实验数据的收集和清洗、文档报告的撰写等内容。
  • 能够按照要求及时与mentor及同事沟通,做好工作的文字记录,总结问题与经验。
  • 有 Linux 的使用经验。(这里是指使用命令行的经验。常用的 grep find date sed tr head 等都需要熟悉。)
  • 要求会使用基本 git 和 GitHub/gitlab。(这里【基本】是指 clone commit push branch merge,GitHub操作是指发起 PR/MR,更新PR/MR,跟多个 remote 进行同步。)

我们一般不招募LV1。

LV0 无能力者

  • 这是所有没有接触过软件开发的同学的默认状态。
  • 表示没有用任何编程语言写过代码,没有使用过编译器。
  • 对于数据结构等计算机基础知识没有概念。

我们一般不招募LV0。

文件更新记录

  • 第四版更新(2024年4月21日):删除过时的机器人团队信息;弱化了LV2的要求;简化了部分文字。
  • 第三版更新(2020年06月01日):增加了对于调试、分析查错的能力的要求和界定。
  • 第二版更新(2019年12月27日):提高了对于自主解决问题的能力。
  • 第一版公开(2019年03月14日):在6级等级之外,实习生等级可能还有一个附带的【见习】标注。【见习】是指尚未达到制定LV等级,处于培养阶段的实习生。例如【LV3见习】就是指超过了LV2等级,但是尚未完全满足LV3要求的状态。在技术划分之外,还有管理能力标注的【M】标注。带有【M】标注的实习生是以其组织管理能力作为最高LV评价标准,对应的其技术能力可能低于其M等级。