很早就想写写最近的生活。

几个月前自己作了人生中一个重大的抉择,如标题所说,这将会开启一段新的人生旅程。

但是在自己甚至还没有踏出第一步,一切只有想像之前就对外说自己将要怎样怎样,总感觉不太好。

有句动漫梗叫做往自己身上插旗子,意思是在愿望实现之前就说出口,一定会失败的。我也担心自己会半途改变主意,或者会因为外界干预而放弃。

而在迈出第一步之后,又没有那个心思写,那时的心态就像一个失业大半年的中年大叔,看不到前方的路,一边怀疑自己,一边又在祈求上天眷顾。

在这种状态下,怎么好意思说自己心里那些美好的想像呢。

但如今已经算是站稳脚跟,能继续迈第二步了。我想这是个合适的时机写写那些路线,再晚了可能自己就淡忘了细节,再也提不起劲了。

而且我想这是一条少有人走的路,如果能留下一点坐标/指示,可能会对后来人有点作用。

如果你也有类似的想法,正犹豫要不要动身出发,不要害怕,虽说这是条羊肠小道,但绝对走得通的。

我说的是找一份国外的工作。

出国工作的目的,并不是想赚更多钱,而是跑出去,到国外生活。

记不清楚是什么时候因为什么而萌生要出国的想法。

在上大学之前,我还是个爱国青年。

上大学时逐渐发觉原来解释世界的理论并不止一直以来被灌输的那一套。感觉自己被骗了,而且那些骗你的人,他们自己也不相信那一套,只是他们找到了这套体系里自己能接受的位置。

就算是这样,那时我心里还想着绝对不让出这片土地给这些人。

后来出来工作,接受了社会的磨炼,年岁渐长血气渐减,书也读得更多了。越发有种感觉,传统是个很强大的力量,这片土地有它独特的长达两千年的思考、行事逻辑,个人妄想改变它,就跟蚍蜉撼树一样,不自量力只会换来被碾压的结局。

我改变不了别人,更不想改变自己。于是出路在哪里心里就有答案,只有跑路了。想来想去,日本是个合适的目标。

因为刚上大学就很喜欢看动漫和日本电视剧、电影,对日本有好感。

而且在四五年前自学了一点日语,目前大约 N3 到 N2 之间的水平。

(一想起当初没狠下心考证书就有点后悔,如今想要抢一个考试的座位都很难)

还去过两次日本自由行,亲身体验过在东京不用说一句话就能到处跑。如果工作不成问题的话,在大城市自己一个人能活下去。

我对日本真实生活、工作会遇到什么问题,心里也有准备,比如工作方面的加班多、年功序列等等,日常生活中的日本其实也没那么干净、安静等等。

至于怎样跑过去。如果我再年轻几岁,或许会选择去日本读研究生,以学生身份打工、学习日语、适应生活,再以毕业生的身份找工作。可惜啊,年龄不小了,再读书时间成本很大。

不过幸好自己干 IT 这一行,算是日本比较缺的职种,没准就算不会多少日语也能找到工作。

我不喜欢传统的日本公司,IT 算是不那么传统的行业。

综合考虑下来,最终瞄准的目标是在日本讲英语的 IT 公司。

在这个新冠大流行的时代,一个不怎么会日语的中国人、想通过远程的方式找一家在日本的讲英语的 IT 公司。是不是很异想天开的想法?

没错,让我作为第三者评价一下,我也会觉得过于不切实际。

不过推我往前走一步的动力,与其说是对未来美好的愿景,不如说是对现实、自己的不满。

出国这个想法,两年多前就越发清晰,我甚至会忍不住跟周围的同事说这是自己的梦想。但是两年快过去了,感觉一切还是停留在嘴上。

我越来越讨厌看上去只会打嘴炮的自己。我时常提醒自己,梦想就像一只蛋,如果久久不孵化,会发臭。

而真正触发我下决心行动的,是 19 年底爆发的疫情,如果说在此之前我还心存这个国家会变好的一点点希冀的话,在那之后就幻灭了。

一切都没有变。中国这辆车,它能向进开,也能往后退,普通人只是乘客而不是司机,什么都做不了,只能接受。

埋下头享受易脆的小日子。

思前想后,在 2020 年 8 月左右,我给自己订了个目标,一年内实现肉身翻墙。

当然了,一年后的今天我仍然在国内,这个目标算是没达成。

不过订目标的意义在于,有目标就可以将它分解成一个个的小步骤,设定相应的期限,在什么时间点该进行到什么程度心里就有底了。

最初我就觉得,自己面临最大的外部阻力,不是那些远离自己的疫情或者国家政治气候。而是家人。

无论怎样,都要先让家人知情,就算他们不同意,也要留出足够长的时间让他们接受。所以我设定了第一个小目标,在国庆回家的时候就跟家人坦白自己的打算。

那时我什么具体的计划都还没有,只是向他们透露自己未来的打算是移民出去。

我先是跟同辈沟通、再跟父母说。父亲能接受,但是母亲的反应跟我预料的差不多,强烈的反对。我没打算要说服她,对我来说,让她知道这件事将来会发生就已经达成目标了。

在跟家人通气之后,一直到 2021 年 3 月底,没有做其他事情。

那段时间我挺努力用心工作,拿下比较好的绩效,差一点就能升职了。拿好绩效、拿高一点的头衔,并不是想着要在这家公司、乃至在深圳长留,而是希望能把这些写进简历里,好找工作。

不过最终升职失败了,说实话,如果不是升职失败了,说不定我还会犹豫一下要不要在那个全球疫情爆发的节点辞职。

促成裸辞的另一个念头是自己想要釜底抽薪。我没有忘记那个一年内的目标,而半年快过去了,什么实质进展都没有。

提离职之后,上方领导们反应不一。顶头上司很支持我,甚至不是口头上支持,而是帮我联系他在东京的老同学,让他向我介绍那边疫情的情况、现在工作好不好找等等。

而上司的上司就觉得我的想法有实现难度,他想搞清楚我要走是不是因为晋升的问题,或许他能在这方面出力帮帮我。不过我很清楚他只是说说而已,有点后悔自己一瞬间跟他认真起来。

而上司的上司的上司,则花了不少时间解释我为什么没能升职,听下去是因为运气不好,真正原因是什么我已无所谓了。

跟人事离职谈话时,他说听过很多离职的理由,有回家当公务员的、有考研的、有出国读书的、有跳槽的,但是像我这种要出国工作的(而且还是离职后再找)非常少。

是的,我这么疯狂的人跟公司的同事都不在一个频道上。

提离职算是达成又一个小目标。之后要做些什么,那时列了一些项目,因为大目标是找日本的讲英语的 IT 工作,因此:

第一步要练习好英语口语,特别是面试时会用到的英语,比如介绍自己、比如描述代码的思路等等。

第二步是了解外国公司面试时考察的方向是什么,比如是跟中国公司一样考察项目、考察前端知识体系,还是纯看解题能力。

第三步是收集招聘信息,看看都有哪些招聘渠道。

第四步是准备好英文简历,英文简历的格式是什么都要了解一下。

还需要了解一下日本工作签证的要求、日本生活的具体注意事项。

我有预感,大概率在三个月内找不到工作,所以这段时间内怎样保持身心健康,也得考虑一下,比如作息时间、锻炼计划、保持开心要做点什么等等。

甚至还想过要不要考个证书、比如英语方面的托福,或者日语方面的 N2 。有一阵子我有点迷茫,好像有很多事情都应该做,它们都像是必需的,但我没有那么多时间精力。

好在我还记得那个大目标。

由此出发,订下了三个月拿下录用通知书这个小目标,在此基础上往前推一个月,也就是两个月内我就应该开始拿到面试邀请;再往前推一个月,我就应该做准备好面试要回答的问题、投简历。

于是很快我就总结出必须集中精力做的三件事:

  • 面试中会用到的英语口语。通过谷歌,我知道通常外国公司面试时会有一个叫做行为面试的环节,对方会问你很多方面的问题,总结下来,可能会有七八十个问题,这些问题不要说是用英语来回答,就算是由汉语来回答,你不事先准备一下也难回答得好。

  • 外国公司面试程序员很简单、暴力。就是出题,像 leetcode 那种,做出来就能过,做不出来就淘汰。所以要刷足够多的题目,并且要能记住。

  • 准备好英文简历以及收集招聘渠道

练习口语,这个目标可能有点宽泛,就算具体到程序员面试中会用到的表达,也难以想像都会有些什么东西。我也是做了一番搜索和努力才找到点具体可行的东西。

一般外国公司面试时,会问一些行为类问题,这类问题用英语来说叫做 behavioural questions ,只要用 google 一搜 behavioural questions,就能看到很多人总结经验。你能收集很多个(大约 70 个)典型的行为类问题,以及回答的原则甚至回答范例。

我结合自身实际,写下自己的回答,再背下来,定期回顾一下,确保自己就算刚睡醒也能回答出来。

而在编程/工作中可能会用到的表达,我找到一个比较好的办法。就是去翻 Github 上热门的项目的 issues 列表,比如 React 。通常人们会在里面描述他们遇到的问题、尝试过的解决办法,而会有很多人出主意,最终问题解决之后还会有人表达感谢。这跟日常编程工作的场景很像,我把看到的有用的句式、表达抄下来,背熟。

你甚至可以去看项目的 code review 纪录,通常人们也会来回讨论很多方面的问题,也能学到很多英语关于疑问、担心、建议的表达方式。

而编程题,我刷 leetcode ,先按类型刷,比如数组、字符串、哈希表、堆栈、队列、链表、树、搜索、排序、回溯、贪心、动态规划。再按难度(从简单到困难)刷,一共刷了大约 160 题。

这 160 题里面,我能单独解决的可能不到 10 题,不过不用担心自己不会、继而怀疑这样做的意义。我相信这就跟读书考试一样,一个人只要智商正常、按照适合自己的方式学习,总会有很大收获的。

理由嘛,我是这样想的:

  1. 大前提是面试题一般不会出竞赛级别的难度,
  2. 而且题目一眼能看出大约会用到什么技巧,也就是可以从分类入手,
  3. 只要各个分类的题目做多了,总会见过类似的题目。

当然了,现在 leetcode 少说也有 2000 道题,只做了不到 10% 有点不太足够。

在面试时要是真没有思路,可以先用暴力解法、先解出来,再分析复杂度,然后再思考更好的解决,再不济也要向面试官讨点思路。

提到刷题,可能有人会有跟我一样的想法:明明这道题我做过,大体思路我也知道,但就是通过不了。

或是明明有印象做过但是记不起来大体思路了;或是知道大体思路,就是忘记了一些技巧;甚至代码都写出来了,就是跑不过测试用例,也不知道在哪里出问题。

你以为自己会了,但是实际动手写一遍,就在某处卡壳了。

今天会了,明天、后天就忘记了。

种种现象都表明复习刷过的题也很重要。

有思路、能写出代码、成功过关当然是最好的,没有思路、看了答案,记得要再默写一遍。

只默写一遍还不够,因为会忘,要定期复习。

具体方式可以参考背单词软件的思路,初期复习得频繁一点,如果都能写出正确的代码,复习的间隔就拉大一点,否则就重置复习间隔。

当我觉得为面试做准备做得差不多之后,就要为自己争取面试机会了。

首先要准备的是英文简历,跟中国的情况有所不同,外国还会要求附上求职信。

求职信的要点:

  • 首先要表明你符合公司要求且有相关能力、有信心胜任这个岗位
  • 列举几点与公司文化符合的特性、技能
  • 附上简历以及随时都可以联系的 email 地址
  • 表达感谢并期望有后续联系

接下来是收集各大招聘渠道,海投简历了。

招聘渠道有很多,比如平台: indeed/linkedin/stackoverflow ,国内也有一些远程工作平台,提供付费撮合劳资双方的服务,比如电鸭;也有一些邮件列表;你还可以关注一些自己专业内的 IM 群。

至于简历,最好有一份基础版本的简历,根据目标公司的具体要求,稍微修改一下再发出去。

海投简历很容易会忘了自己曾经投过哪家公司,为此可以用一个表格记录自己用什么简历投过什么公司、目前的进度是怎样了(被拒绝、约了面试、拿到录取)。

从你投简历到收到面试邀请之间会有一段时间,在此期间除了每天查看邮箱(特别要注意垃圾箱)之外,我觉得最好能找个外国人一起来一场模拟面试。只要用 developer mock interview 这个关键词去谷歌搜一下,就能找到好几个这样的网站,有付费的附加服务,也有免费的基础服务。

基础服务是两个将要参加真实面试的人轮流充当面试官面试对方。因为你的主要目的就是练习一下用英语向对方解释自己的解题思路,我觉得基础服务就够了。

在模拟面试中,能接触到来自全世界不同地方的人。只要在真正面试前多试几次,你就不用担心自己听不懂各种奇怪的口音了。

上面提到要每天查收一下邮箱,尤其注意一下垃圾箱。因为来自小公司的邮件,很容易会被 hotmail / gmail 认为是垃圾邮件过滤到垃圾箱里,我差点就因此丢掉两个面试机会。

说起面试,因为疫情关系,用 zoom 远程开会、面试的公司变得很多。

zoom 的免费服务在国内使用有限制,体现在不能在国内发起视频会议,但是除此之外并没有其他特别限制,比如你不需要翻墙就可以加入别人的会议,效果还不错的。

因为免费的 zoom 会议有 40 分钟时长的限制,可能有一些公司会选择用 google meeting ,在国内用 google meeting 毫无疑问是需要翻墙的,最好准备梯子。

最后,外国公司招聘节奏比较慢,从第一轮到最终给你录用通知,可能要花上一个月时间。

经过差不多三个月的努力,以及不少的运气,我最终拿到一家公司的录用。

战绩大约是,大半个月时间里投了 8 家公司,有一半的公司没理我,有两家第一轮出局,有两家到了最后一轮(纯粹就是跟老板闲聊),拿了其中一家的录用。

我入职的是一家在日本的做跨境生意的小公司,正社员的身份,但是因为疫情和办理工作签证需要很长一段时间,所以在动身去日本之前,会以 freelancer 的身份工作。

开发有 10 个人,分别来自好几个国家,开发的日常工作交流、开会用英语,跟其他部门的同事开会用日语。

目前开发都是远程工作,可能疫情过后也会是远程工作。技术栈是 AWS + salesforce + react ,整间公司的服务搭在 AWS 跟 salesforce 两大服务提供商上面,在加入这家公司之前,我从来没有想过公司的 IT 还能以这种方式运作。

我接触过的跟 IT 有点关系的公司,都在用开源工具加上自己的主机搭建自己的服务。

同事之间的关系比较简单,可能是因为远程工作的原因,听上级说,他跟另一个入职已经一年半的同事在线下只见过两次面。

公司里有大约十分之一是华人,而且上面提到的那个一年只跟上级见两次的同事也是中国人。

公司跟一般印象(日本 IT 守旧、水平低下,日本人工作狂、等级森严)不一样。

我上级是个日本人,但我觉得他技术不错,还组建一个讲英语的技术团队,这点很有创新的魄力。

在公司的 slack 群里,很少人(通常只有十分之一的人)会搭理 CEO 发的消息,搭理他的方式通常就是点个表情;在周末,除了 CEO 这个工作狂,没人会在线。

远程工作刚好也有两个月了,可能是自己的性格比较内向,喜欢独处,所以一点都感觉不到孤独。工作日每天都会开个 zoom 早会,能说上几句话,感觉说话量刚好,不至于连怎么说话都忘了。

工作内容有简单的,也有难的,除了 react ,其他东西之前都没有接触过,比如 Apex 这门类似 java 的语言。

公司的业务不大不小,有些功能涉及到整条业务流程,不了解清楚就容易出问题。而且开发人少,没有专职的测试人员,基本要自己开发、测试(部署的话由 circle-ci pineline 处理)。

公司也比较透明,比如会每个月开个不到 20 分钟的会公布一下业绩,跟预期的差距以及接下来一个朋的工作大方向和目标等等。

总的来说,这家公司有点意思,能学到不少东西(技术、语言、商业逻辑)。

站在当下的立足点,回头看走过来的路、当初自己订跑路目标和实现方式时,都觉得很大胆,不切实际。

但走过来才知道,很多看似不可能的事,也没多大难度。它的困难就在于迈出第一步。

坚持走下去,可能接下来会遇到很多跟预想不一样的事,有新的发现,或是走了岔路。

但就跟爬一座很高的山一样,只要时不时抬头看看山顶,再埋头朝它走路,总会到达目的地。

现在我还没正式跑出去,如果一切顺利,今年年底应该能成。到时候再写一篇吧。