星期日, 一月 14, 2007

google interview: 1st by phone

从原来的公司辞职的时候,其实还没有考虑过再找什么样的工作,只是觉得再那样做下去不会有什么长进了,因为自己产生的很多新的设想都没有办法去实现,工作变成了朝九晚六的坐班,每天就做着那些数据搬运工和系统救火员的 IT 民工事业,提出的想法和意见也没人听,和维护组的那位 Partner 也不太投契,也许有点犯相吧,倒是和其他组的几位比较合得来。

而且象这种游戏公司,做 IT 维护自然会非常了累,加上我这个人对于重复性的劳动本来就没有多少疲劳强度,感觉身体也是一日不如一日。

再者,游戏这种东西,总是难逃圈钱和毒害青少年之嫌,如果可以有别的选择,我想我还是应该做出改变了。

所以,虽然这时候还没有找到下家,但我还是毅然辞职了。因为心里的设想也已经渐渐趋于成熟了。一个是关于 Enterprise Architecture 的架设,另一个是从网上看到一个德国人写的基于用户的包管理方法的原理,觉得可以写成一个软件。于是我打算从这个地方入手,先做点东西出来,可以拿得出手,这样再找工作也有点资本。

于是回家休息了一段时间,然后开始设计基于用户的包管理器。这时候还没有想过要在找什么工作、什么公司。后来覃建议我投到 google,因为那种文化比较适合我的个性吧。

在完成了 0.1.1alpha 版本的时候就回上海了,时间是 11 月了。然后投了简历到 google,以及其他在 51job 上的一些公司。开始文本格式有问题,结果是石沉大海,其他公司也没有消息。无论如何,生计问题不能不解决。后来也投了几次其他公司,跑了两次面试,基本上没什么效果,在面试时也谈到了自己的设想和目标,但似乎不能引起对方的关注。

其实这也很正常。现在想来,是当时在定位上有问题。

后来在 11 月下旬左右又投了一次,这次大概在 12 月中旬收到 google HR 的电话,问了一些诸如大学成绩之类的问题,然后安排的第一次面试,是从美国打过来的越洋电话,因为时差的关系,很早就得爬起来。

这次只是问了一些很基础的问题。例如:

问: IP, HTTP, TCP, 以太网,按协议由低到高排列?
答: 以太网, IP, TCP, HTTP。

问: 子网掩码为 255.255.128.0,问可以容纳多少个 IP 地址?
答: 128 * 256 个。

问: (提示)有没有什么特殊的地址?
答: 是网络地址和广播地址,所以应该是 128 * 256 - 128 * 2 - 2 个。

问: 那么为什么这两个地址不能作为 IP 使用?
答: 广播地址是用来发送广播报文,这样子网中所有的主机都能够接收到;网络地址...
正解: 网络地址可以用来计算路由。

问: traceroute 的工作原理是怎样的?
答: 它首先发送一个报文,设置其 TTL=1,这样在第一个路由器就会返回报文并被 traceroute 记录;然后它设置 TTL=2,一次类推,直到到达目标的所有路由都被记录。

问: 那么它使用的是什么协议?
答: ICMP。

问: 下面是一些 UNIX 的基础问题。请将这些服务和端口号对应起来:
...(省略,比较简单)

问: 如果不知道某个服务的端口号应该怎么办?
答: 查看 /etc/services 文件。

问: DNS 的 TTL 是做什么的?
答: ...(答错,和备份 DNS 的序列号弄混淆了)
正解: 缓存的 Time To Live,即只缓存服务器过多长时间更新一次记录。所以域名解析的变更通常不是立即生效的。

问: id 为 1 的进程(init)是做什么的?(印象中大概是这样的)
答: 是系统中所有进程的父进程,用来 fork 其他进程。

问: 如果父进程中止,那么子进程会怎样?(不记得是否有这个问题,但答案的话是说过的)
答: 子进程由 init 接管。

问: 僵尸进程是怎么回事?
答: 僵尸进程是指父子进程已经中止,而父进程却没有的到其退出状态的进程。

问: 那么为什么要这样设计?
答: 这样至少保证如果一个进程有问题,那么会显示出来。(回答得不是很好,但大体意思答出来了)

问: uptime 的输出是什么意思?
答: 表示1分钟、5分钟和15分钟之内的平均负载。

问: 那么负载是什么意思?
答: 即单位时间内在等待队列中等待执行的进程的数量。

问: 那么进程有几种状态?
答: 运行、等待、睡眠和挂起等。

问: Linux 中做 RAID5 至少需要几块磁盘?
答: 3 块。

问: 如何保证和提高 UNIX 系统的安全性?
答: 首先保证操作系统本身的文件权限和用户的安全性,设置正确的防火墙规则,还有可以添加 tripwire 这样的工具来保证系统的完整性...(回答得不是太好)
补充: 增加良好的认证如 PAM 规则以及 Kerberos,还有 IDS(入侵检测系统)如 snort,并加强监控和日志审查。

可能还有一两个问题记不起来是什么了。

总体上,当时个人感觉还可以。

不过后来回想起来,当时的简历实在是写得太差劲,用语、结构都有问题。用朋友的话说,就你那种简历,竟然还面了几次,简直是奇迹。

一个好的简历是非常关键的,在心理学上称之为定位调整偏见,又称“锚定”,在这里就是给考官的第一印象。基本上每个考官在谈话之前都要看过你的简历的。

所以后来我找了本专门介绍写简历的书,按上面的原则重写之后,效果奇好。不过那时已经失掉 google 的机会了...

没有评论: