• 大厂的经理应该写代码吗?

    这礼拜马一龙(Elon Musk)在给Twitter员工的邮件中提到:“所有的经理都应该写适量的代码,做不到这一点就好比长官不会骑马”。 我同意大厂的经理应该有一定技术背景,但最好还是不要让他们去写代码,要不然Oncall就要更忙了。

    一般大厂的经理面试流程中都会有一两个代码/系统面试。今天上午我就做了一个经理的代码面试。顺便提一句,我忙的时候很喜欢选这类面试任务,因为整体过程一般很轻松,不用像工程师代码面试时讨论复杂的算法,也不用像行为面试时听对方讲故事做很多笔记😏。

    我觉得针对经理的代码面试并不是在考察对方会不会写出很好的解决方案代码。更主要的目的是看对方有没有足够的工程素养和技术背景来面对与未来工程师间的高效沟通。比如我在面试时,会留意这些类型的细节:

    • 当面试问题需求不清楚时,对方会不会主动询问收集更多的信息。
    • 当题目约束条件相对宽松时,对方会不会考虑到使用不同的方法来对应不同的需求。
    • 当确定一种解决方法后,对方可不可以将其转化成代码进行沟通。

    这些细节信息可以帮我判断这个工程经理有没有足够的技术背景来支持他/她将来的团队。相反我不会过于纠结一些工程师代码面试中的问题,比如代码中出现一些小错误或者答错了时间空间复杂度等问题。 毕竟我认为大厂工程经理主要的工作是来支持自己的团队,而不是亲自下场写代码(当然Twitter可能要例外了)。

    如果让我来选择自己的团队经理话,我会希望他/她做好以下几件点:

    • 给团队中每个人充分的关心与支持,与大家建立良好的信任关系。这样团队才会更加团结。
    • 与大家一起制定团队目标,帮助团队与上一级大部门和公司的目标对其,做好项目的优先排序。
    • 和TechLead一起尽可能为大家找到适合自己能力、兴趣的项目。这样可以使大家可以更高效(开心)地工作。
    • 为团队中的每一个人制定明确的工作、升职目标,认可他们为团队做出的贡献,并支持他们最终达成这些目标。
    • 为团队赋能,帮助团队寻找新的机会和客户。与现有客户保持良好的关系,时时收集反馈信息,与团队一起制定改进方案。

    当然最后一点是不要去碰团队的代码。我大概想了一下,这些年在我周围花时间去写代码的经理基本都不在了(有些人没有被辞掉,而是转工程师了)。究其原因,这些人可能没有理解(在我们公司)什么才是对于经理最重要的工作。

  • 教女儿玩宝可梦卡牌(Pokémon TCG)

    教女儿玩宝可梦卡牌(Pokémon TCG)

    周六上午,我正在处理一些这周落下的工作,女儿抱着一个大盒子冲进来说要和我玩宝可梦卡牌。我犹豫了一下,还是答应了。小布丁选了Lycanroc V牌组大战我的Mewtwo V牌组。结果,我居然输了…

    记得小布丁第一次接触宝可梦还是两年前,当时我刚刚入手了Switch上的宝可梦剑盾。玩游戏时我选了女生角色,并起了一个她喜欢的名字。之后我一边玩,她一旁看,一直到最后通关。那段时间她很喜欢宝可梦,还时常和我玩宝可梦版的过家家(我扮演Trainer,她扮演Eevee)。

    几个月后,Neflix上又出了新的一季宝可梦动画片,这让宝可梦突然在周围的小朋友圈子里又火了。圣诞节前给邻居送礼物时,她看到邻居家的小男孩收集了很多的宝可梦卡片,超级羡慕。之后她在圣诞节也收到了人生中的第一包宝可梦卡牌。

    刚开始我没教她怎么玩宝可梦卡牌,因为我觉得卡牌的游戏规则对于4岁的小朋友来说有点复杂,所以只是让她收集着玩。后来有一天,我发现她不好好做数学题,在旁边画宝可梦玩。于是突发奇想,可以试着让她玩卡牌游戏来练习算数,比如让她在每轮攻击时通过攻击的伤害值来算出宝可梦的剩余血量。

    之后我就买了一盒宝可梦学院入门套装,开始正式教她玩宝可梦卡牌。可能她当时还太小,不能完全理解规则,学了一个星期也没学会。最可气的是她经常还自己定义新规则和玩法,这对于有“规则”强迫症的我来说实在是一种折磨😨。最后我终于放弃了这次教学,不过平时还是会给她买些卡牌包让她继续享受收集的乐趣。

    直到今年八月分,2022宝可梦世界锦标赛在伦敦举办。当时我正好有空,就带小布丁去了比赛会场长长见识。我记的当时小布丁当时都惊呆了,从没想过全世界有这么多的人会聚到一起来玩宝可梦游戏。这次不但让她又重燃了对宝可梦卡牌的兴趣,还让她过了一把”血拼”的瘾。

    借着这个机会,我又重新教了小布丁一遍卡牌游戏的规则。这次她学的很认真,因为她觉得如果自己学会了,明年就可以去参加下一届大赛了😓。她不但掌握了全部的规则,还自学了一段时间的Top Deck Academy(一个官方的YouTube教学节目)。之后我时常和她玩宝可梦卡牌,但她从来没赢过我(除了我让着她),直到这一次。

    这次虽然是个意外😳(运气不好,中期卡能量了),但应该算是女儿第一次凭借实力赢我。当时我看着她得意的样子,心里有一种说不出的成就感。希望女儿学习宝可梦卡牌的经历将来会成为她一段很美好的回忆,就像我回忆起父亲教我下中国象棋的时光。不知道当我第一次赢他时,他是不是也很有成就感呢?对了,今天是老爸的生日,祝生日快乐。

  • Japan Centre和达摩吉祥物

    Japan Centre和达摩吉祥物

    周末女儿上完芭蕾舞课,说想去买“日本东西”的地方吃饭。她指的是Japan Centre,这是在她心中为数不多的可以和麦当劳比拼的地方。当然她应该不是为了那里的拉面,主要还是为了日本糖果。

    Japan Centre是我在大学时最喜欢去的超市之一。因为每当走进超市,就有一种穿越到日本的感觉。记得当时店面还在Piccadilly Circus,里面的服务人员大都是日本人。虽然店面不大,但里面可以买到各种日本原装食品,生活用品和漫画书籍。

    现在的Japan Centre发展的已经很有规模了,在伦敦有三家大型店铺,而且还经营着两家餐厅。这次去的是Westfield London里的Japan Centre Ichiba。我点了经典的Shoryu拉面和中等肥度的金枪鱼刺身。它们近期在主打和Miffy合作,给小布丁要了Miffy套餐。

    我来这里一般会买些牛岛的煎茶和羊羹,而小布丁则会选一大堆日本零食。这次除了零食外,小布丁还选了一个达摩吉祥物。这是一个红色的不倒翁吉祥物,用于祈福或许愿。一般买的时候没有画眼睛,在开始作一件事前可以许一个愿,画一只眼睛,完成了事情或达成心愿后再画另外一只眼睛。

    我按照说明书给小布丁讲了可以选择五种颜色来点眼睛,分别对应着坚韧、财运、健康、恋爱和安全。小布丁第一轮儿先选了坚韧、健康和安全三个颜色(幸好没选恋爱!)。犹豫一番后,她最后决定使用红色(七転八起),直译过来应该是即使摔倒了七次,第八次也会站起来。

    很高兴女儿最后的许愿是坚持把事情完成。于是拿出了颜料和毛笔让她把一只眼睛画上。画完后我就顺手把达摩吉祥物放在桌上了,但是晚上工作时面对它总觉有点怪~怪~的…

  • 周末复盘:练习钢琴+学习画画

    这周天气变得更冷了,冷到我出门已经开始穿保暖内衣外加两件毛衣了。我有时在想我到底是不是在北方长大的,这么怕冷。最近出门时,把平时的咖啡都换成热巧克力了,感觉更暖和一点。

    周日等女儿跳芭蕾舞时常去的一家热巧克力店

    练习钢琴

    上班后开始变忙了,坚持不了每天30分钟的练琴时间。于是争取每天在工作休息时,可以抽5-10分钟练一下。这个方法对于之前学习的容易曲子还可以,将曲子拆解后,一次可以完成一两个小节,两周可以拿下一首曲子。

    但最近老师选的曲目都比较难,要不然就是节奏很复杂,或者需要比较高的技巧。五到十分钟根本练不好一个小节。每周都是都是硬着头皮去上钢琴课的,快三周了还没弹下来一首曲子。

    改进:我觉的要坚持下去,我需要一些正向的激励和反馈。这周和钢琴老师商量一下,给我换点简单曲子或者简单的Sight-Reading练习,争取可以很好的把练习分解,放在一个10分钟的Session内。

    学习画画

    这里拜之前为了把女儿的下一个游戏编程项目设计的更好看一点,我买了几个学画画的课程。本身想很快的过一遍,掌握一些游戏设计的基本美工技巧就好。结果一画就画上瘾了,每天都花了不少时间练习。

    改进:虽然学画画很好玩,但毕竟不是现阶段最主要的任务,还是应该先回到女儿的游戏项目上,继续推动她学习编程。

    • 先把相关的视频看完,快速熟悉常用的笔刷上色工具,从而可以给下一个游戏来制作贴图。
    • 把画画练习的时间降到每周两次

    上周复盘的行动结果

    1. work life balance 保持的还行
      • 继续沿用了一周上四天班,周五在家工作的模式
    2. 坚持写博客
      • 每天固定了一个写博客的Slot
      • 又坚持了一周,50% Milestone

    其他

    下面是一些这周的画画练习。前两张是拿数字画版画的,打印出来后看上去和拿铅笔在纸上画出来的基本差不多。

  • 终于集齐了报税材料

    每年十一月底,都会有一件让我无比头痛的事,就是准备报税材料。每次都要收集7-8份收入相关的文件,而且很多都需要从一些平时很少登录的账户整理,超级麻烦。这周熬了两天夜,一鼓作气准备好了所有的信息。当我给会计发邮件时,有种自己终于集齐了7颗龙珠,可以召唤神龙的感觉。

    英国报税的时间

    我刚开始自己报税时,最不能理解的是英国报税的时间点。不是以年底12月计算的,而是以四月初来结算。比如现在我处理并提交的是2021年4月6日到2022年4月5日其间的税务信息。

    后来查了一下,原来英国很长一段时间一直沿用着古罗马凯撒大帝的年历,新年的第一天是3月25日春分,直到1752年才改用现在的历法。英国的税务提交时间是以凯撒年历的时间变化而来(之所以挪到4月初,是因为考虑到润年的因素)。

    个人税务申报

    其实大多数在公司上班的英国人都不用自己申报收入缴税,因为HMRC(英国税务海关总署)会通过PAYE系统,直接将税款从工资里扣除。但如果你是自由职业者或创业人员,就需要自己申报了。除此之外,如果你有比较多的第三方收入,比如储蓄利息或股票房产收入等,或者你年收入超过了10万镑,也需要自己主动申报。

    我的报税体验

    之前我在学校工作时不需要自己报税。后来转到大厂就必须自己申报了。开始我尝试自己来,结果花了一周的时间准备材料填表格。之后就找了会计服务,我只负责收集收入的相关材料,会计负责填表和申报。这个会计服务我已经使用5年了,主要有三个优点:

    1. 计算税率
      • 当你收入来源种类比较多时,在没有税务背景知识的情况下,计算税率很麻烦。因为不同的收入类型有不同的税率,而且会根据收入级别变动。更麻烦的是,有时会有很多特例,比如去年我才知道,当收入达到一定额度时,一部分养老金的税务优惠就没有了,需要额外补税。
    2. 合理避税
      • 英国有很多的税率优惠政策,会计一般会努力帮你合理避税。比如如果家庭一方不工作时,另一方可以享受一部分税务优惠,或者如果你平时会给慈善机构捐钱,也可以享受相应的税务优惠。去年报税时,会计说政府有一项“在家工作”税务优惠政策,帮我直接申请了,我后来才知道。
    3. 和税务局联系
      • 记得我第一次报税后,就收到税务局的信说我算错了,差了一点钱。之后好像每年都会收到税务局的信,当然有时是多缴了退回来,有时是少缴了要补。如果自己打电话处理,可能要花半天时间。但有了会计后,他们会直接与税务局联系,节约了很多时间。而且后来会计还发现了一次税务局算错的情况,节省了一点钱。

    我觉的会计服务还是挺实用的,不但可以节省大概一周的个人时间,更重要的是减少了一些生活上的stress,毕竟年底这个时间段工作生活上都会很忙。

  • “转职”写手

    这周有Code Freeze,不用写代码,大部分时间都用来写文档了。我完成了团队明年计划的初稿,剩下的时间都在帮着其他队员来改他们的项目总结。这让我仿佛回到了大学时deadline前一周赶paper的状态。

    职场写作真的是一种在大厂生存的必要技能。记得刚进公司时,我觉得只要把代码写好,项目做好就可以了。但后来发现周围升职快的同事都是那些很会写Post的人,之后才体会到除了要能做好事,还要能把做的事写出来,让大家看到。

    比如,要想突出项目成绩,我会在写项目总结时用充足的数据来支持项目的Impact。要想展现Direction能力,我会经常写一些Post来介绍新的idea或者介绍一些和其他团队潜在的合作计划。要想改进团队的文化,我会写Post来指出团队存在的问题,聊一下自己的思考和解决方案,引发大家进一步的讨论。

    虽然这些事也可以在平时开会时直接交流,但往往大家聊一下就过去了,并不能导向实际行动。而写成Post不但可以让更多的同事看到,大家更可以很方便的进行Offline的讨论。甚至可以把感兴趣的同事组织起来,共同协作解决问题。

    另一个关于职场写作的心得是,平时尽量多写,但每篇不要花太多时间或写太长的篇幅。应为Post毕竟不是会议文章,没有人会去反复精度读或是来比较引用数。而且大家都很忙,可能只读一下TLDR或扫一眼前两段。所以Post没有必要写的很长,但一定把最重要的信息或需要大家的做的事放在最前面。

    记得我之前的一个mentor这样和我说,“没有写出来就等于没有做过!”

    Yes,今天又是星期五!

  • 团队OKR制订会经验分享

    这周最重要的工作是Lead团队做明年的Planning。今天早上组织了团队的OKR制订会。公司最近开始推行使用OKR来做项目计划,我也是最近才开始接触到OKR方法。这里分享一下我组织OKR制订会的经验。

    关于OKR

    OKR是目标(Objectives)和关键结果(Key Results)的缩写,最早流行于Intel和Google公司,现在很多大厂也开始使用这种目标管理方法。OKR可以有效的帮助组织上下齐心协力地实现企业的目标和战略思想。

    一般OKR会由公司的高层先定义最高级别的目标和关键结果,然后依次向下,每一个组织根据上一层组织的目标关键结果继续细分,直到落实到个人。制定团队级别的OKR要相对容易,因为已经有了上一级的O和KR,只需要根据团队实际情况和客户需求细分归纳出团队的O和KR即可。

    会前准备

    • 提前收集上一层组织的目标和关键结果。这次时间比较紧,上周五大组的目标才下来。
    • 提前一周让负责客户项目的组员去联系客户,收集一下现阶段的痛点和下一阶段的新需求或发展方向。有机会的话,最好还可以讨论一下关键Metrics和可能的项目。
    • 提前组织一个专注于关队创新的头脑风暴会议。这次我时间比较紧,准备了一个共享文档,让组员直接添加Idea然后offline sync。

    OKR制订会

    • 开始先强调一下会议的目的,争取在会议时间内制定出团队的目标(O),KR之后可以分算下去,让大家来再添。这样有助于避免,大家过度发散,完不成目标的制定。
    • 带领团队过一遍上一级组织的目标关键结果,看看大家有什么问题。争取让大家先达成共识,这样有助于一会儿团队目标的优先排序的讨论。
    • 让每一位客户负责人讲一下现有客户的需求和痛点,并把它们对应到上一级组织的目标。
    • 基于之前头脑风暴的讨论,把大家选出的好的idea归纳一下,也对应到上一级组织的目标。
    • 进一步收敛目标。这时每个上一级组织的大目标下应该对应了很多小目标(i.e. 之前添加的客户需求和团队想法),争取把它们合并归纳成为初步的团队目标。

    再下一步是让大家针对初步团队目标讨论重要性,并按优先级排序,最终提炼到4-5个目标。可惜这次会议发散的时间没控制好,这一步没有完成,只能会后组织大家Offline Sync。我打算明天先过一遍初步的团队目标,优化一下,然后发给队员,让他们来rate一下重要性,我再根据结果排序汇总成一个最终版。

    心得

    这次组织OKR制订会我有两点心得。第一,会议前的头脑风暴会是我自己加的,原因是我担心大家在制定计划时过于聚焦在当下的目标,而没有充足的时间来思考一些创新的想法和项目。这样把创新环节提前处理,可以帮助大家在保留发散思维的同时聚焦在组织的核心目标上。

    第二,团队在收敛排序目标时,应鼓励大家以公司或至少上一层组织的角度出发,来思考团队目标的优先级和重要性,而不是基于团队自身的利益。这样可以最大化发挥OKR的作用,更有效的统一公司上下的战略目标传递,从而确保团队明年的工作可以直接贡献到公司的使命与愿景。

  • 关于学习画画

    这周开始和女儿做第二个游戏项目,我打算和她一起做一个简单的记账APP。因为我觉得上次做的游戏有点复杂,这次想从比较简单的APP开始,并更注重练习编程。另一方面,最近打算开始让小布丁自己支配零花钱,正好她可以用来记账。

    可惜做了快一周了,进展却不是很顺利。其中一个原因是她觉着2D界面有点无聊,不怎么上心。这让我意识到,她之前很喜欢第一个游戏的主要原因是由于游戏的设计很好看。如果想让她继续对做游戏感兴趣,我就需要加强下一项目中的美术设计元素。

    不过我基本上没什么美工背景。为此这周我在网上订了几个辅助游戏设计的画画课程,打算练习一下。今天和小布丁一起看了一节课,还挺好玩的。其中一个环节是让你在一分钟内画10把剑,来锻炼速写和想象力。这是我和小布丁的练习作业。

    借着学画画的机会,我又入手了个新玩具😏,电子画板。七八年前我玩过一段 Wacom Intuos Pro画板,不过那时的画板还没有屏幕,需要抬着头画很麻烦。现在有支持屏幕的画板就方便多了。记得当年还是Wacom一统天下的时候,没想到现在已经有两三家厂商可以和它比肩了。这次买了个国产画板(绘王 16‘ 2.5k)先练练手,要是能坚持下来,到时在换个好的。

    最后在附上一张小布丁今天画的画,她起的名字是“会飞的长颈鹿”。

  • 周末去吃韩国烤肉

    好久没有吃烤肉了,周末中午去了一家韩国餐馆吃烤五花肉。这家餐厅(Hanrue Kensington)就在小布丁芭蕾舞学校旁边,环境布置的很KPOP。

    这里的特点是五花肉的部位非常好,肉片切的稍微偏厚一点,吃起来更有感觉。肉片表面还改过刀,烧烤时不会卷起变形,很方便。刚烤出来的五花肉外焦里嫩,小布丁超级喜欢吃,一个劲儿的让我给她加肉。

    我觉得烤五花肉超级简单,只需等烤盘温度升高,把肉往上一放,听到“呲呲“的声音就行了。把双面考到焦脆金黄色后,再拿剪刀剪成大块,翻转几次,烤到焦香出油就好了。整个过程应该是零失败率,因为肉片比较厚,而且充满油脂,基本上不会烤的过干或烤糊。再加上出锅前要把肉片剪块,所以也不用担心没有烤熟。

    比起其他几种烧烤,烤五花肉简直就是享受。不用像烤羊肉串时,一直在烤架上翻转肉串,生怕时间长了就烤糊了。也不像煎牛排,需要很好的控制时间达成相应成熟度。更不用像BBQ烤肉,盖着盖子跟本不知道里边肉烤的怎么样了。(现在烤牛排和BBQ我已经改用MEATER了,比较好控制一点。)

    一个好玩的小插曲。小布丁之前吃饭时一直使儿童筷子。筷子的上端连在一起,下方还有指环固定手指,很方便。这次她尝试挑战了一下超高难度模式,使用韩国筷子吃乌冬。韩国筷子比较沉,而且形状很扁,不是很好握,但经过很多次尝试后,她还是挑战成功了🎉!

  • 马斯克的提高工作效率建议

    上周四马斯克给Twitter员工发过“奋斗者协议”邮件后,据说还是有一部份人没有签,不知道他们是不是已经被开除了。后续上周五,马斯克在Twitter上就开始发自己和一群员工凌晨1点挑灯夜战的图片了😓。

    虽然马斯克管理缺乏人情味,但的确很善于打造高效的团队。以下是最近传出的他给Twitter员工制定的提高工作效率的六条建议 (之前也在特斯拉和SpaceX推广过)。

    1) Avoid large meetings

    这条建议是不要召开人数过多的大会。 很同意,大会的效率很难保证。一方面不是所有人都对会议的主题都感兴趣,愿意参与到讨论中。另一方面人多时发言人可能会有所顾忌,不一定会直接讲出最真实的想法。

    感觉一般除了少数的公司或Org的Townhall, Q&A 会议,或大组的项目planning或retrospective会议的人会多一点,一般会议应该尽量控制在6到8人(这是按照25分钟的会,每人分配3-4分钟发言时间来确定的)。

    2) Leave a meeting if you’re not contributing

    这条建议你不要去参加你贡献不了的会。这个建议我赞同一半。如果是想了解一下其他项目的进度或跟项目上的人加强联系,的确没必要去开会。第一种可以通过查看会议的摘要或者直接去找项目负责人1:1开会更有效率。第二种不如直接约个饭或去酒吧,可以更快了解同事增强联系。

    不赞同的原因是新人需要参加不同的会议来学习。比如初级工程师想了解如何做Planning,Drive项目,Lead会议,做Trade Off决定等,这些技能往往在不同的会议中都可以直观的从其他人的行为或大家的讨论中学到。而会后看会议摘要的学习效果就不是很好了。

    顺便说一句,我非常喜欢他说的这句话:It’s not rude to leave a meeting. But it’s rude to waste people’s time.

    3) Forget the chain of command

    这条建议是有事情需要讨论直接去找第一负责人,不要绕一圈通过你的Manager,找到对方的Manager, 再找到个人。这条应该算是常识了,因为大厂的Manager往往是来Support工程师的,一般问题工程师间都会直接进行沟通,除非到了“老死不相往来”的地步。

    4) Be clear, not clever

    这条建议给出的例子是开会时少使用比较晦涩或太专业的用语。我自己就有这个问题,平时开会经常会使用一些很熟的Acronym。开会前,应该在脑中过一下与会者的名单,看看如果有其他部门的同事就使用比较宽泛或通俗的概念。

    5) Ditch frequent meetings

    这条建议是把每周定期的会议取消。马斯克建议把应该会议专注与用来合作解决问题上,这点也很同意。的确一些每周定期的项目会议,时常没有什么大的更新,这时应该提前取消或者采用offline sync。

    但另一方面,我觉着工程师之间应该保留定期的1:1周会。大家可以通过这个机会来多了解一些你的同事,他们在做什么、想什么、有没有什么需要帮助的、也可以获取一些关于自己的反馈,看看有什么自己可以做的更好的地方。这样会使team成员间关系更紧密,彼此更加信任对方,从而更有效率的提高协作效率。

    6) Use common sense

    最后一条建议是不要闭着眼睛去服从公司的规矩。要了解制定规矩的原因,根据实际情况去判断。这个也应该算是常识了。

    这六条建议基本偏向如何提高工作中的会议、协作、沟通交流效率,还都挺实用的。