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

推荐订阅源

F
Full Disclosure
Stack Overflow Blog
Stack Overflow Blog
H
Help Net Security
Microsoft Azure Blog
Microsoft Azure Blog
The GitHub Blog
The GitHub Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Recorded Future
Recorded Future
Y
Y Combinator Blog
Cloudbric
Cloudbric
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
S
Schneier on Security
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
C
Cybersecurity and Infrastructure Security Agency CISA
TaoSecurity Blog
TaoSecurity Blog
Security Latest
Security Latest
N
News and Events Feed by Topic
Hacker News - Newest:
Hacker News - Newest: "LLM"
D
DataBreaches.Net
Security Archives - TechRepublic
Security Archives - TechRepublic
H
Hacker News: Front Page
C
Cisco Blogs
L
LangChain Blog
aimingoo的专栏
aimingoo的专栏
Recent Commits to openclaw:main
Recent Commits to openclaw:main
V
Vulnerabilities – Threatpost
L
LINUX DO - 最新话题
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Google Online Security Blog
Google Online Security Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
A
About on SuperTechFans
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Jina AI
Jina AI
C
CXSECURITY Database RSS Feed - CXSecurity.com
Schneier on Security
Schneier on Security
T
Tenable Blog
N
News and Events Feed by Topic
W
WeLiveSecurity
有赞技术团队
有赞技术团队
AI
AI
爱范儿
爱范儿
大猫的无限游戏
大猫的无限游戏
Latest news
Latest news
T
The Blog of Author Tim Ferriss
S
Security Affairs
Know Your Adversary
Know Your Adversary
Simon Willison's Weblog
Simon Willison's Weblog
G
GRAHAM CLULEY
Google DeepMind News
Google DeepMind News
The Cloudflare 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 年将这些理论在生活中真正应用起来,
让她能更健康、更快乐地长大。