伯乐访谈之程序员在国外:丁晔 – Perl开发者在日本
这篇访谈的主人公是在日本工作的 Perl 程序员:丁晔。
(丁晔)
认识丁晔需要从他翻译投稿到伯乐在线的这篇文章《关于 Git 的主要维护者滨野纯的访谈》说起。丁晔选的这篇文章和译文质量,让人印象深刻。正好近期开始了伯乐访谈之程序员在国外系列,和丁晔聊了他在日本的一些情况,其中有很多内容值得通过这个系列分享给大家,也就有了这次访谈。
丁晔的联系信息如下:
微博:http://weibo.com/u/2883362135
GitHub:https://github.com/dyng
以下是采访的全文。文中涉及的金额单位都是日元。2014 年 1 月 2 日,1 人民币 = 17.4065 日元。
伯乐在线:请先介绍一下自己吧。
我是研究生毕业以后来日本工作的,供职于一家名叫 Kayac 的互联网公司。目前是工作签证,还没有移民。日本入籍的话需要 5 年,永住的话需要 10 年。
我的老家在杭州,本科和硕士也是在杭州读的,一直都是数学专业,不过研究生毕业的时候选择了转行当程序员,现在做的主要是服务器端的开发工作。毕业到现在差不多已经一年半了吧。这是我们公司官网上我的社员介绍。
伯乐在线:你们公司的员工介绍很有意思,还带漫画
哈哈。漫画式风格一直是我们公司的品牌啊。
伯乐在线:从数学为什么转做开发了?
其实关于这点当初也犹豫了很久。因为数学专业没有特别对口的工作,所以除了继续深造,出国留学的同学以外,工作时最多的两个方向就是金融和计算 机。我个人不是非常喜欢金融,总觉得金融没有创造真正的价值(当然这有点个人偏见),相比而言写程序的话更像是实业,如果能够写出大家都喜欢用的软件的 话,那我觉得也是一件很值得自豪的事。而且一直以来对计算机也算是比较感兴趣的,虽然据说 80% 的人做的都是自己不感兴趣的工作,但在可能的情况下我还是希望选择自己的兴趣作为工作。
伯乐在线:你在本科或者研究生阶段就已经在学计算机开发相关的东西吧?
嗯,本科时候选修了汇编语言和 C++ 程序设计,研究生时候的方向也是计算数学,算是和计算机有点关系。不过现在想来,其实那时候下的决心还是不够,如果那时候真正决定今后就以写程序为工作的 话,应该补一些更多的计算机知识,多参加一点相关的社团才对。回想起来还是有点后悔的。
伯乐在线:在校期间自己做过一下计算机应用吗?
好像除了计算机课的大程以外就几乎没有了……其实我是临到毕业的时候才开始恶补计算机的基础知识。
伯乐在线:能不能具体介绍一下当时选择去日本的初衷?
其实说来也很单纯,只是喜欢日本而已。因为从小就是玩主机游戏长大的,大学时自学了日语,大四又考过了一级,毕业找工作的时候才发现没什么可以 拿来找工作的技能(笑),既然好不容易自学了日语,只拿来玩游戏总觉得有点可惜,考虑到日语能力在应聘日企的时候应该能够派上点用场,于是后来找工作的时 候就主要投的是日企。当然其实还有个原因,因为我出生在杭州,长大在杭州,大学也是在杭州念的,上了研究生以后总觉得一直待在一个城市未免太“宅”了,于 是特别想出去看看。
伯乐在线:大四通过日语 1 级挺不容易。能简单分享一下你学习日语的过程吗?
还好还好,其实我认识的同学中自学过 1 级的很多的:)自学日语主要是在大二,那时候每天早上都起来看一小时的《标准日本语》,一个学期把初级看完了。接着又渐渐地开始看日语专业的教材《新编日 语》,看完了 2 和 3 两册,期间又报名考了一次 2 级。我觉得语言学习主要还是学以致用,如果平时一直在看那种语言的材料(我的话其实就是玩玩游戏了),再配合教材的话,进步是很快的。上面说的自学过 1 级的那些同学,大部分或者是喜欢看动画,或者是和我一样的玩家,又或者是日剧迷,或多或少都会喜欢日本的一种文化。
伯乐在线:去日本工作,对日语的要求有多高?
主要和公司有关吧,如果去 Google 或者 Amazon 那些外资企业的话,只会英语也可以。但如果是日本本土的企业的话,工作语言肯定是日语,最好能有 N2(日语 2 级)左右的水平,这样差不多能够基本无障碍地交流。特别是日本人的英语普遍一般,有时候让他们说英语说不定还不如让他们写下来对照着日语里的汉字猜更快 (笑)不过我们公司也有一位墨西哥人,因为初来日语还不是太好,所以工作上主要是由英语比较好的日本人和他交流。总的来说对⽇语没有特别硬性的要求,但是 ⽇语好的话会工作、生活得比较舒适,而且日语好说明你对日本文化了解得也多,那相对容易地适应环境。
伯乐在线:你是从哪种途径去了日本工作?
我是通过一个名叫 AHRP 的项目来日本工作的。这是一个针对应届生的项目,录取以后即赴日本工作。过去几年一直都只在北京地区举行,我是请了在北京的同学代我投了简历,后来因为面 试只在北京进行所以本来准备放弃了,但正好那一年在上海也有一场面试,于是我就去了,最后录取了,可以说比较幸运吧。和 AHRP 类似的还有一个叫启程日本的项目,是日本最大的人力公司 Recruit 举行的,这个在北京和南方的主要高校都有宣讲会和面试,当年我也去了,不过落选了(笑)
伯乐在线:这类的项目一般考核哪些方面?或者说面试涉及哪些方面?
具体的有点记不得了,不过可以谈谈总体上的。日企的招聘和国内企业有点不同,他比较看重的是你的品质和综合能力,主要就是激情,创造力和行动 力,知识和技能反倒是可以入社以后再加培养,所以即便是 IT 企业的面试,也很少问常见的算法和设计题。对于应届生来说,最重要的我觉得一个是你自己的作品(github,网站,web 应用,博客,有趣的项目等等),因为几乎肯定会有个问题是“说说大学里你最自豪的作品”。另外一个就是日语能力了,虽然很多日企都强调不做要求,不过我个 人觉得日语好的话优势会比较大,毕竟还有必问的一个问题就是“为什么你要来日本”,如果日语好的话说明你确实比较喜欢日本,对方也就更愿意接受你。而且像 我上面说的,工作中基本是用日语交流的。
伯乐在线:你刚才提到 AHRP 顺利通过,但启程日本这个项目却没能通过。你能分享一下这块的经验吗?是自己在启程日本没有发挥好,还是其他原因?
启程日本其实说来挺尴尬的……因为当时启程日本要求的是应届生,而我已经毕业了一年了,在朋友的帮助下霸面了一回,本来面试结果还不错,在决定 企业面试意向的时候发现我是往届生,最后还是被刷了。结果通过 AHRP 项目最后去的 Kayac,正是启程日本里我的第一志愿,只能说是因缘巧合吧。
伯乐在线:刚才你还提到:“最重要的我觉得一个是你自己的作品(github,网站,web 应用,博客,有趣的项目等等)” 也就是说,日企对应届生招聘,因为没有工作经验参考,企业更关注的很大一部分是你在校期间,通过开源、博客、网站分享过哪些东西。是这样的吗?
嗯,是的。就像之前说的那样,日企(其实所有企业我想都差不多)关注的是你的创造力和行动力,对于学生来说,“自己做了一个有趣的 web 应用”还是很有说服力的。其实也不光是写程序方面,组建一个乐团啊,做一个机器人啊都可以。
伯乐在线:很有意思。不过,我仍然有疑问:如果不考核和未来岗位相关的技能,如何判断那些没有作品,但基础很好的人呢?
这个可能和用人理念有点关系,因为日本人相信“只要这个人有激情,够努力,就一定能办好”,所以觉得技能都是可以之后培养的。其实,我觉得“努力”是这其中最重要的,你只要表现得像个很努力的人,他们就会相信你能够适应将来的工作。
而且当初我也是交了作品的哈哈,“破解汉化了一个游戏(未完)”。那个游戏的文本档是加密打包过的,而我的一个朋友很想汉化这个游戏,我就是读 了主程序解密这些文档的汇编代码,写了一个程序帮他把那些打包以后的文档解压出来,同时把他翻译好的文档再原样压回去。顺便还有一些修改程序的编码和字体 之类的小问题。
伯乐在线:刚才我特意看了这个页面,如你所说,公司还有很多位中国同事,他们也是通过这类的项目到 Kayac 工作吗?
嗯,是的,他们基本都是通过 ahrp 或者启程日本项目来 kayac 工作的。
伯乐在线:在 Kayac 工作,你们的工作时间安排是怎样的?
我们公司是每天 9 点 29 分上班,中午休息 1 小时,(理论上)晚上 6 点 29 分下班。不过一般都要加班,早一点的话 8 点,晚一点的话 10 点,有时候可能还得到 12 点半左右,正好坐上末班车。
伯乐在线:加班貌似是一种常态?
日本企业,加班也是有名的了,更何况是 it 企业了啊!
伯乐在线:你的感受来看,是因为工作量大,还是加班文化?
之前看到篇文章,叫《五个特点解释日本人为什么玩命工作》,感觉说得比较贴切,我个人感觉日本工作特点就是“加班多,效率低”。
因为日本人比较崇尚“努力工作”,重点是努力。如果你有能力,做事很快,那是好事,上司会很欣赏你,但是如果不能在能力上面给人留下好印象的 话,那就要在态度上表现得很努力才行。所以日本人一般都会在公司待到很晚,催生了这种加班文化。然而在中国人的观念里,我觉得大部分人对工作的态度就是 “拿钱办事”,做到位就可以了,于是就有新来的中国人员工因为“准时”下班被社长发邮件训斥“现在的新人到底有没有干劲啊”这种事……
不过平心而论日本人做事也确实比我们认真(至少就认真劲儿来说),所以也不能完全说只是效率低吧。
伯乐在线:你刚到 Kayac 时,是不是也准时下班?:)
是啊……一周以后就被技术部长叫去长谈说:“日本企业和欧美企业是不同的,我们最看重的是努力工作”,我问“那要多努力才算是努力?”,他说“总之要非常努力。”
伯乐在线:你当时是什么心情?
哈哈……其实我因为多少也了解日本的这种文化,有点心理准备,不过从日本人口中真的听到他们这么说还是比较奇妙的。
不过怎么说呢,日本的这种努力文化也确实使得他们很努力,经常会有新人自己用一些新技术(node,angular 之类的)做了自己的项目,然后拿到全社发表的。
伯乐在线:那么,你们的工作业绩的如何衡量与评估的呢?
这个每个公司都有不同吧。我们是每半年有个同组内的员工互评以及同一工种内(后端,前端,设计师)的全体排名,由每个人给其他人打分,最后根据 总得分来排名,决定了涨薪和奖金。所以,做自己的项目向全社发表也有提高在其他人心目中评分的作用。总之,态度和实力,两方面都很重要。
伯乐在线:你现在做后端这块,和日本本土的员工协作起来,有什么体会和感触吗?(比如:文化差异)
最大的感触就是:perl 不适合多人协作(笑)【伯乐在线注:丁晔后面解释这只是个玩笑。】
伯乐在线:你现在具体做的产品(特性),方便介绍一下吗?
我现在所在的项目是一个叫 Lobi 的聊天软件,因为是老项目了,系统比较复杂,代码量也很大。上面说的“perl 不适合多人协作”这句话自然是玩笑,不过因为 perl 强调“There Is More Than One Way To Do It”,在项目大参与的程序员较多时,代码风格就容易参差不齐,阅读起来比较累。
伯乐在线:印象中,日企的代码规范应该是很严格的,怎么会出现代码风格就容易参差不齐的现象?
应该说还是和公司风格有关吧,我们公司比较自由,基本一个组的事(特别是技术方面的)都是技术组长说了算,没有强制的代码规范,但是在 merge 到 master 分支之前都会有组长或者组员来 review 代码,所以说一定程度上还是有保证的。特别 Lobi 项目的单元测试写得比较齐全,互相之间的代码 review 也一直在做,这一点我觉得还是很厉害的。老而大的项目,理解起来比较累某种意义上来说也是没有办法的,毕竟代码肯定会随着时间越来越混乱的。
伯乐在线:你们的开发流程大概是怎样的?
基本上是按照 Agile 的那一套:
1. 有 PM 把需求写在 story board 上,作为一个 story。
2. 针对一个 story 一般负责开发的是两个工程师,由他俩把 story 分解成几个具体的 task,估算开发的时间,定好两人的分工。
3. github 上(公司买了私有代码库)开出对应这个 story 的分支,以及对应各个 task 的小分支。
4. 每完成一个 task,push 到 github 上,请对方 review 一下,有问题则修改,没问题就 merge 到 story 的分支上。
5. 完成整个 story 之后,再把 story 分支 merge 到 master 上。
伯乐在线:在日企,做开发这块,一般的薪酬和福利是多少?
薪酬是痛啊……日本的一大特点是相同工龄下,不同职业间的差距不大,所以无论是做开发,做设计,做产品经理,还是搬家公司的搬运工,薪酬差距虽 然不能说没有,但肯定没有国内那么大。不过也和公司有关,像 Amazon 这样的外资企业,或是游戏公司的话,薪酬会高不少。还有如果公司效益好的话,奖金会发得很多。这里的差距就比较大了。如果说个大概数字的话,按照现在的汇 率来算和国内差不了多少。相比于国内的某些高薪企业可能还不如。就我了解的,毕业两年,月薪应该在 30w 日元以上吧。税收和保险加起来每个月 5w 左右。
伯乐在线:你平常会参加线下技术沙龙吗?
有参加过一次 Yokohama.pm(横滨 .pm 横滨地区的 perl 程序员聚会)。perl 的技术聚会特别喜欢用地名 + ‘.pm’ 这种形式,’.pm’是 perl 模块的扩展名。
基本形式就是最常见的来自不同公司的工程师每人 45 分钟演讲,以自己工作中解决的问题,介绍新技术,或是自己最近写的 perl 库为主题,结束以后一般都有个酒会,大家一起去居酒屋喝酒聊天什么的。
在日本,YAPC 是每年一度的 Perl 聚会。感兴趣的朋友,可以看看这个 油Tube 的视频。
伯乐在线:参加这种技术聚会,对你有哪些收获?
我对介绍新技术的演讲比较感兴趣,很多是最近新开的开源项目,借此能够了解一些 perl 圈的动态。讲自己写的库的我一般就无视掉了(笑)。另外对于日本人来说,参加这些技术聚会发表演讲能够提高自己在 perl 圈内的知名度,最后再去参加酒会也能相互认识了解一下。
伯乐在线:你之前介绍过 Perl 在日本很流行。能详细说说吗?
Perl 在日本是主流的脚本语言。Ruby 很多语法也是参考了 Perl 设计。日本很多公司,诸如 DeNA,Line,Hatena 都是使用 perl 的。关于目前主要的日本网站所使用的技术栈,可以参考这篇文章。
伯乐在线:你在日本这一年多,感觉日本技术圈的氛围如何?
在追赶西方的角度上来说不比国内差,基本上流行的开源软件大部分都会在日本得到介绍。而且日本人写博客和写书非常勤快,所以很多英语文档都会被翻译成日语在日本传播开来,因此他们对英语的需要就没有我们那么强。另外日本人对于开发库,模块,插件的热情很高。
这位是曾经的同事,在离职以后的一年里坚持几乎每天写博客,博客访问量现在达到了一个月 5w 左右。在这期间还出版了一本 300 多页的书,去了一趟硅谷,参加了一个创业项目。这位同事当初离职时的理由就是“想去国外工作”,然后在离职后的一年里去了巴塞罗那,去了硅谷,还出了一本书。我也很佩服他的这种热情和行动力。
伯乐在线:请简单介绍一些在日本的衣食住行吧。
衣:基本和国内差不多,因为 99% 是 made in china。
食:吃的东西都比较好吃,就是种类比较少,每天就是几样东西换来换去。
住:房租比较贵,买房(相对来说)比较便宜。房租比如我现在是三个人合租一套 70 平方的房子,一个月 12 万日元。买房的话一般 70 平方的房子在 3kw 到 4kw 之间,按揭的话和每个月的房租差不多。
行:基本电车,非常方便。
伯乐在线:你在日本工作这 1 年多来,最大的收获是什么?
最大的收获,感觉就是见到一种不同的活法吧。似乎日本人都没有我们这样强烈的生存危机感,总觉得 20 多岁不结婚不买房,不好好赚钱就会活不下去。我见过有设计师跑去长野县当伐木工的,有变成 Freelancer 做 Indie Game 的,有离职后潜心研制万能遥控器(一个具有网络端口的红外线发射器)的,还有依然在职的从设计师转程序员的策划(笑)。他们对于生活的这种乐观和热情是我 很羡慕的,也希望自己能够追赶上去。
伯乐在线:很有感触!本想多说几句,时间限制,我们以后再聊。谢谢丁晔腾出周末的时间来接受采访,同我们分享你在日本的工作和生活情况。提前祝你和你的家人新年快乐!再见。
嗯,好的,也祝你新年快乐!