不要纠结,Just do it first!

作为一个程序员,多多少少都有点强迫症:

  • 写文章非markdown不用;
  • 写代码必须要没有冗余;
  • 建数据表的时候不要冗余字段;

可当我把这套“工程师级”完美主义标准套在实际做事情时,基本就会卡在开头了。

​比如想写一篇技术分享。先是纠结选题,觉得这个不够新颖,那个不够深度,在知乎、GitHub Trending上刷了半天,选题列表是长了,但启动键在哪?接着构思结构,非要弄出一个逻辑完美、层层递进、覆盖所有知识点的脑图,结果越画越复杂,把自己都绕晕了。最后准备素材,非得找到最权威的参考资料、最清晰的配图、最恰当的示例代码库……时间像沙漏一样流走,文档里依然空空如也,只有光标在无情地闪烁。这感觉,是不是像在写一个永远达不到 break条件的 while循环?

更别提那些工具洁癖带来的无谓消耗了:

  • 写作用 Typora 还是 VS Code?哪个插件更优雅?
  • 配图选 Unsplash 还是 Pexels?版权声明怎么写才规范?
  • 甚至研究字体:思源宋体在微信里的渲染效果真的比霞鹜文楷好吗?衬线体是不是比无衬线体更专业?
  • 想着要不要自己搭个图床,就为了那可能快0.1秒的加载速度?

“Just do it first!” 不是鸡汤,是工程智慧

​看看 Linus Torvalds 大神是怎么做的。Git 的初版提交(那个著名的 e83c51633)是什么样?

可以看看这篇文章:https://zhuanlan.zhihu.com/p/259583675

  • .gitignore这种基础功能都不存在。但它精准地解决了当时最核心、最迫切的痛点:​快速、分布式地管理 Linux 内核源代码,替代不再可用的 BitKeeper。​​ 那些“完美”的功能,都是在后续成千上万次迭代中逐步完善的。
  • 没有成熟的分支管理模型。
  • 没有 staging area(暂存区) 的概念。

但是有了第一次,再加上后面的不断完善,现在的git已经很完善了。

所以,我们不需要一个完美的开始。我们需要的可能只是“开始”,仅此而已。