共计 4487 个字符,预计需要花费 12 分钟才能阅读完成。
原文首发于:https://mp.weixin.qq.com/s/iT…
两周前,涛思数据正式发表实现 B 轮 4700 万美元融资。一个 40 人的的团队,四年的工夫,前后共取得了来自红杉、经纬、GGV、明势等近 7000 万美元的投资,估值已超 3 亿美元,人均估值超 5000 万 RMB。音讯颁布后,迎来很多惊叹。我本人,一个 53 岁的程序员,更是感慨万分。我本已到游山玩水的年龄,却凭本人 2017 年初写的一万八千多行程序,开启了第三次守业之旅,而且继续取得资本的青眼,得以持续折腾,追寻本人的幻想。周末得闲,总结一下本人的心路历程,与大家分享。
一个人,两个月,一万八千行代码
2016 年,我看了很多个物联网、智能硬件的我的项目,发现大家都在用通用的大数据平台解决物联网的数据,效率不高,运维简单,且广泛埋怨大数据技术人才难找,尤其是很多传统企业,想做数字化转型,但因为待遇、治理形式等问题,找大数据技术人才更是难上加难。
作为一个研发人员,看到这么多通用痛点,我第一反馈就是应该用技术的形式来解决这些问题。剖析了物联网数据特点后(对于物联网数据特点,详见我之前的文章:我为何要开发一个专用的物联网大数据平台,还开源它?),我感觉能够充分利用这些特点来设计和实现一个新的存储和计算引擎,开发一个 All in One 的物联网专用大数据平台,这样能够大幅升高软件系统设计和保护的复杂度,晋升数据处理效率,升高总领有老本。
思考到联网设施的数量在高速增长,我预计今后世界上 90% 以上的数据将全副来自物联网,这将是一个微小的市场,须要一个专用、高效的大数据平台来解决,于是我判断,这是一极佳的守业机会。
有了这个想法后,我天然马上想到组建团队来做,本人仅定方向、参加整体设计。但认真思考发现这么做很不靠谱,因为大数据平台是底层软件,抛开翻新的设计不说,工程实现的难度很大,对编程的要求极其之高,不是个别程序员能胜任的。作为一名守业老兵,我深刻理解对于物联网大数据平台这样的创业项目而言,技术是外围,创始人必须深度参加到产品的研发,否则肯定失控。因而我决定本人一个人开干,先把 Prototype 做进去,验证本人“一个数据采集点一张表”和“超级表”的翻新设计是否能完胜市场现有的产品。
我人生的第一行程序是 1984 年写下的,过后念高一,因为邓小平的一句“电脑要从娃娃抓起”,我就读的长沙县一中幸运地失去了团中央赠送的 6 台 Laser 310,从此让我与编程结下了近 40 年的缘分。起初无论是在中国科大念书,到美国留学,在美国 Motorola, 3Com 等公司工作,都写了太多的代码。但从 2008 年我本人守业起,尽管产品的外围代码都是本人写的,比方和信的推送引擎、高兴妈咪的胎心计算,但我绝大部分工夫都不在一线作战,因而曾经很难说本人是研发高手。
但近 40 年的“码龄”教训和继续守业的我的项目经验让我深信,所有不是问题。几天工夫,就把本人以前相熟的 vim, cscope, gdb, valgrind 这些工具再捡起来。本想用时尚的 Go 语言来开发,但一想世界上最有名的数据库都是 C 语言写的,本人又是一个久经考验的 C 语言程序员,因而最初还是决定用 C 语言来开发。
2016 年 12 月底,我正式开始上阵写代码。继续两个月工夫,每天均匀工作 12 个小时,写下了一万八千行代码。通过根本的比照测试,证实了我翻新的设计能完胜市场现有的产品。
53 岁,迎来研发状态的巅峰
产品原型通过验证后,加上对物联网将来广大市场的信念,我顺利取得了明势资本、蛮子基金的天使投资,开始组建团队。
我认为底层软件开发,人多没用,而且守业公司更须要十倍程序员,因而对选人极其严格。团队规模始终很小,最开始的一年半,包含我本人,胜亮、洪泽两位科大师弟,计算所毕业的廖博士,就 4 个程序员,披星戴月的写程序、debug,外加两度守业老搭档王婧负责所有非研发的工作。
2018 年 8 月,涛思数据公布 TDengine 的第一个正式商用版本,确定产品定位为物联网 All in One 的大数据平台。始终到 2019 年 7 月,涛思团队也才 7 集体,其中 6 个都是程序员。
当初回过头来看,TDengine 的技术开发难度,远超我当初的预期。尽管产品易用性不错,性能也卓越超群,但稳定性问题始终困扰咱们。抱着产品不稳固公司就要关门的信条,抱着死啃技术硬骨头的信心,我和团队把 TDengine 重构了屡次。特地是 2.0 版,齐全颠覆了最开始的代码和设计,重写各个模块、加大测试力度,一下将稳定性进步到了产品能商业化应用的水平。
因为总要解决各种辣手的技术难题,比方内存泄露、内存 overwrite 等等,我本人的技术水平和实操能力也得以一直晋升。为了齐全系统地解决多线程异步调用场景下资源的生命周期治理问题,我写下了 tref.c 模块,让零碎稳定性晋升了一个量级。2020 年整个疫情期间,我为 TDengine 就递交了近 200 个 PR,解了太多的 BUG,而且写下多篇外部技术博客,分析各种具体技术问题。
就这样,我在半百的年龄,不是在美国,而是在中国迎来了本人技术水平的巅峰。所以,程序员哪儿有什么 35 岁的魔咒,你只有想写、爱写、继续写,巅峰就在下一站。
开源引来了巨变
好产品,还须要好的推广。怎么让物联网、车联网、工业互联网等行业尽快用上 TDengine,思考了很长时间,最初咱们决定将外围代码齐全开源。
在局促不安的情绪中,2019 年 7 月,涛思数据发表将 TDengine 单机版正式开源。2020 年 8 月,咱们又将集群版开源。
开源的成果,远超预期。在 GitHub 寰球趋势排行榜上,TDengine 曾多日雄踞榜首。当初 TDengine 在 GitHub 上的 star 数曾经超过 15K,fork 数超过 3800,每天 clone 代码的人数超过 1000,每天新增的 TDengine 实例数超过 200。
每天看到这些数字,我都是兴奋不已,因为阐明本人写的程序失去了大家的认可,没日没夜的 debug 没有徒劳。更令我开心的是,在李广、江燚销售团队的致力下,尽管代码开源,销售收入却实现了成倍增长。这让咱们得以证实商业的闭环,得以证实 Open Core 的商业模式在中国是可行的。
因为开源的胜利,咱们迅速取得资本的关注。2020 年 1 月,涛思数据取得 GGV 纪源资本、红杉中国种子基金的 Pre- A 轮投资;2020 年 4 月,又取得 GGV、红杉中国的 A 轮投资;两周前,又取得经纬中国、红杉中国、指数资本的 4700 万美元 B 轮融资;前后融资总额靠近 7000 万美元。
因为开源的胜利,咱们也取得了技术大牛们的青眼。多年好友,远在硅谷却始终在帮涛思数据出谋划策的 Steven 终于全职退出;在 360 始终做数据库研发的怡豪同学退出了,在华为、Oracle 做研发的潘魏同学退出了;始终在技术守业的科大师弟明磊、伟灿同学退出了,在网易做底层存储研发的李创同学退出了,还有很多很多。
咱们当初的 5 人团队终于成长为 40 多人的团队。而且除研发外,终于有了专职的人事和专职的财务。我前两次守业的搭档肖波同学退出了,组建起业余的交付团队。
程序员的黄金时代
2000 年的时候,就有很多人说 IT 曾经到了高峰,最好不要搞软件开发了。到当初,20 年过来,中国 IT 从业人员预计是 2000 年的 10 倍。大家可能设想不到,福特汽车一半以上的员工是软件工程师,苏宁的软件开发人员曾经超过一万,安全的软件研发人员更是超过万人,软件成为各个企业的增长引擎。而且随着数字化转型的深刻,软件研发人员的规模还将进一步扩充。
最令人激动的是开源,它让程序员步入了黄金时代。开源让程序员的代码成为了作品,与画家的画一样,能够被寰球程序员观赏、应用,并传承。对于闭源的软件而言,这是不可能的。你在 Oracle 开发的数据库外围模块,无论设计得如许优雅,你在阿里为电商后盾设计的交易解决模块,无论高并发能力有如许强悍,都无奈让人观赏、惊叹。但开源之后,所有都变了。只有你的代码足够好,解决了重大问题,那肯定会成为传世之作。即便有瑕疵,后来者也能够在你的根底上批改,但你的名字永远会镌刻在代码上,而不会被历史所吞没。
开源,会让程序员对本人的代码品质产生极致的谋求。在 2019 年 7 月决定将 TDengine 开源之前,涛思数据团队花了好几个月的工夫整顿代码,编写文档,目标就是不想让它过于难看,被人诟病。不开源的话,咱们基本没有这个能源去做,因为用户是看不见的。在 2019 年底启动 TDengine 2.0 的开发,更是如此,就是想让 TDengine 的设计与代码更加优雅,构造更加清晰,让其余程序员看的时候,能享受到一种高兴和美感。我也曾向非研发共事展现过 TDengine 的代码,毫无技术背景的他们,居然也能看懂一段代码的大抵逻辑。这所有都得益于开源,TDengine 的每一行代码都是抱着“这是我本人的作品”“这是要给寰球开发者展现”的想法敲下的。
如果你去 GitHub 下载甚至 fork 咱们 TDengine 代码,就是对咱们一心想打造的粗劣作品的观赏,就是对咱们开源的最大反对。
开源,给程序员提供了一个展示本人集体能力的绝好机会。无论你毕业于清华姚班,还是二本学校,无论你是 90 后,还是像我这样的 60 后,无论你是男生还是女生,无论你是科班计算机专业出身,还是我这天体物理业余毕业,无论你是在东半球,还是在西半球,“show me the code”。代码是你实力的最好证实。
开源的代码,能让大家摈弃偏见,看到一个程序员背地真正的价值。
53 岁程序员能做到的,你也能!
我 49 岁创立涛思数据,独自一人开发出 TDengine 的第一个版本,随后带着团队一直重构迭代产品。往年 53 岁,又缓缓来到研发第一线,聚焦到经营和治理上,但我置信,只有有须要,我随时又能够重返战场,与小伙伴们一道 debug,解决技术难题。而且我深信,即便我到了 80 岁,只有还能动弹,也仍然能写程序。
在中国,普遍认为 35 岁的程序员不再有竞争力,须要做技术治理或转行。细看软件研发,尽管利用在不停地扭转,各种新的架构层出不穷,程序员需天天学习新的常识,但其实根本的办法和原理是少有扭转的。比方大数据的解决,不外乎是 Divide and Conquer 的一种具体实现,分区、分片技术是很天然的事件,高牢靠、高可用,对于我这个通信行业研发老兵而言,也就是在新的场景下,从新炒一次饭而已,没有什么新意。对于时序数据的解决,与音讯队列的解决没有实质的不同,只是减少了计算剖析的局部。
人类在科学技术的基本原理和根本办法的冲破上,其实始终是很慢的。程序员只有把握了 IT 技术的基本原理和办法,爱写、想写程序,有挽起袖子大干一场的信心,年龄不再是问题,你的每行代码都会失去认可,失去回报。
儿子青睐击剑,教练 Miller 说:“Scores don’t determine if you lose or not, you do. Throwing down your sword and mask is true defeat”。作为一个程序员,也是一样,年龄大小、技能高下没那么重要,但只有当你远离键盘不再 Coding 战斗时,你才是真的被世界淘汰了。
陶建辉
2021 年 6 月 6 日于北京望京