做了 6 年程序员,我学到的 10 条经验

保持一颗解决问题的心 按照我的观察,那些在工作中用技术取胜的人们共同点都在于他们能保持一颗解决问题的心。他们可以率先想到一种更优的手段解决存在的问题(一般是效率问题)。他们不是嗅觉特别灵敏或者技术特别强,而是当他们遇到了问题,不是把它作为抱怨的话题,而是开始思考这个问题为什么没人解决、应该怎么解决,然后把它实现出来。这种心态在职场上特别稀缺。 我在创业公司的时候做一个图文排版的 App, 设计师会设计一些模板,然后交给我来实现。当时我们有很多模板,为了测试这些模板实现在不同的

每个人都能用点正则表达式

有一个关于正则表达式的笑话是这么说的:我们遇到了一个问题,用正则表达式解决了,现在变成了两个问题。 这个笑话说明了正则表达式的复杂,有时还难以维护。如果我们刚接触一个现有的项目,里面出现了正则表达式,我们的第一反应肯定是头疼。因为正则表达式不易读,通常要读好几遍才能稍微弄懂他的意图。 包括我也一样,在很长一段时间里,我对正则表达式的态度是能不用就不用。直到几年前我读完了《精通正则表达式》这本书,我对正则表达式的态度发生了巨大的变化。 这本书的第一章的第一节名字是「解决实际问题

读《九宫格写作法》

倪爽 在 Twitter 推荐了这本书,对于喜欢写作的我来说很吸引,花了很短时间就把这本书读完了。在这里推荐给大家。这本书主要给认为写不出来文章的人提供一些指南,书的前半部分是方法论,后半部分是写作套路(或者说写作框架)。 九宫格指的是在写作之前,从文章的中心,可以扩散出 8 个方格,填写和这个中心有关的信息,型成一个写作九宫格。九宫格的作用是在写作前迫使你先对文章中心进行思考、提出问题,然后进行填充。是一种帮助你在写作前收集信息的辅助手段。 所以通俗地讲,九宫格写作法的核心

遗憾最小化框架 —— 如何做决定

对于我来说,我一直认为自己缺少做决策的能力。成年人的生活不像学生时代,所有的题目都有固定答案。所有的选择都不存在绝对的对和错,它只是在人的一生 checkout 了一个新的 branch. 我总是不知道应该如何做决定。 刚好看到了 Jeff Bezos 曾经谈到了自己是如何做决定的,他称之为 Regret Minimization Framwork (遗憾最小化框架) —— 他会想象自己到了 80 岁的时候,是否会认为不做这件事情会让自己遗憾。尽量让人生的遗憾数量最小化。即使

再谈辍学

我在退学的那一年写了一篇《你根本用不着退学》来告诫想退学的人慎重选择退学这种方式。今年是写完这篇博客的第五年,我想结合五年来作为一个辍学生遇到的经历,再谈谈退学。 我第一次感受到辍学给我带来的副作用是刚辍学不久的时候,曾经给一些「大厂」投过简历,在 HR 筛选简历的一轮就被筛选掉了。我当时对进「大厂」的心理预期本来就很低,所以这对我来说根本影响不了我的心情,被筛选掉反而是正常结果。我很幸运,阿里的其中一个部门鬼使神差地给我了一个机会,我最终顺利通过了面试。 我辍学后在别人眼里

开着特斯拉从广州到苏州的小记

由于工作变动的关系,我需要从广州搬到苏州。于是趁着这个机会体验了一下开纯电动车长途,是不是大家说的如此不堪。这次的旅途预料之外地非常顺利,在这里简单地记录一下过程和感受。 行程安排 广州到苏州的行驶距离大概是 1500 公里,理论上如果一直开,至少也需要十几个小时。研究了一下地图后,我把整个行程分成了 3 天: 第一天:离开广东(广州)到达江西 第二天:离开江西到达杭州 第三天:离开杭州到达苏州 其实第二天有足够的时候直接到达苏州,但是想在杭州和老朋友叙叙旧,所以安排在杭

Next.js 应用开发实践

最近写了一本篇幅很小的书,总结了这段时间写 Next.js 应用的一些「最佳实践」,相信你可以在一个多小时的阅读中得到非常大的启发。 欢迎阅读和购买:https://nextjs-in-action-cn.taonan.lu/

Xbox Series S 一个月使用感受

把这台 Xbox Series S 抱回家已经有一个月了,当时在淘宝搜索了现货,正好店家就在广州,直接把它自提回家。 这是一台欧版的机器,人民币 2700 入手。 开箱 箱子打开,主机比想像中要小得多: 然后开机。第一件事当然是开通 Xbox Game Pass 啦。一个月 79 港币,第一个月还免费,还是很划算的: 你可以在 https://www.xbox.com/zh-HK/xbox-game-pass 看到 Xbox Game Pass 的所有游戏。 外观

我给自己设立了每月 $20 的开源捐赠预算

Babel 官方最近发布了一篇博客 称 Babel 团队的 funding 已经不够了。一直以来我零碎地捐赠过一些开源项目和个人,在卖贴纸和 T 恤的时候也把大部分的利润捐赠给了 Vue. Babel 这件事让我有了固定每月捐赠一些开源项目的想法。 目前设定的是每月至少 $20 (约 130 多元人民币) 的预算,这样平均至少可以捐赠 4 个不同的项目。我可以在这个预算内根据我的技术栈灵活地选择我对哪些项目进行捐赠。 我个人会选择一些这样的项目进行捐赠: 我在做 side-

Svelte 的异步更新实现原理

在 我对 Svelte 的看法 一文里,我分析了 Svelte 在编译时实现 Reactive 的原理。在这篇文章,我将分析在 Svelte 里更新一个状态 (state) 值后更新到 UI 的这一过程。 阅读本文前,你应该至少: 读过 我对 Svelte 的看法 明白 JavaScript 中的 事件循环 机制 原理分析 为了保持简单,先从一个和 Svelte 无关的例子讲起: // 假设我们正在实现一个 counter, 只有一个 state,就是 count, 它是