Skip to content

Latest commit

 

History

History
126 lines (85 loc) · 7.47 KB

how-do-we-rank-interns.md

File metadata and controls

126 lines (85 loc) · 7.47 KB

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

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

更新记录:

  • 第三版更新:2020年06月01日

增加了对于调试、分析查错的能力的要求和界定。

  • 第二版更新:2019年12月27日

提高了对于自主解决问题的能力。

  • 第一版公开:2019年03月14日

在6级等级之外,实习生等级可能还有一个附带的【见习】标注。 【见习】是指尚未达到制定LV等级,处于培养阶段的实习生。 例如【LV3见习】就是指超过了LV2等级,但是尚未完全满足LV3要求的状态。

在技术划分之外,还有管理能力标注的【M】标注。 带有【M】标注的实习生是以其组织管理能力作为最高LV评价标准, 对应的其技术能力可能低于其M等级。

LV0 无能力者

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

我们一般不招募LV0无能力者。除非

  • 体现出了极强的学习能力和责任感,吃苦耐劳,愿意承担苦力活。
  • 具备很好的培养潜力及可能性,自学能力强。
  • 正好有可以LV0/LV1做的岗位。

加入团队的 LV0,一般要求在4周内完成到LV1的能力提升。否则实习终止。

PLCT实验室不支付LV0实习生的实习工资。

部分机器人功能测试和辅助岗位接收LV0,具体请参考机器人团队的招募信息。

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 进行同步。)

机器人方向的实习生,要求具备C++入门级开发能力,并完整学习过柴长坤老师的《ROS开发入门》的慕课。参考链接:

https://www.bilibili.com/video/av75652415

编译器方向的实习生,要求具备C++入门级开发能力,学过《编译原理》,或者看过吴伟老师的《编译技术入门与实战》课程,参考链接:

https://www.bilibili.com/video/av78503049

IDE方向和Android开发实习生,要求具备Java语言能力。

我们招募少量比例的LV1低能力者。要求实习生具备极强的学习能力和责任感。

加入团队的 LV1,一般要求在4周内完成到LV2的能力提升。否则实习终止。

目前,机器人测试岗位、App测试岗位等接收LV1。

LV2 异能力者

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

机器人方向的开发者要求能够较为熟练的阅读C++代码,并能够自己写新的class等代码,实现功能。

编译器方向的实习生要求能够熟练的阅读C++代码,能够看懂 Makefile。

IDE方向的实习生要求学习过 Eclipse 的架构和概念,能够自行查询 Eclipse 的资料,熟悉 Java 语言的开发,学习过 Java 的新版本特性。

这是我们招募的基准线。大部分实习成员都是以LV2等级加入的。加入之后根据实习表现情况不定期晋级。

LV3 强能力者

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

LV3 是我们相关开发团队的最低准入级别。我们有一定比例的初级岗位接收LV3能力等级的校招学生。

LV4 大能力者

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

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

LV5 超能力者

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

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