星期四是约定去面试的日子,二面了,觉得还是有希望的,对方是台湾的一家公司,从网页上看,还算是跨国公司,规模也算比较大,做呼叫中心的。
下了公交车,到写字楼虽然有二百多米,却是寸步难行,风刮的伞都打不开,雨水顺着裤腿全都灌到皮鞋里,整个裤子下半部分全都湿了。
总算没有迟到,本人的时间观念很重,到了对方的公司里,一个负责技术的接待了我,因为一面已经谈过了,彼此寒暄了几下,他拿出两页纸给我让我做,我一看,是一个业务单据的审批处理,流程还是相对复杂的,有跳转、退回、收回、分流、同步等操作。让我做DB模型和应用模块设计。
我心里想我是来应聘PM的,让我做程序甚至,与PM一点关系也没有,至少要有几道项目管理的问答题作一个陪衬吧,虽然很疑惑,但也没有问,他说不限定时间,计算机上装的是eclipse,写好了叫他,就走了。
我对工作流,以前做过几个项目,还算熟悉,我就努力的让自己的大脑兴奋起来,花了将近两个半小时,把工作流引擎的全套接口,包括供业务层扩展回调接口,如触发器、验证器、脚本扩展接口等,全部写出来,同时写了一个XML配置文件来配置考题上的各种流程流转,并用Webwork写了一个Action和单据实体作为Demo来演示整套接口的调用。
由于快下班了,那个破计算机鼠标一点也不灵敏,也没有装五笔,我就没有太多的注释,太累了,就直接叫考官进来了。
面试考官来了以后,故做认真的看了看,并让我讲了讲整个思路,讲完后,突然问我,你能不能不用工作流的思路,来写这个案例,我说那很简单,如果不用工作流,流程数据就要保存在业务层中或与业务层紧密的耦合在一起,流程的跳转就要写死,但这样做很难去适应业务流程的变化与功能扩展需求。如果不想写死,就得走可配置的道路,同样也必然回归到工作流思想上。
他反问我,但那样做,是不是更快一点,性能上要好点呢,我说,工作流引擎的开发上可能会花点时间,但如果一旦开发完成或者采用第三方包的话,那么业务层的开发将会非常的快,通过简单的配置和表单定义及描述层的开发,就会很快的完成工作。
他却说你这套代码写的很好,但如果技术水平不高的程序员,他们没有工作流思想, 看到我写的这些代码,会看不懂。而如果使用常规的做法,不使用工作流,那些人就能很快的接受并能很快实现这个需求。
我当时很恼火,但仍然耐着性子说,如果从单纯从实现速度上,确实要很快,但后面维护的代价是很沉重的,而我基于工作流的设计,根本不需要他们看懂,工作流引擎对于他们就是一个黑匣子,完全通过灵活的配置和接口调用来完成工作,为什么一定要看内部的代码实现呢,再说即使没有工作流思想,通过简单的培训,相信也可以使用的。我心里想,为什么要招这么蠢的程序员呢?
但他仍然很固执的说服我,我也不想再纠缠下去,就同意了他的看法,心里已打定注意了。谁知那个SB竟然对我说,你回去后,按我刚才的说法再完整的写一份的设计发给我,我听了这句话,心里真有点怀疑,他是不是在诈骗,让我免费替他写程序。
我口头答应下来,然后头也不回的走了,由于走的快,鞋子里的水与脚摩擦,发出噗嗤噗嗤的声音,很是狼狈,前台小姐捂着嘴偷笑。
闷了4个小时,出了写字楼,有点头晕目眩的感觉,心情很不好。自己每天不断的学习,不断的鼓励自己要踏实上进,回报却是这么的不公平。
我这一生经历过的比较厌恶的面试经历:
1、给一张破纸,让写一个算法,草纸都没有(就像让人蹲在光滑干洁的地板上拉屎一样,巨痛苦)
2、让写足足有四张的个人信息登记表,里面还要写家庭关系。就像唐僧问山妖,你妈贵姓?
3、排队面试,在会议室里,等了有40多分钟
4、做SUN公司Java程序员认证的考题,里面还有SWING,AWT,Applet之类的题目
5、与一个考官讨论接口与抽象类的差别,争论了一个下午,巨傻
6、每次都被问为什么离职
7、进度控制和需求分析,都是很有挑战性的,但问的多了,也就想吐了。
8、做名词解释题,SCM,TDD,XP,这些都见过,还好说,竟然有SWOT,有点过份,也算说的过去,还有一些至今都GOOGLE不到的缩写,因为不会,现在都忘记了。不明白人为什么要耍酷,装什么装,谁不知道谁呀。
9、经过三面、四面后,音讯全无
这几天太累了,不想再出去找工作了,努力让自己的心态平稳下来,时间是最宝贵的,不能再东奔西跑的了,以后再有面试的邀请,不再刻意的去准备了,爱咋咋地,同时一定要讲明:
不再盲目的屁颠屁颠的去面试了,要求对方先有同技术负责人的一个电话面试,在电话中讲明自己的缺点或者弱点及长处,如对方说要熟悉JMS,而自己就没有做JMS的项目,但对于底层的TCPIP协议通信,还是很了解的,SOCKET通信更是不在话下,相信对于JMS,应当很容易掌握。