2018找工作纪实(2)
by 林溪|D-Horse
现在在从慕尼黑回家的ICE火车上写日志,回首这两个星期的经历和收获。
复活节刚过,4月3号星期二晚上7点多我正在家做饭,手机突然响了,上面显示来电地址是汉堡,我就猜到对方是我之前申请的汉堡的那家公司的HR. 果然,对方表示对我的简历很感兴趣,并邀请我第二天进行电话面试。挂断电话后,我激动地马上就微信打给我女朋友,因为这不是中介的电话,而是直接来自HR的电话,让我感觉份量更重(一般中介收到简历后按照流程大多数情况都会安排电话面试,而公司的HR部门会进行第一轮筛选后再安排面试)。
虽然我的两个程序员同事都还在休复活节假期,办公室里就我一个人,但为了防止隔壁同事不小心偷听,我还是躲到了公司二层健身房的一个小隔间里去进行电话面试。面试双方就是我和昨天跟我联系的HR. HR没有问专业问题,只是问“为什么到德国来读书”、“为什么Master读了这么长时间”、“为什么工作了没几个月就想跳槽”之类的问题,我也给出了(应该能)让对方满意的回答,诸如“小时候来过几次德国,对德国印象好,所以一直想来德国读书”、“一开始德语不好,要学德语,因为转专业,要补学生物和化学”、“一直想找生物信息学方面的工作,但人生存需要钱,我需要挣钱支撑我的生活,同时积攒经验”。电话面试结束后,对方表示还需要IT和生信两个部门专业员工的审核,如果通过就会安排现场面试。这场电话面试刚结束,马上又接到了第二个电话面试,是来自慕尼黑的一个中介,就是之前我提到的中介收到简历后会进行的例行问询,主要是要我对自己所掌握的技术进行评级,同时也问到为什么刚干了几个月就想跳槽。。结束电话面试从隔间出来的时候刚好碰到有同事上来去隔壁隔间取东西,希望她没听到我是在进行面试。。
汉堡的HR原本说第二天会给我答复。第二天我机不离手,晚上做饭还不时地关注下手机,期待它会响,结果一天下来啥事没有,我就知道自己没戏了。很失落。因为这家公式是做医疗数据的,我最近看了几篇文章,对个人基因组隐私保护方面的协议和算法都比较感兴趣,还等着现场面试的时候说呢。第二个星期,也就是这周的星期一晚上我就接到了HR的电话。当时我刚巧没在手机旁边,HR在语音信箱里留了言,表示我没通过他们公司专业部门的审核,认为我缺乏经验,但希望我能让他们保留简历,也许以后会再考虑。
之后我就有点儿打退堂鼓了。一是我刚干了几个月,又不是在正经的IT公司,确实谈不上有经验,二是接电话面试跟做贼似的,感觉有点儿心虚,三是对现在的公司还是有点儿愧疚之情,毕竟我刚转正而项目刚开始进行,如果我这个时候提出离职,公司的代价可能有点儿大。但紧接着我又收到了来自亚琛的一家公司的电话面试邀请和一家慕尼黑公司的面试邀请。收到慕尼黑面试邀请时我其实并不开心,甚至还在找逃避的理由。我问他们其实是电话面试吧(如果是电话面试就不用太认真了),结果对方说是现场面试。我又问你们不给报销车费吧(如果不报销我就不去了),结果对方说报,当然报。只能去了。随后我先是骗公司说我周四上午要在家等DHL的上门取件服务(实际是在家进行电话面试),然后又请了周五的一天假。
周二中午,慕尼黑公司要求我寄实习证明和成绩单。我没有实习证明,然后把我稀烂的成绩单寄过去了。我当时还想,如果对方发现我学习这么渣,就会取消我的面试了吧,然后我就正好不用去了。。
然后就是周二那天夜里,窗外下着大雨,我睡觉梦见自己置身于一个正在下大雨的长满荒草的操场上。我梦见了爷爷奶奶。他们正冒着雨清扫着荒草地上坑坑洼洼的水坑,而我则躲在操场旁一个砖墙房子里。雨似乎下的小了,爷爷奶奶骑自行车走了,招手叫我一起走,而我看着坑坑洼洼的水坑踌躇不前,想等雨再小些甚至停了再走,但雨却又越下越大了。。我当然不信托梦这种鬼话,但我知道我的潜意识里,爷爷奶奶如果还在世,也会鼓励我勇敢地去面试去实现自己的梦想吧。
周三等了一天,慕尼黑那边没有任何回音,我就只好去买了火车票。为了不耽误时间,我买了通宵的火车,周五一早到慕尼黑,面完试,下午回家。
周四上午呆在家里面试。先是HR的例行询问,然后技术主管提问,然后就暴露了我学渣的本质。比如问到如何提高数据库查询速度,这正好是我之前工作中遇到的问题,就回答说用index,好回答对了,又问原理是什么呢,我就不知道了。。然后听说我毕设用到spring框架,然后问我bean的注入是如何实现的,我又不知道了。。然后问到Java的泛型,而我根本就没用过泛型。。然后周四上班的间隙我就在查index背后的实现原理B+树的资料,然后又查了下spring框架的用例。
周四晚上9点多上火车,12点多在法兰克福转车去慕尼黑。原本想着应该没多少人坐通宵火车吧,结果我竟然差点没找到空座。凌晨四点多到斯图加特后下了不少人,车厢才空下来。德国没有卧铺火车,我缩在椅子上又冷又困,刚要睡着就被列车员叫醒查票,然后跟我说这趟火车会晚点一个小时,我可以申请德国铁路25%的赔款,说完笑着递给正处于懵比状态的我一张单子。。
周五早上7点到了慕尼黑。火车站里熙熙攘攘,年轻人都健步如飞,此情此景让我不自觉地心跳加速,有一种无形的压力和被push的感觉。感觉自己在小城镇待久了,都快有老龄化倾向了,快适应不了大城市的节奏。到火车站买了一杯热咖啡和两个牛角包。喝着暖暖的咖啡,我才感觉自己恢复点儿人形。
巧合的是这次面试的公司的位置,就在我去年几乎同一时间面试的公司的街对面。高管出来接待我时也表示和那家公司有合作。事实上我去年也给这家公司发过自荐信,但此后并无消息。高管表示查了我去年寄的简历,只是当时确实没有空闲职位,所以并未考虑。
面试先是高管介绍公司和所做项目的情况,随后叫来两个主程来给我出题面试,结果,我又毁在基础知识和java的泛型上了。。去年的面试可没有面过这些啊。。(印象只有一次电话面试问到泛型,今年目前为止就被问了两次)。还有UML,我记得本科时java课好像讲过?现在全忘了。看两个主程的表情,我这次面试肯定是砸了。最后他们表示没什么可问的了,草草结束。然后就到了现在返程的火车上。
这两星期看似闹剧的面试,让我清醒地看清了自己的差距。想想自己,从本科开始,就一向以能解决问题而非理解解决问题背后的原理为目标,满足和麻痹于虚幻的解决问题后的成就感里。硕士阶段,口试的时候我还大言不惭地跟教授说“我会用这个公式就行了”,而教授甩回我两句“大学是培养科学家的地方”和“数学很重要”。但我还是我行我素。现在终于栽了。不是没有机会,是我没有抓住。Java的泛型只是个个例,如果问到别的技术细节,我想我也可能一样回答不出来。以前我一直认为这种追求细枝末节的行为都是“小学而大遗”,任何东西都是只要会用就行了,但现在看来可能是我错了。我现在最怕的是自己将来变得“高不成,低不就”。没错,泛型可以学,UML可以学,面试里被问到的任何问题其实都可以在短时间内掌握,但我想它更多地是反映了面试者的知识体系和学习经历。一个好的程序员,确实不应该成为api caller…
未来两三个月打算先不投简历了,先把Java的理论知识补一补吧。。
我还是觉得上网查一下立刻就能知道的东西没必要刻意去记,也不应该要求别人刻意去记。这两家公司的面试题太刁难人了,又不是入学考试,要进去做学问什么的,工作中用到这个知识点时只是知道定义和完全不知道定义的人也只差5分钟的google而已。
除非是要让java成为自己的绝对主力,否则学到那么细节,等更新换代时损失是巨大的。
吾生也有涯,而知也无涯。细节再有趣也要有节制的。对程序员来说更是如此,花在学习某门特定技术上的时间对我们来说都是一笔投资,要的是相对应的产出。除了TCP/IP之类几十年不会换代的底层技术之外,上层语言类知识都有他的保质期。这两家公司想找在java上进行了大笔投资,把自己的未来绑定在这门语言上的人,你并没有做这个人生抉择,两边需求供给不对等就算了,完全没有谁高谁低的说法。我就觉得程序员博学多识好,细节上了解抽象概念,具体语法用到了再查,这样可以掌握巨大的广度和对任意语言中同类概念的应对能力,谁爱批评谁批评去,哼。
回来后我想,如果当时面试的时候如果问“能不能用手机查一下Google”会怎样(嗯应该不行的吧…不过下次有机会可以试试)。我从本科时培养出来的思维就是工程导向型,包括Master阶段,用什么语言和技术完全取决于功能和导师的偏向性,而平时专业课更专注于数学和算法,像“泛类”这种东西确实是在课堂上学不到(不过不知道德国本科计算机专业会不会教)。我现在找生物信息学方面的职位也确实只找Java相关的(只对自己Java有自信,而且目前在公司的职位也是Java程序员),只是自己对Java程序员的定位似乎有偏差,有点儿太低了。也好,通过这两次面试,管中窥豹了解德国真正的IT界对程序员的要求。感觉自己不管未来能不能进入生物信息学领域,至少未来五年都得靠Java吃饭了,之后一两个月还是要恶补Java基础。
我看了一下Java泛型的概念和我写过的代码,我发现我其实用过泛型,比如HashMap< String, ArrayList< String>> hmResult = new HashMap< String, ArrayList< String>>(), Vector< HashMap< String, Integer>> vResult = new Vector< HashMap< String, Integer>>(),只是我不知道这就是泛型…写了多少年,以为就是寻常的变量初始化,不知道还有个高贵的名字叫泛型.
就是那个东西,C++里面叫模版,好像和可以叫泛型。
未来五年主要用java的话,就值得深入学一下了。java客户端程序我倒是会写,不过java做网站之类服务器端程序要用很多框架,要弄懂的话你得做几个业余项目了。其实java还有一个好处是可以无痛转型android程序员,也算是一个备选项。这么一看,投资java蛮值的嘛!
更~新!更~新!
更新!更TM的!
路过看了一下你俩对话笑喷,你可以不熟悉泛型工程上怎么用,但连这个概念和基本常识都没有,你的水平其实就是国内北大青鸟培训班一个程度。德国本科当然会学泛型,但这些都是基础东西和概念,深入能深入太多了。面试真问你点深入的你们不是更完蛋。更别说白板写代码了,美国所有找公司标配,德国很多大公司也是如此,不过考的很容易,leetcode刷题去看看,你还抱怨哪个难?面试问你最基本的反转list你做的出来吗?去面试国内,问你的是高并发相关如何加锁Volatile关键词什么意思spring底层实现原理,你答得上来吗?真以为找正八经的软件工程师是培训班出来的要求啊。