程序猿求职在墨村

2016年10月11日 近处的墨村



这篇文章也是自己想写很久的,记录了去年刚来墨尔本的求职过程,希望对想要登陆的朋友有些帮助。


We are who we choose to be.

  -- Green Goblin, From Spider-Man


在一座城市里待的时间久了,难免会被平静的生活麻痹。当收拾好行囊决定启程去地球另一端的陌生城市,踏出自己的舒适区的时候,我想大多数人会同我一样,心中惴惴,充满对未来的疑问和恐惧。反而我家黄某人和🍍(我家娃儿)坦然地很,嗯,我很羡慕。

 

时间返回到2015年的5月,刚刚踏上澳洲大陆的我们,在把登陆7件事处理好之后,我就投入到找工作的大军中。

 

在登陆之前,我已经有研究seek(seek.com.au,澳洲最大的求职网站)上的相关职位,给自己定的方向是高级程序员。当时还觉得自己已经屈尊了,咱在国内做manager也有些年头了,高级程序员已经算是放下身段了。

 

事实证明,这还是对现实缺乏清醒的认识。因为当时虽然觉得自己的英语没那么好,但是应该还是能够跟别人有效沟通吧。完全想不到的是,自己会在group chating的时候,只能用微笑和喝水来掩饰自己完全听不懂的尴尬。曾经引以为傲的沟通技能和管理技能在这里直接回归为零。


再说找工作之前的准备,首先自然是简历。要感谢我之前的老板Willie,正因为跟他一起工作,这么多年一直坚持写代码,作为具有9年以上经验的程序猿,又有招聘的经验,咱写出来的简历内容详实质量也算不错。

 

澳洲这边的找工作的一大特色是绝大多数工作都是猎头贴出来的。所以投出简历之后,联系我的三个都是猎头。

 

说起来,几个猎头对我的帮助都很大。第一个猎头给我打电话联系约见的时候,我还以为是正式的面试,好好的准备了几天。实际上她主要问了一些基本情况,包括背景,项目经验之类。然后告诉我推荐职位的相关信息。之后因为我投的职位是高级程序员,所以她建议我不要使用Manager的职位,最好能够保证职位的连续性,并且更多的体现实际编码工作。于是我后来的简历就改成Lead Java Developer

 

这次修改之后,我就有了基准版本的简历,另外还有基准的cover letter。当然了在申请不同的职位时,不建议使用同一个版本的简历和cover letter,我基本上都对针对职位需求,做一些有针对性的修改,所以实际上发出去的简历和cover letter大概有十几个版本。

 

除去简历的准备,还需要准备的自然是Hard Skills。有很多东西需要记忆的,不过我打赌你猜不到我从哪里开始。不,不是任何软件理论~~~~hiahiahiahia,我背诵了键盘上所有标点的英文名称!!!对于程序猿来说,要准备的基础知识其实跟国内面试差不多,这里我就懒得说了。


在第一个猎头帮我安排雇主面试的时候,第二个猎头发了一套在线的测试。其实这种在线测试的题库都是猎头公司自己的。我最后的成绩89%,算是通过了,然后这个猎头发给我一个code challenge,就是根据雇主给出的题目写代码。现在有很多公司都会采用这种方式,如果代码写的很难看,可以直接节省了面试时间。不过做这种题目,通常会over-engineering,因为作为求职者,你得炫技啊。此处给出炫技必备大杀器:

  • 版本控制技能,github是首选,而且每一次commit要有章法,comment要清晰(通过commit来体现解决问题的思路和良好的习惯)

  • 遵循coding standard

  • 测试覆盖率到100%,最好使用TDD(测试驱动)

  • README要包含问题的介绍,设计思路,还有怎么运行你的程序(这部分是用来体现你的沟通能力)

  • 为了方便运行,简单的shell脚本会很有帮助(体现考虑生产环境的部署和运行)

  • 就算炫技也要有节制,设计模式是必须要使用的,但是不要用Singleton

  • 如果可能,考虑数据量很大的情况

 

雇主面试之前,第一个猎头又约我做了一些准备,还特别发邮件给我,列了一些他们可能问到的问题。我做了一些准备,奈何还是没准备好。面试的时候,第一个问题就懵逼了,尽管这个问题真的在那个list上。问题是——说说你对写程序的passion。。。。。这个,那个,到现在我觉得我也没有很好的答案。半个多小时的面试,所有开放性的问题我没回答好。连最牛的项目,最难的bug这样自己做面试官会问别人的问题都回答的不好。结果可想而知。


失败当然不可怕,回家之后,把失误之处重新总结。与此同时,Code Challenge收到不错的反馈,这个雇主也约定好面试时间。这次我从猎头那里拿到一个behavior interview的文档,里面有超过50个问题。吸取了之前面试失败的教训,我把每个问题都好好的做了准备,终于迎来第二次面试。


这次面试持续了一个半小时,整体效果理想,大部分问题都回答的比较到位,个别问题虽然当时没有想到答案,但是也有给出相对清晰的思路。面试结束后跟中介沟通,因为这家雇主是我比较心仪的,所以如果雇主给offer,我就不会面试中介的其他机会。那天是星期五,面试之后走在墨尔本的CBD,经过洒满阳光的联邦广场,看着悠闲地喝着咖啡的人们和不怕人的海鸥们,心里不由得一阵温暖,突然感觉这个城市开始接纳自己。


过了个愉快的周末,没想到周一就收到了雇主的反馈,提供了以前在北京的两个同事做reference check,他俩把我夸得天花乱坠,周二就收到了口头offer。


眼看一切就要成定局了,没想到第三个猎头的出现打乱了我的计划。她听说我拿到了offer,还是强烈要求约见我。我同意考虑她的机会,有两个原因,第一,REA Group有墨尔本最好的Agile工作环境,而且用的是Spotify模式;第二,我想尝试不一样的面试流程(第一轮结对编程,第二轮技术面试,第三轮culture interview)。其实REA也是有code challenge的,不过这个猎头太拼了,直接让我提交了上一个code challenge,就约面试了。


好吧,最终结果我想你也已经知道了,我现在在REA Group。


想起来在论坛上看到别人说的一句调侃的话,说墨尔本最好的软件公司包括卖房子的(realestate.com.au,我们公司名下的网站),找工作的(seek.com.au) 和卖车的(carsales.com.au)。 其实我得说,还有几家可以上榜的,包括MYOB 、(挖了我们好多同事),ACONEX (我有好多同事从这里来) 和Thoughtworks(如果你不介意是外包公司的话)。银行怎么样我也不知道的说,当时投了NAB,过了一个月我都开始上班了,才来电话面试,直接被我拒了。


这些猎头不仅仅帮助我准备自己的面试,还给我提供了很多可以用的方法来帮助自己的朋友们。我最得意的不是帮助过跟我同行的程序猿,我有一个做Child Care的朋友,我也为她找到permenant工作提供了不小的帮助。所以,如果有人想咨询相关的问题,欢迎留言~~~~


没有程序的饭局不是一篇好文章,对吧,所以就用一个程序来提升这篇文章的品味吧。


class Fish; def 🔪; puts '🍣'; end; def 🍴; puts '🍱'; end; end

class Chicken; def 🔪; puts '🍗'; end; def 🍴; puts '🍛'; end; end

class Vegitable; def 🔪; puts '🍠'; end; def 🍴; puts '🍲'; end; end

class Cake; def 🔪; puts '🍰'; end; def 🍴; puts '🍰'; end; end

class Waitress; def 🍴(📝) 📝.each { |🍵| 🍵.🍴 }; end; end


🐟 = Fish.new

🐔 = Chicken.new

🍆 = Vegitable.new

🎂 = Cake.new

👯 = Waitress.new


puts '点菜'

📝 = [🐟, 🐔, 🍆, 🎂]

puts '准备'

🐟.🔪;🐔.🔪; 🍆.🔪; 🎂.🔪

puts '上菜'

👯.🍴(📝)


嗯,这真的是一段可以运行的Ruby程序。想知道结果不?那就来有世界上最好喝的咖啡的墨尔本来请我喝一杯吧。




封面图片来源: http://strawberryseed.com.au/find-your-dream-job/

Spotify模式:https://labs.spotify.com/2014/03/27/spotify-engineering-culture-part-1/



广告时间


广告位继续留给可以为各位提供申请美国大学服务的低调务实的宝马姐姐的公众号,宝马姐姐的女儿Winnie今年被哈佛录取了,还收到了n个学校的offer!!!



那啥,我自己的也来一个吧,有事没事关注一个吧。。。


收藏 已赞