Differences between revisions 1 and 2
Revision 1 as of 2013-07-04 19:26:36
Size: 5512
Editor: twotwo
Comment:
Revision 2 as of 2019-08-11 23:00:31
Size: 8801
Editor: twotwo
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 技能获取模型

工程师面试

1. 技能评估

目的: 了解面试者优势及自我认知评价

方式:

  1. 面试者填写《工程师技能评估表》,为每项技能的自身掌握程度填写等级评估
  2. 面试官据此对其进行相关提问,结合笔试情况二次评估

1.1. Skills Level

  • 新手(Novice)
  • 高级初学者(Advanced Beginner)
  • 胜任(competent)
  • 精通(Proficient)
  • 专家(Expert)

1.2. Skills

  • 需求分析
  • 软件设计
  • 单元测试
  • 数据库
  • 网络通讯
  • Java 语言
  • Bash 脚本
  • Linux 系统

1.3. Google Interview Self-assessment

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:

For software areas - ability to develop medium programs using all basic language features w/o book, awareness of more esoteric features (with book).
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) +

1.3.2. Subject Areas

  • TCP/IP Networking (OSI stack, DNS etc)
  • Unix/Linux internals
  • Unix/Linux Systems administration
  • Algorithms and Data Structures
  • C

  • C++

  • Python

  • Java

  • JavaScript

  • 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

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. 请补充完成以下单例模式

   1 public class Singleton {
   2         ______  ______   Singleton instance;
   3         ______  Singleton() {
   4                 
   5         }
   6         ______  ______  ______ Singleton getInstance() {
   7                 if(instance==null) {
   8                         instance = new Singleton();
   9                 }
  10                 return instance;
  11         }
  12 }

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 ____________________________________________

3. 参考

MainWiki: EngineerInterview (last edited 2019-08-11 23:00:31 by twotwo)