网上有很多“程序员的一天”。
早上五点起床,运动、读书、学英语,上班完成所有任务,下班后继续写个人项目,晚上十一点准时睡觉。
我的工作日没有这么自律,也没有那么精彩。
我住在千叶,在东京方向工作,是一名普通的Web工程师。白天要处理程序、数据库、设计书和各种确认事项,晚上还想学日语、英语和新技术,也会维护自己的博客。
计划总是很多,但真正到了晚上,经常已经没有多少力气了。
这才是我大多数工作日比较真实的样子。
早上:先看天气,再看电车
工作日的早晨,我起床以后最先确认的,通常不是技术新闻,而是天气和电车运行信息。
从千叶去东京方向上班,常磐线的运行情况会直接影响一天的开始。遇到大雨、强风或者人身事故时,电车可能晚点,也可能临时减少班次。
看到「遅延」的时候,我就会比平时早一点出门。
如果情况比较严重,也要提前在公司群里联系:
電車遅延のため、到着が少し遅れる可能性があります。
由于电车晚点,我可能会稍晚到达。
虽然已经在日本工作很多年了,但发送这种信息以前,我有时还是会检查一遍日语。
不是不知道怎么说,而是会考虑:“这样说会不会太直接?”“是不是应该再礼貌一点?”
对外国人来说,在日本工作累的不只是技术,还有这些看起来很小的语言判断。
通勤:想学习,最后经常只是看看手机
坐电车通勤时,我原本经常会给自己安排很多事情。
今天背几个英语单词,明天看看Go语言,后天读一篇日语新闻。刚开始的时候,总觉得通勤时间不用来学习就浪费了。
但早高峰的电车比较拥挤。有时候站着就已经很累,更不用说集中精力看技术资料。
所以现在我不会强迫自己每天都学习。
状态好的时候,我会看看日语表达或者技术文章;比较累的时候,就听音乐、看看新闻,或者什么都不做。
以前我会因为“今天又没有学习”而产生焦虑。后来慢慢觉得,通勤本身已经消耗了体力,休息也不一定是浪费时间。
能让自己以相对正常的状态到达公司,可能比在电车上勉强记住几个单词更重要。
到公司:第一件事不是写代码
到了公司以后,我会先打开电脑,确认邮件、聊天消息、日程以及当天的任务。
很多人对工程师的印象是,一坐下来就开始写代码。
但实际工作中,真正写代码以前往往要先做很多确认:
- 客户有没有新的联系;
- 昨天修改的内容有没有回复;
- 设计书有没有更新;
- 今天有没有会议;
- 测试环境是否正常;
- 有没有突然需要优先处理的问题。
如果是团队共同开发,还要先拉取最新代码,避免在旧版本上继续修改。
有时候电脑打开半个小时了,编辑器还没有打开,但工作其实已经开始了。
早会:用几句话说明昨天和今天
早会一般不会很长,每个人简单汇报昨天做了什么、今天准备做什么,以及有没有遇到问题。
比如:
昨日は画面の修正と単体テストを行いました。
昨天进行了页面修改和单元测试。
本日は詳細設計書を更新する予定です。
今天计划更新详细设计书。
現時点では、特に問題ありません。
目前没有特别的问题。
这些句子看起来不难,但轮到自己说时,还是要在脑子里迅速整理。
特别是工作还没有完全做完的时候,怎样说明当前进度,同时又不让别人误以为已经延期,是一件需要经验的事。
有时不是程序难,而是“怎样把现在的情况准确地告诉别人”更难。
上午:终于开始写代码
确认完任务和设计书以后,才会真正开始开发。
我平时接触的是Web系统,既有历史比较长的后台程序,也有PHP、WordPress、JavaScript和前端页面。有时是增加新功能,有时是修复Bug,也有时候只是调整一个按钮、一段文字或者表格宽度。
外行看来,“只是改一个按钮”好像几分钟就能完成。
但真正修改时,需要确认电脑和手机上的显示、不同浏览器的兼容、点击后的处理,以及会不会影响其他页面。
程序运行了很多年以后,一处看起来很小的修改,也可能牵连其他功能。
所以我经常会先搜索相关代码,再确认调用关系。修改结束后,还要检查有没有发生「デグレ」,也就是新修改导致原来的功能出现问题。
有时一个问题调查了很久,最后发现只是一个条件判断、一条旧数据,或者浏览器缓存。
找到原因的那一刻会觉得很轻松,但在找到以前,脑子里可能已经怀疑过十几个地方。
比写代码更多的是“确认”
在日本的IT项目中,我使用频率很高的词不是“完成了”,而是“确认”。
こちらの認識で合っていますか。
我的理解正确吗?
念のため、確認させてください。
为慎重起见,请允许我确认一下。
仕様書ではこのように記載されていますが、現在の動作と異なっています。
设计书中是这样记载的,但与目前的运行结果不同。
很多时候,需求并没有写得特别清楚。直接按照自己的理解修改,速度可能很快,但如果理解错了,后面返工会花费更多时间。
刚开始在日本工作时,我有时不太敢问,担心别人觉得我没有理解能力。
现在我更愿意早点确认。
因为工程师真正需要避免的,不是“问了一个简单的问题”,而是带着错误的理解一直做下去。
午休:便利店便当和短暂离开屏幕
中午吃什么,没有固定答案。
有时和同事出去吃,有时去便利店买便当,也有时候自己带饭。
如果上午一直在调查问题,吃饭时脑子里还会继续想着:“那个条件为什么没有进去?”“是不是数据库里的值不对?”
即使离开了电脑,程序也没有完全从脑子里离开。
不过,我现在会尽量在午休时站起来走一走。工程师一天坐在电脑前的时间太长,如果连午休也一直看屏幕,下午肩膀和眼睛都会更累。
天气好的时候,在外面走几分钟,回来以后思路有时反而会更加清楚。
下午:会议、测试和突然出现的问题
下午通常继续上午的开发,也可能编写设计书或测试书。
有些人可能觉得工程师只需要代码写得好,但在日本项目里,文档也占了很大一部分。
修改程序以后,需要记录:
- 修改了什么;
- 为什么修改;
- 测试了哪些情况;
- 正常数据是否正确;
- 异常数据会怎样;
- 是否影响其他功能。
写测试书并不是我最喜欢的工作,但它确实能发现一些写代码时没有注意到的问题。
下午也经常会突然收到新的咨询:
“这个页面打不开。”
“数据为什么没有显示?”
“昨天还能使用,今天不行了。”
收到这种问题时,不能马上判断一定是程序故障。需要先确认操作步骤、用户权限、浏览器、数据状态和日志。
有时调查一小时,最后发现程序没有问题;有时看起来只是一个小问题,背后却牵扯到很多旧逻辑。
工程师的日常,大概就是不断在“应该没问题”和“还是再确认一下”之间来回。
日语沟通:技术懂了,不代表马上说得出来
我的母语不是日语。
阅读代码时,我可以慢慢分析;但是会议中的日语不会等我。
对方说完以后,需要马上判断他的意思,还要考虑应该怎样回答。有时技术内容已经理解了,但日语还没有组织好,回答就会变得比较简单。
我经常使用的表达包括:
もう一度確認してもよろしいでしょうか。
可以让我再确认一次吗?
つまり、〇〇という認識で合っていますか。
也就是说,我理解为〇〇,这样正确吗?
一度持ち帰って確認します。
我先带回去确认一下。
以前我会因为自己没有马上说出很自然的日语而感到沮丧。
后来我发现,即使是日本人,在需求复杂的时候也会反复确认。重要的不是说得像播音员,而是不要让双方产生不同的理解。
当然,我还是希望自己的日语能更自然一些。
所以工作中看到别人使用了一个很合适的表达,我会记下来。有些日语不是从教科书里学到的,而是在一次次修改消息、参加会议和请别人确认的过程中慢慢积累起来的。
下班前:总觉得还有一点没做完
到了下班前,我会整理当天的进度。
完成的任务提交代码、更新文档,需要别人确认的内容发送审查请求。没有完成的部分,则记录目前调查到哪里,第二天从哪里继续。
比较理想的状态是准时下班。
但实际工作中,总有一些“再看五分钟应该就能解决”的问题。
然后五分钟变成二十分钟,二十分钟又变成一个小时。
工程师可能都有这种经历:明明已经准备关电脑了,突然想到一个可能的原因,于是又把程序打开。
有时候真的解决了,心情很好;有时候什么也没有解决,只是更累了。
现在我会尽量判断这件事是否真的必须当天完成。如果不是紧急问题,把调查内容记录下来,第二天头脑清醒时再看,效率往往更高。
回家以后:计划很多,精力却不一定够
下班坐电车回家时,我经常开始计划晚上的生活。
今天学Go语言,复习英语,再写一篇博客。回家以后还可以看看WordPress,调整一下网站的样式。
计划非常充实。
但是打开家门、吃完饭以后,身体的真实想法通常是:今天已经不想再看电脑了。
有时候我还是会打开自己的博客,修改一点CSS、整理一篇文章,或者看看网站的访问情况。
自己的博客和公司的项目不一样。
公司项目要考虑需求、工期和客户,而个人网站可以按照自己的想法慢慢调整。虽然访问量不算很多,但看到自己写的文章被搜索到,还是会有一点成就感。
特别是有人通过我写的技术文章进入网站时,我会觉得过去踩过的坑没有完全浪费。
学习:并不是每天都很有动力
作为工程师,我知道自己应该不断学习。
旧技术不会永远使用下去,AI和Web开发也一直在变化。我想学Go,想提高英语,也想继续改善日语表达。
但是“知道应该学习”和“每天真的能学进去”是两回事。
有一段时间,我会因为学习效率不高而怀疑自己。
明明花了时间,为什么感觉进步不明显?看了很多教程,为什么真正写的时候还是不会?
后来我慢慢接受,工作以后学习,本来就和学生时代不同。
有些晚上可以认真学一个小时,有些晚上只能看十分钟,还有些晚上什么都不想做。
如果每天都要求自己完成很多内容,一旦没有做到,就会产生“今天又失败了”的感觉。
现在我更希望自己保持一点连续性。哪怕只写一段代码、记住一个日语表达,或者解决一个以前不懂的问题,也算是向前走了一点。
偶尔去打羽毛球
一直坐在电脑前,肩膀和脖子很容易僵硬。
所以有时间时,我会去打羽毛球。
工作中的问题大多需要坐着思考,但打球的时候没有时间想代码。球过来了,就只能判断应该接杀、平抽还是回后场。
这种必须把注意力放在身体上的感觉,对我来说是一种很好的切换。
当然,打完球以后也会很累。
但那种疲劳和盯着电脑一天的疲劳不太一样。回家洗完澡以后,精神反而会轻松一些。
晚上:和妻子聊聊天,然后准备睡觉
一天结束以后,真正让我从工作中离开的,通常不是关闭电脑,而是和妻子一起吃饭、说说当天发生的事情。
有时聊工作,有时聊生活,也可能只是讨论周末去哪里、家里还缺什么。
这些事情看起来很普通,却构成了在日本生活的大部分时间。
睡觉以前,我偶尔还会拿起手机看看技术新闻,然后告诉自己“只看五分钟”。
结果经常超过五分钟。
第二天早上醒来,又会后悔昨天没有早点睡。
这大概也是我的平日ルーティン之一。
我的工作日,并没有那么高效
如果把我的一天写成漂亮的时间表,可能会是:
早起、通勤、工作、学习、运动、写博客、按时睡觉。
但真实生活不是每一项都会完成。
有时候电车晚点,从早上开始就很疲惫;有时候一个Bug调查了一整天;有时候晚上计划学习,最后只是躺着看手机。
也有一些日子,工作顺利完成,日语表达得比以前自然,晚上还写完了一篇文章。那种时候会觉得自己正在慢慢进步。
我不是那种每天都充满动力的人,也经常觉得时间不够、能力增长得太慢。
但回头看,很多以前不会的事情,现在已经变成了日常工作的一部分。
刚开始觉得困难的日语汇报,现在也能完成;以前不了解的系统,现在也可以调查和修改;自己的博客,也从一个想法慢慢变成了真正可以访问的网站。
所以,我现在对“平日ルーティン”的理解,不是每天严格执行一张完美的时间表。
而是在工作、生活和疲劳之间,尽量保持一点前进的节奏。
有时快一点,有时慢一点。
只要没有完全停下来,可能就已经足够了。

