ChanTalk 是我自己的博客,一直以来我的信念都是「记录思考,分享创意」如此纯粹,虽然要求自己至少每个月更新两篇,但遇到事情比较多的时候,就真的没时间思考,更没时间更新博客。

恰逢完成了最近工作室的项目,想要静下心来写一写与开发相关的文章。然而似乎一直以来 ChanTalk 的内容都比较偏向产品和攻略,程序员的事情只写过那么一两篇。正因如此,我便困惑在「程序员应该怎么样写博客」这个问题上。

作为一名计算机专业的学生,身边也是离不开一票票的程序员。在大多数会写博客的程序员看来,就像是少年时候写作文「引经据典」的加分项一样,「写博客」就是自己以后找工作时候的加分项。在这种程序员眼里,写博客成为一种体力活,他们在文章里只分享「干货」,阐述某个工具、某些用法的机械性理解。但是他们并没有意识到,这类文章在 Google 一搜遍地都是,缺乏理解的搬砖,都是利用博客的幌子在耍流氓。

程序员要写怎么样的博客

程序员写干货应该分享比较「湿」的干货。什么叫比较「湿」的干货?一,程序员写干货,应该着眼更新鲜、更前沿的开发技巧和咨询上;二,程序员写干货,应该在更深的地带去挖掘开发中的乐趣,要把事情讲明白,不要总是有着一股欲言又止的暧昧。王巍老师的博客(OneV's Den)就是「湿货」的代表。在 WWDC 之后,王老师都会很及时地讲解 WWDC 上 iOS、macOS 等开发的更新,在博客中也能看到他在函数式链式编程的看法和实践。这就是很「湿」的干货,它是有价值并且值得被保存的。

程序员写博客不应该把眼光局限在开发的世界中。一些程序员在写文章还保留着在写代码时候的职业病和惯性,聊来聊去依然是代码和架构。程序员写文章也可以写的天真烂漫。我开始能够被称为「程序员」的时候,大概就是我开始关注池建强老师的时候。池老师的公众号叫做「MacTalk」,从名字上就能发现我受到不少他的影响。池老师的文章,从 Mac 的使用聊到程序员的职业生涯,从自己聊到朋友,从开发聊到未来,喜欢池老师的发散性思维,也是在池老师的影响下,我才知道了 Airbnb 的 Angela 老师,她从程序媛聊到工程师的成长,从代码能力聊到领导力。程序员写博客,不应该把博客当作自己技术能力的延伸,而应该让博客成为自己综合实力的发展。

Kevin(Kevin 的 blog)是一位我十分敬仰的 iOS 开发者。他不仅是一名开发者,也是生活的体验者、产品的审视者。看他的博客,也不是纯粹的技术能力的体现,更多的是他在开发和审视中的思考。正如他在对 Dash 的开源代码的文章透露出来的思想一样,我们程序员要尊重技术,但也要参透产品本质。

所以我想说什么

记得我第一次和产品老总开完会,总结第一个 Demo 的改进点之后,那天晚上我重新比对需求和项目工程,当所有需求汇集在一起时,发现工程其实是要推倒重来。这个项目的第一阶段目标是完成一个演示版本,在月末的展会中展示,当时的我困惑在这个短期项目的需求和未来真正可上线的版本存在着很多不同点,困惑在如果要真正上线我可能也要重新做很多工作。如果死守技术,不去理解产品的目的与本质,那么可能会制造出更多没有价值的代码。

写这篇文章的时候,觉得标题起得有点大了,看似一个乳臭未干的毛孩趾高气昂地准备教训正在写博客的前辈们。我不否认存在即合理,不否定纯技术流对于像我一样在成长中的程序小猴子有着很多学习参考作用。但其实写这篇文章的目的,是为了告诉我自己想成为怎么样的开发者,我会为了什么发声,毕竟我有我自己的独木桥。

曾经和一个对机器学习感兴趣的同学聊天,我说虽然我们都是开发者,坐在相似的岗位打出相似的文字,却有着那么不一样的道路。他感概也曾想要往做产品的方向发展,可是最后却跟着内心慢慢地走到了研究机器学习的道路上。

是啊,一切唯心而已。