惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
B
Blog RSS Feed
W
WeLiveSecurity
I
InfoQ
L
Lohrmann on Cybersecurity
Simon Willison's Weblog
Simon Willison's Weblog
腾讯CDC
S
Schneier on Security
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Threat Research - Cisco Blogs
P
Palo Alto Networks Blog
Attack and Defense Labs
Attack and Defense Labs
I
Intezer
Recent Commits to openclaw:main
Recent Commits to openclaw:main
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Last Week in AI
Last Week in AI
WordPress大学
WordPress大学
Cisco Talos Blog
Cisco Talos Blog
T
The Exploit Database - CXSecurity.com
S
Securelist
T
Tailwind CSS Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
美团技术团队
Stack Overflow Blog
Stack Overflow Blog
T
Tor Project blog
博客园 - 叶小钗
Engineering at Meta
Engineering at Meta
Microsoft Security Blog
Microsoft Security Blog
Project Zero
Project Zero
C
Cybersecurity and Infrastructure Security Agency CISA
Apple Machine Learning Research
Apple Machine Learning Research
V
Visual Studio Blog
Know Your Adversary
Know Your Adversary
T
The Blog of Author Tim Ferriss
N
News and Events Feed by Topic
小众软件
小众软件
G
Google Developers Blog
F
Full Disclosure
O
OpenAI News
The Last Watchdog
The Last Watchdog
G
GRAHAM CLULEY
TaoSecurity Blog
TaoSecurity Blog
U
Unit 42
Jina AI
Jina AI
S
SegmentFault 最新的问题
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
P
Proofpoint News Feed
Y
Y Combinator Blog
N
News and Events Feed by Topic
K
Kaspersky official blog

Yiming Chen

How "let it fail" leads to simpler code - Yiming Chen How to Speak by Patrick Winston - Yiming Chen Stop using Behaviour to define interfaces, use Protocol! - Yiming Chen What I learned from implementing Combinators in 3 Elixir patterns - Yiming Chen Clippings of 2020 June & July - Yiming Chen CSSKatas: A Better Way to Sharpen Your CSS Skills - Yiming Chen Making Audit Logs on Hex.pm Public - Yiming Chen Clippings of 2020 May - Yiming Chen Book Review: The Goal - A Process of Ongoing Improvement - Yiming Chen
我的 2021 - Yiming Chen
Yiming Chen · 2022-01-01 · via Yiming Chen

2021 年,是我 27 年人生中过得最像过山车的一年。

27 岁,马上就要 30 而立了,体检结果却出了好几盏黄灯,又体会到了上有老下有小的感觉,花在自己身上的钱也越来越少了。
奶茶渐渐不喝了,咖啡也只带自带杯去 Manner 喝 10 元的美式。
然而两天一次的团操健身课也只能减缓体重和体脂率的增长。
今年终于等到了 120hz 屏幕的 iPhone 13 Pro,这次更新之后估计要再用上个五六年才会再换吧。
年初心心念念的 PS5,在女儿出生前一直没去抢购,女儿出生后更是没钱买 & 没空、没心思玩了。

是的,在这一年,我的女儿出生了。
从一开始的早产,心脏、听力检查,到后来的吃奶、睡觉,悬着的心就没有安稳过。
在上海的小家里也迅速堆满了奶粉、尿布、玩具、婴儿车。
终于也体会到家里有个🐻孩子的感觉。
这孩子有多🐻呢?
去年的我在动车上看到别的🐻孩子哭闹,都会眉头一皱,默默戴上降噪耳机;
而现在我坐在动车上,听到别的小孩哭闹,心里想的却是「呵,这哭声也不过如此嘛」。
万幸的是这个🐻孩子现在长得还不错,再多的付出也算是值得了。

另一方面,2021 年是我工作上最顺利的一年。
加入 tubi 让我能跟一帮非常优秀的同事一起工作。
我们团队有善解人意、身先士卒的老板,有熟悉 Haskell & Rust & 函数式编程的大牛,有和我一样有 Ruby 背景的美国同事,还有其他靠谱的工程师。
即使是远程在家工作,跟他们合作起来也非常愉快。
可以说 tubi 是我工作以来体验最好的公司、团队,我也很高兴能代表公司去领了「2021亚洲最佳职场 最佳实践奖」
(我们依然在持续招聘中,欢迎联系我内推~)

具体到工作内容上,逐渐开始接手 scope 更大的项目。
接着 2019 年 Growing a Result-Driven Mindset 的变化,时刻提醒着自己这个项目想要的结果是什么,这个功能想要的效果是什么,这段代码想要的行为是什么。

体现到自己写的测试上,慢慢从单元测试往功能测试靠拢了:
不再追求每个模块、每个函数都有专门的单元测试;
只要有更高层次的功能测试,覆盖到不同的需求情形就可以了。
我现在对「测试」的理解是一段写给未来的脚本,这脚本要验证的是我们不希望改变的行为(除非需求本身发生改变)。
好的测试能在我们更改了这些行为后及时提醒我们,同时又不阻止我们重构代码的设计。

体现到 code review 上,慢慢地降低了自己的要求:
不再要求最终实现和自己的想法一致;
只要有足够的测试,覆盖了不同的情形,同时又不会妨碍以后可能的重构,那就足够了。
具体怎么实现的,只要不是过于复杂,都没关系。

在面试上,似乎要提醒自己更关心结果一些。
能够写出测试的候选人少之又少,更不用说能用 TDD 的了。
经过几次挫败感之后,终于想通了这点:
面试的目的也不是要找和自己完全一样的队友;
其实最关键的还是要能定义问题,讨论确定方案,并能快速地验证自己的方案是否解决了问题。
有一个候选人就用 Emacs + tmux + iex REPL 运行自己的代码,没有 TDD 的形,却有 TDD 的神,让我大开眼界。
而他在加入我们团队后也确实表现得很好。

在项目里,做完设计之后,还是不放心把这个设计全权交由别人实现。
(就像不放心把女儿交给别人带一样)
虽然不放心,可接下来还是得慢慢放手了,空出更多时间去做比写代码更重要的事情。

之前一直觉得自己在工作里没有用掉自己的全力,毕竟读了那么多代码设计、项目管理、团队管理相关的书,自觉理论知识非常丰富。
可真要跑起来一个小项目,也不是一件简单的事情。

  • 协调外部合作团队的需求变更、时间变更
  • 介绍需求、方案给内部团队
  • 报告项目进度
  • 管理项目需求的优先级

这些事情做起来都没书上说得那么简单。
但也不是说读书无用。
也要多亏了之前读过这些书,才算都做好了理论知识上的准备,只要把理论付诸于行动就可以了。
纸上得来终觉浅,绝知此事要躬行。

站在 30 岁的门口,我经常在洗澡的时候思考要怎么「超越今生」。
因为之前看罗翔老师的视频,有一句话让我印象深刻:

一个人的成长就是要寻找到一个能够超越有限人生的经历,
因为今生活着的唯一目的就是超越今生。

30 岁,幸运的话,我的今生也已经过去了 1/3 的时间了。
如果要在事业上超越今生的话,似乎也只剩另外的 30 年。
这一年也慢慢脱离了之前不知道做什么项目的状态,开始有了更多想法。
甚至想法太多,感觉自己分身乏术,恨不得有更多时间、精力能投入到 side projects 上去。

更重要的还是要能将想法落地:

  • CSSKatas 在 2020 年底中断了半年,还好在女儿出生后又重新拾了起来。
    现在慢慢地要加更多 Kata & Track,支持 Tailwind CSS v3。
    (感谢后来加入的 co-maintainer @goofansu
  • liveorg
    受到 elixir-nx/livebook 启发的项目,希望能用 phoenix_liveview 将自己的 org mode 文件都管理起来。
    目标是和 org-mode in emacs 互补,覆盖到 emacs 无法运行的场景(mobile, server side)
    如果有幸的话,能把 organizing notes as a tree 这种思想推广出去就更好了。
    (一直觉得 roam research 这种图状的知识结构还是过于复杂了,简化为树形的话更符合我的习惯。)

除了事业/项目,阅读也是超越今生的一个方式。
在 2021 年里读的最好的故事是 Andy Weir 的 Project Hail Mary,基本上一气呵成地读完了故事的后半段。
无论是科学知识的介绍、故事悬念,都是我读过的科幻小说里数一数二的了。

另外,被讨厌的勇气 也让我连起了更多的点:

  • 孩子:挑战 里的 权利斗争
  • The Pragmatic Programmer (20th anniversary ver.) 里提到的 格尔迪奥斯绳结
  • Nonviolent Communication 里提到的 不批评也不表扬 基于自我感受和实际事例出发的鼓励
  • 课题分离 和 编程里的 decouping
  • 此时此刻的刹那connecting the dots
  • 勇气 和 数码宝贝为什么是太一(勇气勋章)作为主角
  • 背叛是他人的课题 和一众王道日漫的主角

当然,除了项目、阅读之外,要超越今生也要教育好自己的女儿。
虽然自己读了一堆如何沟通的书、 被讨厌的勇气孩子:挑战,但离实际应用还有不小的距离。
希望自己能在 2022 年将这些理论在生活中真正应用起来,
让她能更健康、更快乐地长大。