前一阵子,整个圈子都在转一篇文章,更确切来说是转一段演讲的内容。大概讲的是:我是一个平庸的程序员,且同行里的大部分人也一样。平庸不是为了辩驳,而应该更好地去学习。把高手神化对于整个编程界并没有多大帮助,甚至可能有害。而我们应该心有戚戚,不要沉迷于鄙视链,不要怀疑自己是不是真正的程序员,能做的是用心和责任去把事情做起来。
这个文章(演讲)会得到广泛的传播,很大程度上是因为说出这些话的,竟然是业界大神,知名 Python 框架 Django 的作者之一。第一次看到这篇文章是一个早上,同事转的,看完十分触动,原因可能是,作为全学院(法学)唯一一个写代码的不务正业学生,从来没人比较,只能靠阅读加不断地编程(写 Wordpress 皮肤)来练习,唯一希望是把自己变成一个 60 分的网站开发者 —— 服务器运维、后端程序运行、前端代码、设计、网站运营,或者简单来说 —— 站长,又或者美曰其名—— 全栈工程师。可我却没有转这篇文章,因为我从来没希望自己是一个平庸的程序员,也不希望以平庸之名来开脱不努力,真正应该做的是定义牛逼程序员的角色,心有戚戚地去追求。
这些年不少人问我,你觉谁更牛逼。有幸呆过中国最好的前端团队,也有幸呆过最有代码追求的团队,更有幸的是创建一个团队。参加、组织过大大小小的会议,遇到了或谦逊或自负的站在业界某个领域最顶界的程序员。写博客更是认识了多个领域中的牛人。这是一个遇见的过程。这个定义出来,伴随着一个思考过程。古人有云:修身,齐家、平天下。把技术练到家,不担心接到任务却完不成是修身;把团队带起来,以事聚人,用集体的力量去实现一个平台,搭建一种信仰的架构方式,是齐家;把实践的、理论的,通过个人、团队、甚至大组织的影响力去影响整个社区,打下某个领域的天地,这是平天下。而我也总是把这些话通过大同小异的表达,去回答这些人的提问。
说了这么多,又是引用业务现象级的文章,又是感受,又是定义,为何?想写这个标题很久以,因为经常听到有人用形容词而不是实际来内容来评断某些人的好坏,而这其实这并不是好现象,今天又看到了一个开玩笑式的吐槽。既然是开玩笑,刚好睡醒有精神,不如来叨念两句。
其实我不知道 po 主说的是谁,不过我心里想到的是阮一峰。我和阮先生从没会面,甚至都不是评论/点赞之交,却看过他不少文章,他翻译过的《黑客与画家》,他偶尔发的新闻式微博,也听过不少人说到「JavaScript 继承」是从他的博客学起的。最近团队推广 ES6,看的 ES6 入门 就是从他的书起的,写的相当棒。之前听到入职玉伯的团队,就觉得相当佩服竟然能招到他。
他总是写,写出来传播到读者,基础的高阶的,深入浅出,文笔正好。有争议,有错误,这些错误如同向广东人说「冬天来了,燕子往南飞」一样,很正常,理解就好。也有同事不客气直接说,难道他写的文章不是很烂吗?而在我心中,他所在的级别是平天下,不仅仅是写,而是把「所知所得」变成「所行」—— 告诉社区。这,就是我定义中,牛逼程序员的一种,值得让人尊敬的一种。
其余的也没有什么好多说。再回到文章开头对 Jacob 演讲的一句总结 —— 我们应该心有戚戚,不要沉迷于鄙视链,不要怀疑自己是不是真正的程序员,能做的是用心和责任去把事情做起来。
如果你是一种牛逼的程序员,那么 —— 把工作做到最好,没人比你更好,而不是完成一个及格的任务;把代码传播出去,填满你的 GitHub 主页,去造轮子,去写满你的博客;把思考带给社区,用微博、用业界大会,让今天最顶尖的技术和实践,成为明天最基础的入门。那么,你是真正牛逼的程序员