岛国程序员图鉴
笔者是一名程序员,今天这篇文章,并不会去过多分析《逃避可耻但有用》里的程序员男主,而是透过这个视角去观察日本 IT 业界的现状。
Gakki 不会嫁码农,
但森山实栗可以
记得多年前曾经有人问过新垣结衣,想和哪种类型的男性结为伴侣,她的答案我并不知道,但她却明确表示了——IT 男,不要。无怪乎当《逃避可耻但有用》上映的时候,有人调侃说这是码农意淫剧。
我看过的日剧并不多,仅有的几部可能也是午夜档,只能跟兄弟们交流,没法跟姑娘们安利。但《逃避可耻但有用》,却是一部老少咸宜的日剧,甚至跟午夜档一样,观众以男性居多。毕竟就连我的肥宅前同事,也叫 Gakki 做老婆。
但作为一个在开发者社区混迹多年的人,我个人觉得剧中的男主平匡却不像是一个典型性的程序员,虽然他在剧中的造型非常典型。
剧里的平匡,年龄 35 岁。首先这个年龄就很微妙,在中国那是处在一个风口浪尖之上啊,没想到在日本也同样如此,35 岁的年纪被裁员了……这样一看,好像更典型了?但别着急,我们往下分析他为啥是非典型性程序员。
派遣社员 VS 正社员
很多人初看剧时,喜欢代入到国内环境,但实际上各个国家的 IT 环境都大有不同。
我之前在 InfoQ 的时候,曾经想写一篇稿子介绍中美日印欧,这几个国家/地区的 IT 环境和程序员现状。但后来因为工程量实在太过浩大,最终选择了放弃,前期只花时间调研了日本的一些相关行业信息。
在日本,做程序员一般分为两种,一种是派遣社员,一种是正社员。剧中的平匡在被裁员以后,为了养活 Gakki 老婆,决定去找工作,当时他搜索界面里的一个关键词就是“正社员”
派遣社员,有点类似于国内的外包公司。雇佣你的是人才派遣公司,你上班的地方是依据项目决定,有时候你可能会被派遣到在日外企比如 Oracle、IBM 这种,有时候你可能会被派遣到日本本土的一些企业,规模可大可小。
正社员,顾名思义就是正式的程序员,这种一般都是直接跟着公司干,大部分时候是做公司自己的项目,但也有可能会去做一些公司接过来的外包项目。
两者之间的区别,其实也跟国内的外包员工跟正式员工的区别相类似,主要在于薪资福利等方面。但不同的是,日本派遣社员的规模相当之庞大,很多国内去日本工作的朋友,也基本都是派遣社员的身份。
所以从这个角度上看,平匡同学能拿到正社员的身份,还能有钱养得起 Gakki 这样的全职主妇,经济条件其实是相当不错的。你可能又要觉得,程序员工资高不就是典型吗,但其实在日本,工资高的并不只是程序员,程序员的社会地位可能也没你想的那么高。
长得像制造业的软件开发业
据说麻省理工的一位教授做过一个比喻,这个比喻也是我想写中美日印欧五大区块 IT 开发行业现状大稿的原因。他是这么说的:
在欧洲,Software as a science(软件即科学)在美国,Software as a business(软件即商业)在印度,Software as a service(软件即服务)在日本,Software as a production(软件即制造)
这几个关键词,就非常形象地解释了每个国家/地区对于软件开发的态度的不同:
欧洲把软件开发当成科学,很多研究计算机科学的人都在,甚至很多科学研究本身就需要非常强的计算机能力,比如著名的欧洲核子研究中心。
美国把软件开发当成商业,著名的硅谷车库文化里,诞生了数不胜数的市值令人咋舌的科技公司。
印度把软件开发当成服务,倒是很 SaaS……其实,这就是印度外包闻名世界的直接原因了。
而日本……他们的软件开发业其实长得特别像制造业。
根因其实也很简单,可以说日本最初是以实业立国的代表。比如说,提起日本的知名企业,你能联想到很多:索尼、松下、三菱、东芝、富士通……但这些公司,都不是或者很难称之为科技公司。
所以从知名度的角度上看,日本天然吸引劳动力加入的公司,是偏向于制造业的公司,不像中美这样有很多全球知名的科技公司。这就说明了,为什么在中美,程序员会是比较高 Level 的工种,而在日本却不是。
日本现在的经济发达水平,决定了其哪怕是酒店大堂打扫卫生的阿姨,可能拿的薪水都不会太低。程序员的薪酬不会拉开跟其他行业的大差距,更不用说软件开发还容易掉头发这个男性心中永远的痛了。
所以从这个角度上看,不仅平匡同学不是典型的程序员,整个日本 IT 界都很难有国内普遍认知上的那种典型程序员了。
下面的这个简历可以看出来,平匡同学虽然不是很典型的程序员,但起码是很优秀的那种开发者了:系统工程师、正社员、应用情报技术者/基本情报技术者(这俩是日本的国家 IT 考试,你可以理解为是职业资格证,门槛还是挺高的)。
大家都知道日本人是很严谨的,在大多数时候这都是一个褒义词,比如说制造业就特别需要严谨,因为不严谨出的问题可能都不是小事。
但在软件开发行业里,严谨有时候往往代表着死板。
日本软件开发的流程非常的程式化,这跟制造业又有异曲同工之妙。
具体表现在软件开发的流程一环嵌一环,环环相扣,前一环没搞好打死不到下一环。这种软件开发模式,其实就是我们常规意义上说的瀑布式开发。
但问题是,现在都 2021 年了,敏捷开发有时候都难以应付快速变化的市场环境了,你还在那磨机芯一样地“匠人精神”,实在是有点跟不上时代。
所以有人才会说,日本错过了移动互联网。毕竟,你精心打磨出来的 App,刚一上线就发现已经落后别人好几个身位了。
比如说前两年,7-Eleven 做了个移动支付功能叫 7Pay。这个被 7-Eleven 寄予厚望的手机支付功能,本应成为日本政府推进无现金支付王牌代表的功能,上线 4 天就被人盗刷盗得只能缩小服务,甚至重挫了日本社会对移动支付的安全信任度。
这个功能被盗的逻辑堪称低劣:7Pay 的系统用邮箱作为账号,找回密码只需要使用「生日」,但生日选项可以不填,默认为 2019 年 1 月 1 日。找回密码时,如果填错,没有次数限制,并且找回的密码,可以单独填写一个邮箱接收,所以路径是这样的:
只要拿邮箱,用 2019 年 1 月 1 日当生日,选择找回密码,因为总有人不改生日,于是就可以改密码了,这个账号就归你了。
后面开记者发布会的时候有人问了:
“为什么 7pay 没有二次验证?”
7-Eleven 的社长答:“二次验证是什么?”
当然了,最后查出来入侵这个功能的犯罪分子来自中国,这也讲得通。毕竟中国的软件开发行业对标日本的话,的确称得上降维打击。
日本 IT 就没有拿得出手的吗?
从很久以前开始,中国企业就特别愿意接日本的外包工程,因为日本程序员已经把代码写得很详细了,你接过来的时候只要简单改改就可以运行。
另一个方面,日本企业对于软件系统的要求远没有中国企业那么苛刻,什么高可靠高可用高并发那都不重要,压测这种核武器更是不用提了,你把前端的 UI 界面整漂亮点没准日方金主就满意了:斯国一~
当然前面对日本 IT 业界的调侃有点多,可能会影响到本文的严谨性,所以我还是决定去找找日本 IT 业的代表,跟平匡一样非典型的真实人物。
照片中间的这位大叔就是一位外表看起来很典型的程序员,但他的经历同样不典型。这张照片可以说得上是我的人生巅峰了,毕竟不是每个人都有机会跟一位编程语言之父合照的。这位大叔的名字叫——松本行弘。
在日本,软件的商业化确实做得比较落后,但软件的教育工作却值得世界学习。
我印象里图灵出版社就有翻译过很多来自日本的编程语言教材,很多内容对于编程语言的实现和设计都有非常深入的介绍。
国内的一些高校也都有选用日本编程教材作为老师授课的依据,从这个角度看,日本 IT 业界可能文档写得也相当不错😁。
松本行弘先生在创立 Ruby 语言之初的时候,工作上就非常闲。他刚毕业的时候日本加班很严重,不论是 IT 行业还是其他行业都是如此。所以我们经常能在一些日剧里看到地铁站里筋疲力尽睡在地上的上班族。
他说:
当一个人很忙的时候,是基本不可能去创造一个新东西或者搞出什么创新来的。做开发可以改变世界,这是软件开发这个职业的迷人之处。
从这个角度讲,提高自己的工作效率,不加班,拥有自由的时间。
利用自己的时间创造新的东西,做一些创新性的工作,这才是正道,希望这样的人越来越多,也希望鼓励这种文化的公司越来越多。
回到这篇文章的主题,我也希望国内科技公司的加班越来越少,能出现越来越多的非典型性程序员,让这个行业变得更好一点。
祝福 Gakki,毕竟我早就是有老婆的人了。