⇤ ← Revision 1 as of 2013-07-04 19:26:36
Size: 5512
Comment:
|
← Revision 2 as of 2019-08-11 23:00:31 ⇥
Size: 8801
Comment: add google interview self-assessment form
|
Deletions are marked like this. | Additions are marked like this. |
Line 28: | Line 28: |
=== Google Interview Self-assessment === * [[BookWiki:geekbang_048_ChenHao_ARTS|陈浩-怎样提升技术领导力]] * [[http://www.stochasticgeometry.ie/2010/07/20/interviews-google/||target="_blank"]] My interviews at Google * [[https://www.jianshu.com/p/b1f57417320d||target="_blank"]] Google 技术评分卡 ==== 11 级技能标准 ==== 仔细看了一下,感觉这个标准更适合自己学习的时候使用,面试的技能评估不如 Dreyfus 简单明了。因此增加了对照行。 ||<:>'''Level''' ||<:>'''Discription'''||<:>'''与 Dreyfus 技能等级的对照''' || || 0 || you are unfamiliar with the subject area.||新手(Novice) || || 1 || you can read / understand the most fundamental aspects of the subject area.||新手(Novice)+ || || 2 || ability to implement small changes, understand basic principles and able to figure out additional details with minimal help.||新手(Novice)++ || || 3 || basic proficiency in a subject area without relying on help.||高级初学者(Advanced Beginner) || || 4 || you are comfortable with the subject area and all routine work on it:<<BR>><<BR>>'''For software areas''' - ability to develop medium programs using all basic language features w/o book, awareness of more esoteric features (with book).<<BR>>'''For systems areas''' - understanding of many fundamentals of networking and systems administration, ability to run a small network of systems including recovery, debugging and nontrivial troubleshooting that relies on the knowledge of internals. ||高级初学者(Advanced Beginner)+ || || 5 || an even lower degree of reliance on reference materials. Deeper skills in a field or specific technology in the subject area.||高级初学者(Advanced Beginner)++ || || 6 || ability to develop large programs and systems from scratch. Understanding of low level details and internals. Ability to design / deploy most large, distributed systems from scratch.||胜任(competent) || || 7 || you understand and make use of most lesser known language features, technologies, and associated internals. Ability to automate significant amounts of systems administration.||胜任(competent)+ || || 8 || deep understanding of corner cases, esoteric features, protocols and systems including “theory of operation”. Demonstrated ability to design, deploy and own very critical or large infrastructure, build accompanying automation.||精通(Proficient) || || 9 || could have written the book about the subject area but didn’t; works with standards committees on defining new standards and methodologies.||专家(Expert) || || 10|| wrote the book on the subject area (there actually has to be a book). Recognized industry expert in the field, might have invented it.||专家(Expert) + || ==== Subject Areas ==== * TCP/IP Networking (OSI stack, DNS etc) * Unix/Linux internals * Unix/Linux Systems administration * Algorithms and Data Structures * [[C]] * [[CPP|C++]] * [[Python]] * [[Java]] * JavaScript * [[Golang|Go]] * Shell Scripting (sh, Bash, ksh, csh) * SQL and/or Database Admin * Scripting language of your choice (not already mentioned) _ * [[Docker]] * People Management * Project Management |
|
Line 166: | Line 204: |
* [[http://www.ti100.net/html/2013/java_0203/13312.html|亚信Java面试题]] * [[http://longzhanfeng1988.blog.163.com/blog/static/3287234020124215465548/|Java中的阻塞和非阻塞IO介绍]] |
* [[http://www.ti100.net/html/2013/java_0203/13312.html|亚信Java面试题|target="_blank"]] * [[http://longzhanfeng1988.blog.163.com/blog/static/3287234020124215465548/|Java中的阻塞和非阻塞IO介绍|target="_blank"]] |
Back to Human Resource Management |
See also Dreyfus 技能获取模型 |
工程师面试
Contents
1. 技能评估
目的: 了解面试者优势及自我认知评价
方式:
- 面试者填写《工程师技能评估表》,为每项技能的自身掌握程度填写等级评估
- 面试官据此对其进行相关提问,结合笔试情况二次评估
1.1. Skills Level
- 新手(Novice)
- 高级初学者(Advanced Beginner)
- 胜任(competent)
- 精通(Proficient)
- 专家(Expert)
1.2. Skills
- 需求分析
- 软件设计
- 单元测试
- 数据库
- 网络通讯
- Java 语言
- Bash 脚本
- Linux 系统
1.3. Google Interview Self-assessment
http://www.stochasticgeometry.ie/2010/07/20/interviews-google/ My interviews at Google
https://www.jianshu.com/p/b1f57417320d Google 技术评分卡
1.3.1. 11 级技能标准
仔细看了一下,感觉这个标准更适合自己学习的时候使用,面试的技能评估不如 Dreyfus 简单明了。因此增加了对照行。
Level |
Discription |
与 Dreyfus 技能等级的对照 |
0 |
you are unfamiliar with the subject area. |
新手(Novice) |
1 |
you can read / understand the most fundamental aspects of the subject area. |
新手(Novice)+ |
2 |
ability to implement small changes, understand basic principles and able to figure out additional details with minimal help. |
新手(Novice)++ |
3 |
basic proficiency in a subject area without relying on help. |
高级初学者(Advanced Beginner) |
4 |
you are comfortable with the subject area and all routine work on it: |
高级初学者(Advanced Beginner)+ |
5 |
an even lower degree of reliance on reference materials. Deeper skills in a field or specific technology in the subject area. |
高级初学者(Advanced Beginner)++ |
6 |
ability to develop large programs and systems from scratch. Understanding of low level details and internals. Ability to design / deploy most large, distributed systems from scratch. |
胜任(competent) |
7 |
you understand and make use of most lesser known language features, technologies, and associated internals. Ability to automate significant amounts of systems administration. |
胜任(competent)+ |
8 |
deep understanding of corner cases, esoteric features, protocols and systems including “theory of operation”. Demonstrated ability to design, deploy and own very critical or large infrastructure, build accompanying automation. |
精通(Proficient) |
9 |
could have written the book about the subject area but didn’t; works with standards committees on defining new standards and methodologies. |
专家(Expert) |
10 |
wrote the book on the subject area (there actually has to be a book). Recognized industry expert in the field, might have invented it. |
专家(Expert) + |
1.3.2. Subject Areas
- TCP/IP Networking (OSI stack, DNS etc)
- Unix/Linux internals
- Unix/Linux Systems administration
- Algorithms and Data Structures
- Shell Scripting (sh, Bash, ksh, csh)
- SQL and/or Database Admin
- Scripting language of your choice (not already mentioned) _
- People Management
- Project Management
2. Java工程师笔试题
2.1. 简述sleep()和wait()的区别
~ ~
2.2. 简述以下对象之间的区别
ArrayList/Vector? HashMap/HashTable? ~
2.3. 简述阻塞和非阻塞IO的区别
~ ~
2.4. 内存泄露与内存溢出有什么区别?
~ ~
2.5. 编程序将一个字符串反转
1 String str = “Hello, World!”;
2 ____________________________________________
3 ____________________________________________
4 ____________________________________________
5 ____________________________________________
6 ____________________________________________
7 ____________________________________________
8 ____________________________________________
9 ____________________________________________
10 ____________________________________________
2.6. 请补充完成以下单例模式
2.7. 给出查询实现方法,评估大致耗时
有一个100万行的CSV文件 (每个值用逗号分开),每行有50个字段大约1k的大小,也就是说这是一个1GB大小的文件。 我要统计第七列包含“hello”的一共有多少行,请给出最快的实现方法,并评估大致耗时: • A - Around 30 seconds to a minute • B - Around 20-30 seconds • C - Around 10-15 seconds • D - Sub 10 seconds
2.8. 用冒泡法重写sort方法
1 public class Sort {
2 int[] array = new int[]{1,3,6,8,4,2,5,0,9,7};
3 public int[] sort() {
4 //coding:
5 ____________________________________________
6 ____________________________________________
7 ____________________________________________
8 ____________________________________________
9 ____________________________________________
10 ____________________________________________
11 ____________________________________________
12 ____________________________________________
13 ____________________________________________
14 ____________________________________________
15 return array;
16 }
2.9. 计算找出这个数组中的哪几个连续的数据之和最大(伪代码即可)
1 int [] params = new int[]{12,13,-42,43,-54,91};
2 ____________________________________________
3 ____________________________________________
4 ____________________________________________
5 ____________________________________________
6 ____________________________________________
7 ____________________________________________
8 ____________________________________________
9 ____________________________________________
10 ____________________________________________
2.10. 完成代码,找出未被放入数组中的数字
1 int [] array = new int[1000];
2 //把从1到1000的自然数随机拿出999个数字放入array数组中,用最快的方法找出未被放入的数字
3 ____________________________________________
4 ____________________________________________
5 ____________________________________________
6 ____________________________________________
7 ____________________________________________
8 ____________________________________________
9 ____________________________________________
10 ____________________________________________
11 ____________________________________________