工具
-
C/C++/Java
- 知道
- 基本的 函数调用概念
- 如何将源代码编译运行起来
- 可以写出来一个数组的 读入、排序、 按照 格式 输出的程序。)
- 熟练使用一门以上编程语言,bash/python脚本语言
- 一般是 C/C++/Java + Python/Ruby/Bash;
- 例如C++要求熟练C++11及以上。
-
- 使用 C/C++/Java 中的一种语言完成开发任务,
- 在 mentor 指导下进行一周以内的
- 代码开发和测试。
- 熟练的阅读C++代码
- 具备C++入门级开发能力,
-
Python/Bash 脚本编程
- 给了一段脚本之后,
- 能自己 Google
- 完全弄懂脚本的意思。)
- 使用 Python/Bash/JS
- 中的某种语言
- 熟练完成数据处理的任务。
-
知道并使用过 make、cmake 等构建脚本工具,
- 会看懂和修改 Makefile,
- 能够搞定简单的 CMake 配置问题。
- 能够看懂 Makefile。
-
Linux 的使用经验。
- 使用命令行的经验。
- 常用的 grep find date sed tr head 等都需要熟悉。)
-
会使用基本 git 和 GitHub/gitlab。
- clone commit push branch merge
- GitHub操作是指
- 发起 PR/MR,
- 更新PR/MR,
- 跟多个 remote 进行同步。)
-
熟练使用 Linux 命令行工具,
- 包括 find、grep、sed 等,
- 熟练使用不同小工具的参数和组合完成日常的任务。
-
能够熟练使用 git,
- 并且具备良好的小组 git 开发的技能
- (不是要求经验,是要求技能,
- 仔细学习过 Pro Git 或类似的书)
-
自己进行软件调试,
-
调试自己的代码。
- 会使用 gdb 的同学加分。
基础知识
- 学过《编译原理》,或者看过吴伟老师的《编译技术入门与实战》课程,参考链接:
https://www.bilibili.com/video/av78503049
-
对
- 数据结构、
- 算法导论、
- 计算机组成原理/微机原理/计算机体系结构、
- 现代数据库原理
- 有比较系统的了解,学习过,能够快速的复习和掌握。
-
对
- 编译原理、
- 计算机网络、
- 现代操作系统
- 三门课程的知识,要有比较好的理解和记忆。
-
基本 Office 软件操作能力;
- 能够在组内进行技术报告。
- (新实习生每周三的周例会上会要求进行报告。)
-
可以在mentor指导下
- 完成函数级别的功能的开发,
- 能够自己阅读代码,
- 理解局部代码逻辑。
-
在指导下完成
- 项目的测试、
- 实验数据的收集和清洗、
- 文档报告的撰写等内容。
-
独立承担一周以上长度的
- 代码开发工作。
-
独立的分析
- 遇到的bug或crash,
- 具备较强的测试、调试、分析查错的能力。
- (这是LV3的准入门槛)
-
快速理解任务内涵
- 并在mentor少量辅助下找到解决方法,完成任务。
-
熟练阅读英文技术资料。
-
能够熟练的进行公开的技术报告。
-
独立承担
- 模块级别开发类工作,能够
- 快速学习新领域知识。
-
对于LLVM等大型软件系统,
- 能够独立地完成
- 调试、
- 分析查错,
- 找到问题根源并修复,
- 确保开发任务的按时推进。
-
指导LV3以下伙伴,辅助伙伴完成开发任务。
-
独立做技术报告和分享。
-
察觉和指出LV4及其以上的错误、知识的盲区,并且纠正出现的错误。
-
根据需要,独立的从0到1的为团队开辟一个新的知识领域,通过调研报告、技术分享、扩展开发等途径撑起一个细分的技术方向。
-
有能力独立分析和分解问题,整合各种资源完成任务。
-
指导LV4及以下伙伴,
- 能够独立领导开发团队并保证交付。
-
应对各类突发情况,
- 并代表团队与mentor沟通。
-
具备了可以领导一个开发小组的能力。
面试结束,面试官放下电话,直呼,这个人怎么这么菜。
第一次面试面试软件所PLCT实验室,申请职位:Clang/LLVM 开发实习生/OpenJDK for RISC-V 开发实习生/RISC-V公开课教学助理(助教)
面试经过
首先自我介绍,如何关注到PLCT的,怎么知道的招聘信息等等
然后就是技术部分:
-
JVM:
-
JVM结构:
回答:分为三部分,类加载子系统、运行时数据区、执行引擎。
-
执行引擎又怎么分:
回答:解释器、GC、还有即时编译器(JIT)
反思:首先是没想起来即时编译器想的是里面的分析器,后来才补上即时编译器的名字,还把英文缩写说成JIN了
JVM部分结束,反思:
没有把面试官引导到我比较了解的类加载子系统,下次可以说我学习的流程是按照类加载子系统,运行时数据区,执行引擎这样的顺序,类加载子系统印象比较深刻。 ,这样说不定还可以多说点。
-
-
Linux:
-
平常linux用的多吗?
回答:用的比较多,我把我的实验环境和博客都部署在上面。之前还拿来学操作系统,觉得linux比较友好
反思:然后我因为最后一句话就突然给自己跳转了副本,跳转到操作系统副本。
-
-
操作系统:
-
操作系统做过哪些实验?
回答:做过内存分配,线程调度什么的
反思:忘了!!!好久以前的了,全忘了,我为什么要开操作系统的副本。我忘了说还有内存整理合并
-
内存分配有哪些机制:
回答:FIFO, LRU (叽里呱啦没解释清), 轮转调度
反思:这就拉胯开始了,几乎全忘了。LRU都说不清,解释了半天我自己都听不懂。
-
-
计算机网络:
-
HTTP UDP TCP IP各在哪一个分层?
回答:(不说了反正回答全错)
反思: 这里我真的,全忘了,面试之前忘了看,答得乱七八糟,最拉胯。
-
-
结束
评价:基础一般,勉勉强强。
反思:一上来自我介绍我就紧张,感觉那时候根本不是我。说了半天说不到点上,然后还是因为紧张,好多东西都忘了(计网的知识忘了不是因为紧张)。没有很好的引导面试。没有往我会的地方引导。反而开了高难度副本。
作者:Oliverrrr
链接:juejin.cn/post/691115…
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。