周六,是第九届北京ComicDive同人展的日子,我没去(pia打飞)。早上出门坐地铁路过奥林匹克公园站的时候,看到地铁站里好多人在化妆……年轻真好啊。
上午去了深信服面了个事。这个公司对我来说挺特殊的,为什么?因为这个公司曾是(可能现在也是)我在职公司的第一竞争对手。为什么去这个公司面试?原因有两点:1、我把简历重新丢在了招聘网站上,但是没有主动投任何一份简历,我想知道我现在这点份量,有哪个公司可能看得上我;2、北京的房价不说,空气污染程度,交通状况,以及“总开会”没活动,让我对这个城市已经疲惫了,想以后换一个地方,期望去广州或者回西安,这个想法跟大学同学讲过之后,在广州工作的同学第一个提到的公司就是深信服,看样子在广州知名度还不错?(虽然这次是招北京研发职位)。
深信服的HR是主动来联系我的,所以我也比较好奇整个过程是怎么样。
整个面试过程我都写下来了,可能部分有出入,并无大碍。
面试时间原定在周二的下午,这是个上班的时间,我在简历上也有注明过我是在职,但还是单方面定了面试时间。
当然设定也不是那么死,邮件沟通过后将时间最后调整到了周六的上午10点。
个人觉得,周六是休息日了,麻烦人家放弃休息时间,专门跑到公司面试,真心有一些过意不去,所以去的时候一定要客客气气的。
周六上午早早爬起来,洗漱完就坐地铁开始往健德门去,途径奥体公园看到正准备参加CD9的朋友,十分羡慕。
9点半到了健德门,找到元大都7号,进入E座,到达12层。
元大都7号貌似是纯商用的一栋楼,但是进入之后却发现完全是民用房的设计,其入口、电梯和走廊,都和我现在正在居住的清景园是一模一样的设计,有种完全无法理解的感觉,而且电梯凶残得很,门刚刚打开,我刚往里面迈步的时候,门就开始关,而且力量很大,当时夹了我一下。
到达12层,时间是9点40,稍微观察了一下。这层有4家房间。其他三个房间的门都是锁着的,只有1202这个房间虚掩着,而且没有挂牌(可能也有,我没看见),稍微探头往里面看了一下,没有看到类似前台的工作人员。
因为来的早了20分钟,而且此办公点没有前台,出于礼貌,我决定先给周先生打一个电话,已确认他有时间安排面试。
电话内容大概是这样的,首先问了我是谁、问了我是定在几点面试的、问我现在在哪,我答道我已经到了元大都7号E座1202的门口了。之后电话那边没有声音了,但是没有挂断。几秒钟过后电话那边说没有看到我,我说我在门外。电话那边说,那你进来吧,进来之后右边有一个楼梯,你上来就好。
(总觉得在未经人家允许之前就傻站到人家公司屋里,怪怪的)
进了房间,右手边有一个超窄的螺旋楼梯,扭扭曲曲爬上楼(变成第13层了),见到周先生,没说什么话,直接让我到一个会议室待机,之后他离开了。
会议室采光不错,不过屋里略有点乱,感觉像是刚刚开完会一般,桌子上堆了一些用过的纸,白板上写着一些英文的网络用词。大门开着,能非常清晰的听到他们工作时的声音,感觉不像是临时加班,更现实全员都在工作的样子。周六也上班啊,我是非常不怀念以前在电信工作的日子。
因为是参加面试,所以出于礼貌,我静静的就坐在椅子上,没玩手机,也没到处研究他们的会议室。等了大概有10分钟,周先生回来,面试开始。
第一个问题仍是经典的自我介绍,我最搞不懂要做什么的环节。
自所谓流氓不问出处,土匪不看岁数……简历上写的清清楚楚为何又让我再说一遍呢。当然我还是简单的说了一下自己是本科毕业,以及电信4个月网康30个月左右的工作经历简述了一下,over。本科期间的活动一概未提,毕竟不是校招,陈年往事无用。
这位周先生首先重新确认了一下我在电信负责什么,我答运维工程师,之后这个话题就断掉了,没有给我一丝机会说明我的工作内容。
第二个问题便是问我在“网康”负责什么什么的测试
周:你负责什么的测试?
我:主要负责功能测试,连带一些系统的性能测试和稳定性测试。
周:我问的是负责什么产品?
我:代理。
周:什么产品?
我:代理产品。
周:什么代理产品?
我:HTTP代理产品。
周似乎还想问下去,不过犹豫了片刻沉默了下去,当然,沉默的时间并不够让我插入进去详细说明。
当然了,作为我负责的产品线的头号竞争对手,这位周先生可能最期望的是我把“NPS”这个词说出来吧,当然也可能他根本不知道我负责的NPS是什么,毕竟不是所有“开发”有兴趣把对家的产品资料翻个底朝天的,因为那是销售和售前才有兴趣做的事。不过我是不会说的。(这里可以出语文题:为什么作者不会对周先生说这个词?)
第三个问题
周:你所负责的代理产品,核心是什么?
我:(内心,你是想问程序核心啊还是产品核心价值啊,既然是开发类职位应该就是程序核心了吧)……HTTP代理引擎
周:……
我:(内心,你不会是想问我们用的HTTP代理引擎用的是apache、squid还是nginx吧,这是公司机密你甭想从我嘴中撬出来。再说你们不是挖到过我们其他的员工搞到了底层的密码,已经黑过我们的设备不是了么,你确定要这么试探我?是想确认我是不是傻子,等面试完了套出话之后就想抹布一样无情的丢掉么)
当然我并不是非要把他想这么坏啊,上一句是后话啊,下面这第四个问题也很让人崩溃啊。
周:请把你代理产品的基本框架描述一下
我:(卧艹,问的东西越来越靠近公司的核心机密了,这不是面试吧,这越来越接近于技术窃取了吧?于是)这个不能讲。
周:你不讲的话,我没办法面试
我:这个至少现在不能讲。
周:那好吧,那你描述一下你负责的代理产品的基本工作流程
我:好的,请给我一张纸,让我画一下。
周先生从桌子上一堆已经用过的废纸堆里翻出来一张纸,并给了我一根他不用的笔。我还得抠抠搜搜找有大空白的地方画图,而且本身我写字就很丑,所以很多字写的扭扭曲曲。
因为这涉及到公司机密,不能讲,所以我只是简单的画了一个简单iptables+“代理引擎cache/noncache”的代理框架和http,顺带加上了LocalDNS(当然这是临时起的名字,真名不能说)和一些其他琐碎的功能进去,因为这些小东西都是我开发的,而且也不是什么核心。(当然,LocalDNS这个功能在某一个公司级项目上立过大功,所谓小模块干大事,只不过那是个竞标早就结束的项目,那个季度研发经理最后还离职了,所以这个项目对我来说也没什么了不起。不过据我所知,同行业产品只有我负责的产品有这个功能)
画完之后,周先生指着iptables问我,
周:这之前还有什么模块?
我:没有模块。(和代理不相关的模块我当然一个都不说,公司机密一定要守口如瓶,能说的东西一定要是大众的,比如iptables+代理,之类的)
周:真没有?
我:确定没有。
周:那怎么能正常工作?
我:iptables把指定流量只给代理引擎,代理引擎代理做请求,请求完成后将数据回传给浏览器,就可以了。
周:iptables怎么把流量传给代理?
我:靠NAT表的规则。
周:靠NAT表?
我:设备通过界面配置策略将指定源IP、目的IP、目的端口的流量指给代理引擎,就可以了
周:如何做?
我:靠规则,靠策略
周:什么规则?
我:用户配的规则
……在这之后这个问题我就记不清了,因为我觉得对这个问题后面就是胡搅蛮缠了
感觉简直是在给售前做培训,而且还在最不需要关心的地方搞不完似的。
第五个问题
周:如果有不能代理的流量进入了,怎么办
我:不代理,直接拒绝掉
周:那不是会出问题么?
我:(再次拿起刚才画的流程图)您说的流量不应该被代理,实际情况下也会由于规则不能进代理
周:(按下我拿起的图)那么如果进代理了怎么办?
我:不代理,直接拒绝掉
周:那不是会出问题么?
(上一段真的不是写重了这是真事)
我:您能让我把会通过设备的几种流量都描述一遍么?
周:……好吧
(感觉就像是在给一个完全不再听的售前做培训)
讲完之后
周:如果有不能代理的流量进入了,你们又不代理,那不是会出问题么?
我:(……)用户有不正常的流量,同时用户又配置了不正确的规则,导致有不能代理的流量进入了代理,这是用户配置的问题。
周:你们不做协议识别么?
我:(你想问协议识别你不能早说?是不是刚才指着iptables的时候就想问这个?)做协议识别,但是那是另一个框架的事情
周:怎么做?
我:靠iptables的其他表
周:哪些表?
我:raw表和mangle表
周:怎么实现?
我:靠规则?
周:你写一下
我:我只会描述NAT表的,我所负责的部分并不接触raw表和mangle表。(会我也不能写啊)
周:……
第六个问题
周:写一个HTTP请求头
我:这个没什么可写的,HTTP请求头里,除了必须有标准的|“动作”,也就是除了GET、POST、CONNECT(这个还是https的)等之外,其他的字段都是可有可无。
周:你抓过包么?
我:抓过
周:只有GET、POST?
我:可以只有GET、POST、CONNECT
周:……
周:那你描述一下过代理和不过代理的请求头有什么区别
我:没有区别
周:没有区别?
我:在第七层请求头上没有区别
(当然这里可能我答错了,这里在不同的拓扑下,数据包是不同的,但是实际上在第七层,代理不代理的影响也不大,几乎没有实质上影响,除非你开了什么功能,比如ntlm认证,但是不过代理依旧可以用ntlm认证,所以其实还是没有区别。如果哪位真有兴趣在这里较真的话,可以自己抓抓看)
周:……
第七个问题
周:写一个shell脚本,实现两个数相加
我:输入方式是什么?
周:键盘输入
我:是要做成./plus 5 6 这种输入,还是做成./plus.sh[Enter]后询问A=?和B=?这种?
周:要第二种
说实话这是我最讨厌的环节:手写代码。我离开电脑就想不起来单词怎么拼,而且因为一直在做底层纯自动化的东西,所以3年都没写过还要手动分步输入的代码,直接搞得我完全写不出来,最后只写了一个#!/bin/bash之后就放弃了
第八个问题
周画了一个简单的登陆界面,上面有输入账号和密码的文本框,一个登陆键,一个注册链接,一个忘记密码
周:我现在有这么一款产品,对这款产品写一个测试框架
我:测试框架?(卧艹那是什么鬼?我最讨厌这种只有形式的东西了)我先确认一下,这是一款包括硬件的产品?
周:是的
我:是基于现有产品继续开发的功能,还是完全重新安装的?
周:有区别么?
我:当然有,因为如果是……(被打断)
周:完全重新安装的
我:好的
再次拿起那张破破烂烂已经画满代理流程的纸,完全找不到剩余的空间写别的东西
我:请问我可以换一张纸吗?
周:行。(递过来一堆废纸,我的心情已经糟透了)
我:既然是全新安装的,那么首先在拿到安装包前就要检查一下安装包是否都正确(因为自己工作过程中发现过类似问题所以感觉需要强调一下),之后再安装过程中看有无报错,安装完成后首先检查各引擎是否正确安装并启动,httpd,php,数据库,lsmod一下,启动脚本,守护进程,文件权限……之后是功能上,因为只是个登陆界面,所以对功能来讲底层没有什么实际可测试的地方,底层的文件权限刚才已经检查过了。再看界面……(被打断)
周:好了今天的面试就到这了,向正对着会议室的方向直走,走到头向右转就能出去了
我:……好吧,能告诉我如果有答复的话,大概需要等多久吗?
周:这个我答复不了你。
我:大约时间范围都没有?
周:这是广州人事说的算,我答复不了你。
我:好吧,今天麻烦您了。
周未作回应。
答题过程中被强制中断,直接被赶出来了。也不给个期待时间。
坐地铁回家,在北土城换成的时候看到有个已经打扮好的coser也在等车,周围一圈不明真相的群众……年轻真好,我也想去。
但最终我还是没有在奥林匹克公园下车,坐到了清景园,买了菜,回家做饭了。
因为是跑到敌对公司去面试,所以最初这件事,连我妈都不知道。不过我觉得既然去了,就有必要写出来。
一方面,我很想确认一下自己到底是有多半斤八两,虽然感觉2013年荒废了半年,除了树莓派开发意外,个人发展止步不前,公司又由于换了领导,同期应聘的也几乎全部离职,所以略微有点搞不懂自己该何去何从了。参加一次面试,能知道现在的公司大致都需要什么,考核什么,这些需求中是否有自己的弱点,自己又是否具有对方正合口味的能力,我这次面试的目的就是这个没错。回到家吃完午饭后,我就开始整理思绪,一方面自己虽然经常写shell,但是却有很多不会写的东西,应用力太窄。另一方面自己虽对培训、框架、流程和故障排查什么的都超顺手,但貌似这些并不是某些公司需要的能力,所以感觉暂时不需要对这些方面进行拓展。
另一方面,深信服这个公司对我来说印象深刻,因为我在校期间就接触过他们的产品,就如同我也接触过现在公司的这些产品一样,对他们来讲,我是个路人,而对我来讲,两公司的表面文章我十之八九。对于行业内的竞争对手,也很有兴趣了解一下每天都在跟自己公司抢生意的朋友,其后端又是一批什么样的人,周先生可能是对代理产品以及其相关产品不了解,所以只是问了一下他所熟悉的模块或者内容。至于周六加班?态度冷漠?或许这也只是北京研发部在这次才会出现的特例吧,毕竟仅仅一面之交。
总结一下自己:弱点很多,但自己却总被自己优点的光芒蒙蔽。是的,一个人扛起整个产品线的各种测试和重大项目支持以及售后疑难杂症支持,开发过小功能并参与产品的设计,支持过很多重大项目并解决其上线疑难(的确曾有一个项目的唯一竞标对手就是深信服,而且,赢了)。当然我觉得我的这些所谓的优点,都是在同事们的大力配合和支持下,才有的成果,没有他们,我可能就是草包一个。
通过这次面试,我了解到了,自己的不足其实很明显,只不过我之前一直逃避,逃避到了根本不知道自己哪里有不足的地步。自大,狂妄,再加上之前也的确做过许多荒唐的事(贡献),也给他人一种好像很NB的错觉。但其实这浮华的外套里面,只有一个骨瘦如柴的懒虫罢了。
再不好好补充自己的话,可能哪天就真饿死了。
PS:因为毕竟是别人家的办公地点,所以我一张照片都没有拍,以示对其公司的尊重。如果是自己工作的公司的话,估计想拍多少就能拍多少吧。
整个过程毕竟是我的回忆,顺序和部分内容可能记得不准,我记得当时周先生问过我是否有用过思博伦,我记得我当时回答是用过,但后面就记不清了。因为我一直管那玩意叫avalanche。因为毕竟思博伦(spirent)是人家公司的名字啊,虽然你可你说你吃过麦当劳,但是你不能说你用过华为啊,毕竟都是同行不要用这么蹩脚的说法好么?还有一次问发现非法流量怎么处理,我说reset(reject),周问是哪个流量,我说“全部”,周一脸疑惑看了我半天(公司机密都告诉你了你怎么又一脸疑惑)。
另外这篇文章最初的题目并不是这个,只是觉得现在深信服+面试已经成了文章的主体,所以决定更换题目,而关于另一个题目的文章,今后再写。是关于“测试工程师”的。
8 comments
Skip to comment form ↓
萃香西瓜
2014 年 3 月 3 日 在 下午 3:26 (UTC 8) Link to this comment
赞一个,内容记录的很详实,也传达了负责的职业精神,正能量
看后觉得社招面试压力比校招大了N级……
另外面试的确是太看rp了,能对的上电波的话一切都会更顺利
只是这次面试觉得双方都缺乏诚意
从面试官的角度来说的话……
首先提问应该是严格按照职位要求来的,面试中的提问也能与http、tcp/ip、linux、测试用例等要求对应上
另外能问到的我想只有被写到简历上的东西了
校招里面试官除了项目之外还可以考察基础(算法、语言基础、解题思路)
相对地,社招更倾向于招到一个即战力(虽然这个深信服的jd看起来和校招的没区别),会更注重项目
所以这个面试官一上来就问项目详细也不算奇怪的做法
展现自己的能力与适当保护公司机密之间确实有点矛盾,
但是我认为能够把业界通用的构架讲述清楚应该足够应付面试了
最后我想深信服那边的职位和博主现在做的应该是有偏差的……
我不懂软件测试,但我直觉认为最后一个问题应该和功能点的测试用例设置有关,偏场景和代码设计
而博主一直是站在底层的角度回答问题的,觉得挺遗憾
估计面试官听到“功能没有什么实际可测试的地方”的时候会皱眉头吧……?
(俺一外行人士大放厥词,这段说错了就当笑话看吧)
ps我记得深信服的老总就是从测试工程师做起的
pps深圳那边深信服加班强度已赶超华为(据说和公司文化有关),如果北京也是这样的话那周六上班也一点也不奇怪了
ppps博主加油!
石樱灯笼
2014 年 3 月 3 日 在 下午 4:03 (UTC 8) Link to this comment
对于一个登陆界面而言,底层真心没什么可测的地方。因为唯一能做的地方就只有手动执行php login.php这种动作了,根本没什么意义,还不如在界面上测。
另外我是半路出家的,没经历过任何培训,所以一旦碰上专有名词(比如测试框架),我都摸不到头绪,实际工作的时候我只要搞出全面的测试用例,一切都能搞定。
华为是周六正常上班的,不算加班,有高薪水在那扛着。不过我认识的朋友,都已经从华为离职了,太累吃不消。我身体不太好,工作压力大了肯定掉链子,所以我也不会考虑工作压力更大的工作环境。
我现在公司的老总也是做开发起家的,这方面没什么可比的。
张刚
2014 年 3 月 3 日 在 下午 6:35 (UTC 8) Link to this comment
HR周末上班的多,好多人工作日都没空的。
我看了你的过程,其实短板也不多,要是实在心里没底的话,可以用这个博客空间罗列知识结构,补充半路出家的不足。
其实工作就那么回事,多关注产品就行,核心再NB,没人用也是瞎扯,一切都是针对需求。
石樱灯笼
2014 年 3 月 4 日 在 上午 10:16 (UTC 8) Link to this comment
没,我还真没遇到过周末上班的HR,周末上班的都是搬砖的。
洛城东华
2014 年 3 月 7 日 在 上午 10:36 (UTC 8) Link to this comment
前事业单位(现企业)网管路过一下。
整篇文章大部分看不懂,只看到了我们集团从前用的SSH-VPN的牌子,嗯,深信服。
石樱灯笼
2014 年 3 月 9 日 在 下午 1:54 (UTC 8) Link to this comment
很多内容都是专门研究这个领域的人才懂的,根据我的感觉,这个面试官也是不懂的。
上周上班的时候跟几个关系好的同事聊了一下,觉得换工作不能换同行业的,不然的话被当成抹布用完就扔的可能性太高,个人不能得利,还会得罪两个公司。
土木坛子
2014 年 3 月 9 日 在 下午 6:36 (UTC 8) Link to this comment
原来你是干网络这一行的啊。
石樱灯笼
2014 年 3 月 9 日 在 下午 8:11 (UTC 8) Link to this comment
不是