为什么我又开始写博客了

写作是一种调试:把模糊的理解暴露出来,逐行修正。这是这个博客的第一篇文章,也顺便演示了 Markdown 的各种排版元素。

很多年前我有一个博客,后来它死在了「等我把内容想清楚再写」的完美主义上。

现在我想通了一件事:写作不是把想清楚的东西记下来,而是把没想清楚的东西暴露出来。 它更像调试——把脑子里那团模糊的理解 dump 成文字,然后逐行检查,看到哪一行突然卡住, 就知道自己的理解在哪里出了 bug。

所以这个博客的第一性原则是:能讲明白,才算真的懂。

这里会写什么

大概三类东西:

  1. 编程:语言特性、工程实践、源码阅读。偏 JavaScript/TypeScript 生态,但不设限。
  2. 计算机科学:算法、数据结构、操作系统、网络这些「不过时的东西」。
  3. 人工智能:机器学习基础、大模型的原理与应用,尤其是那些论文里一笔带过但实现时处处是坑的细节。

频率不承诺,深度有承诺:宁可一个月只写一篇想透了的,也不写三十篇转述新闻的。

顺便演示一下排版元素

既然是技术博客,正文里会频繁出现这些元素。第一篇就把它们都过一遍。

行内与块级代码

行内代码比如 const answer = 42,长一点的引用会用代码块,支持语法高亮、行高亮和一键复制:

ideal.ts
interface Post {
title: string;
content: string; // 想清楚的部分
confusion: string; // 还没想清楚的部分
}
function write(post: Post): Post {
// 写作的过程就是把 confusion 逐渐搬进 content
return { ...post, content: post.content + post.confusion, confusion: '' };
}

提示框

提示

写不下去的时候,先给 imaginary 的读者讲一遍,讲不下去的那一段就是要重读论文的那一段。

注意

本站所有观点都可能过时,包括这一条。技术文章的保质期比牛奶长不了太多。

表格

元素用途出现频率
代码块讲实现
图表讲结构
公式讲原理看心情

脚注与强调

脚注用来放那些「懂的人自然会笑,不懂的人不影响主线」的注释1, 而加粗只留给真正重要的句子。

这个博客用 Astro 构建,源码结构清晰,如果你想搭一个类似的,可以看「Astro 内容集合实战」这篇文章。

那就这样,第一篇写完了。调试通过。

Footnotes

  1. 比如这一条。

评论

评论功能已就位但尚未启用:在 src/config.tsgiscus 字段中填入 repo / repoId / category / categoryId(到 giscus.app 用公开 GitHub 仓库生成)后,评论框会自动出现在这里。