开源 – “这是最好的时代,这是最坏的时代”
今天一早,我给一位远在西安还从未谋面的程序员小邓发出了一份很不错的offer。一周前,他观看腾讯开发者大会的直播视频,听了我的演讲之后,加了我的微信,并主动告诉我,很想加入涛思数据。虽然他毕业的学校还有工作的经历,不是那么靓丽,但我一下看到了他简历里列的GitHub地址以及参与的开源项目,因此马上进GitHub浏览他的程序,发现程序挺漂亮,结构、层次都很清晰,代码可读性很强,更让我惊讶的是,用英文写的文档以及注释完全不输给我这个在美国留学工作10多年的海归。我立即让另外一个同事也去看一下他的代码,得出的结论是,这人很优秀,即使远程工作,也值得马上录用。因此我们马上视频交流,很快,我就定下了录用的决定。
如果没有GitHub,没法翻看他写的上万行代码以及文档,没法查看修改记录,我绝不会考虑录用一个连面都没有见过的小伙子,而且招聘时,还是会更倾向于我中国科大的师弟师妹,或有过其他名校就读和大厂工作经历的人。开源,改变了我的面试流程,改变了涛思数据,也改变了一个程序员的人生轨迹。
TDengine 在 GitHub 上的页面
开源给程序员提供了一个展现自己个人能力的绝好机会,特别是对于大厂、大系统的开发者。这个展现,能让大家更加客观地评价一个程序员的价值。长期以来,大家更容易相信在大厂工作过的,虽然他有可能从没贡献过核心代码,从没解决过重大技术问题,只是一个滥竽充数之辈;大家更倾向于相信名校毕业的,即使他早已停止学习,只是曾经高考分数不错;大家更容易相信35岁以下的人,不相信大龄程序员依然有很强的战斗力。开源的代码,能让大家抛弃对教育、年龄、性别、经验、肤色、地域、文化的偏见,看到一个程序员背后真正的价值,便于组建团队,便于协同作战。
开源让程序员的代码成为了作品,与画家的画、音乐家的曲子一样,可以被全球程序员欣赏、使用,并传承。对于闭源的软件而言,这是不可能的,大家看到的只是UI或API,无法让人看到程序本身,更无从欣赏。你在微软为Windows 操作系统开发的核心模块,无论设计得多么优雅,你在腾讯为微信后台设计的消息处理模块,无论高并发能力有多么强悍,都无法让人欣赏、惊叹。但开源之后,一切都变了。只要你的代码足够好,解决了重大问题,那一定会成为传世之作。即使有瑕疵,后来者也可以在你的基础上修改,但你的名字永远会镌刻在代码上,而不会被历史冲刷掉。
GitHub 上 tref.c 的一段源代码
对于初入茅庐的程序员而言,参与开源项目,更是一种学习的机会。不仅可以观摩、学习绝顶高手的代码,更可以参与其中,贡献一段代码。自己写的代码有问题,一定会被测试出来、被人指出毛病,甚至直接被人修改或抛弃。与大侠直接过招,相比闭门造车,相比自己摸索,成长的速度要快N倍。而且参与的方式有很多种,除直接贡献产品代码外,还可以贡献测试例、测试代码,贡献文档,贡献使用案例等。就象TDengine,测试代码的行数将会远超过产品本身的代码行数,而且对技术的要求一点都不亚于产品本身。我的第一行程序是1984年写下的,当时正读高中一年级,只能看到谭浩强编写的《BASIC语言程序》这本书,书里尽是一些简单得不能再简单的程序。如果当时就能像现在这样访问无数优秀的开源代码,对于一个如饥似渴的学生而言,那无疑找到了世界上最好的课本和老师。
这台Mac为TDengine贡献了4万多行代码
“这是最好的时代”,开源,让程序员的价值能更客观地展现,让程序员有了属于自己的作品,让程序员去追求极致,有动力去打磨作品,让其成为传世之作。对于真正的程序员而言,毫无疑问,这是最好的时代。
“这是最坏的时代”,开源,让滥竽充数的程序员无所遁形,能传承下去的一定是精美的作品,不再会有劣币驱逐良币之说。对于靠拍、靠混,依赖炫酷的PPT和报告升迁的程序员而言,毋庸置疑,这是最坏的时代。
无论年龄,无论学历,无论是在BAT还是在startup工作, 只要你热爱编程,就一定要参与到开源的浪潮中。无论你是全职加入涛思数据这样的开源软件公司,还是作为社区贡献者参与一个开源项目,只要持续努力,你一定会给世界留下一个印迹,给人类留下一幅作品。
陶建辉
2020年12月27日于北京望京