卷首语:专访“MySQL 之父”:要拥有一份能做一辈子的开发工作,需要给自己积累名望
“热爱”,是贯穿于“MySQL 之父” Monty 过往 40 年编程人生的关键词。
60 岁的 Monty 现在仍在写代码,每周保持 60 个小时的高工作强度。他说,等到 80 岁时,才会考虑将工作缩短到 35 小时。编程这事儿,他还要干一辈子。
二十年磨一剑
InfoQ:您在 34 岁时开发出了 MySQL。从接触编程到开发出 MySQL,这段时间可真不短,您都做了哪些工作?
Monty:我从 18 岁的时候就开始编写 MySQL 的最早一批代码了,这部分代码主要是 MySQL 内存控制方面的,所以最早的开发工作可以追溯到 1982 年左右。
后来的开发工作都是以之前的成果为基础。在此期间,我也开发过不少硬件驱动程序,设计了一款不错的处理器,还做过很多游戏。
InfoQ:这么长的开发历程,是什么让您一直坚持了下来?
Monty:我想,是热爱。我喜欢做开发,我特别喜欢解决问题的感觉,特别是在开发 MySQL 和 MariaDB 的过程中。而且,我参与了开源,帮助很多人走向成功。我觉得这一切都能让人始终保持热情。
InfoQ:从您写下第一行代码到开发出 MySQL,花费了近二十年时间。但目前市场上也有不少企业投入过十年甚至十五年来开发软件,但最终成果从来没能真正流行起来。你怎么看待这样的现实?
Monty:我确实是用了快二十年才开发出 MySQL,但当时我没有想到未来这个软件会发展成什么样子。我将我的软件卖给了北欧最大的一家电脑公司,但后来,我的软件成了整个平台上最受欢迎的产品。
你提到的这种情况也的确存在,很多公司耗时耗力,最终却一无所获。MySQL 的成功是与时代背景分不开的。当时互联网已经得到广泛认可,每个人都需要这样的数据库,用它创建互联网所需要的数据。当时那些技术巨头还不看好互联网,所以这是个有待开发的蓝海市场。
其实只要意识到需求的存在,其他的就都好办了,所以我从 94 年开始正式编写 MySQL。最终成果的发布大概是在 95 年末,也就是说,我们用了短短两年就开发出了 MySQL 的第一个版本,成为当时的新兴支撑性产品。
InfoQ:技术圈内,您被誉为“编程天才”,您怎么看待这样的称呼?
Monty:我觉得差不多,我在编程方面确实有点小天赋。
InfoQ:我想不只是编程这一个领域吧,您在创业方面也很成功啊。
Monty:嗯,我在企业家、开源倡导者、程序员和架构师几个角色上表现得都还可以。
InfoQ:您是否会认为,如果一个人想在某个领域取得卓越的成就,天赋是不是比努力更重要?
Monty:那是肯定的。毕竟在编程行业,一个优秀的程序员要胜过十个普通的程序员。这种优秀,源自天赋、努力工作,更源自想要了解一切的学习精神。
所以在前二十年里,我每天基本上就是学习计算机、学习硬件、学习如何高效编程,学习怎么让计算机发挥出一切性能。有了这样的底子,我才能真正开始做自己的事。
转管理,不是程序员的尽头
InfoQ:从 MySQL 到 MariaDB,您已经证明了自己是位成功的企业家。但不是所有技术人员都能成长为管理者,在这方面您能不能分享一点经验?
Monty:我觉得大多数开发人员就适合当开发者。
我知道,一直都有些开发者屈服于现实,转而去做管理岗。但根据我的观察,他们大多数人的编程才能其实比管理才能要强得多。很多人就是为了钱,管理岗的收入应该是比开发者要高一些。
但我觉得他们的天赋主要还是体现在开发上,最好能坚持下去,依靠自己的才能走向成功。
InfoQ:您在 34 岁,也就是快接近中年时才开发出 MySQL。但在中国市场,35 岁以上的开发者往往会考虑转向管理岗。您怎么看待这种现象?
Monty:我认为不应该这样。因为好程序员,特别是优秀的程序员其实更难找。虽然管理岗的薪水可能稍高一点,但却很容易被取代。所以只要大家有天赋,最好能坚持在技术的道路上走下去。
至于 MySQL 这边,其实我从来不想当 CEO。我想做的是 CTO,负责技术方面的工作,毕竟我的天赋就在技术上。我觉得自己没有那份成为优秀全职管理者的天分。
我把一生都投入到写代码上,我喜欢这活儿,也正是编程让我成为了独一无二的人。
InfoQ:如您所说,转到管理岗后,就会得到更多资源,比如晋升机会更大、薪酬更高。相比于技术理想,这是很现实的考量,毕竟大部分人要养家糊口,您怎么看呢?
Monty:我觉得很多企业在职业设计上都有这种错误。所以在 MySQL 和 MariaDB,我觉得与其靠让大家做管理来提升薪水,不如让他们承担起更多责任。有时候,职位的重要性比单纯的高薪水更有吸引力。这可以算是另一种思路吧。
大家当然应该为自己的编程事业规划一条职业发展道路,但没必要把转管理岗当成唯一的方向。企业不需要那么多经理,而且在开始裁员的时候,管理岗都是最先倒霉的。毕竟经理人很容易替代,但优秀的程序员不可替代。他们掌握着企业最需要的代码知识,所以只要代码在,那岗位就在。
编程 40 年,如何保持技术前瞻性?
InfoQ:您的编程经历大概有四十年了。在这么长的从业过程中,您是怎么保持自己的技术前瞻性的?
Monty:我的办法是信任客户。我的想法一直很坚定,那就是跟客户合作、解决问题,了解他们未来可能遇上的新问题,再共同将其克服。
所以只要有了良好而且足够广泛的用户群体,比如 MySQL 和 MariaDB 建立起的客户基础,那他们就能告诉我,未来会走向哪里。
我在等待未来的到来,同时也成为造就未来的一部分。所以,认真倾听客户意见,与他们合作,自然就能了解最新的技术。跟客户距离越近,我们就越了解功能需求,并据此安排自己的工作。
对于开发者,我们要做的是为他们提供正确的技术、让他们满意。总之,只要明确了需要解决的问题,技术选型自然就会容易得多。
InfoQ:那您会常跟社区中的开发者讨论技术问题吗?
Monty:我经常参与技术会议,在那里跟与会者们交流。这也算是一种探讨吧。
另外,在接触世界各国的客户,比如中国的客户时,也可以跟内部员工讨论关于 MySQL 和 MariaDB 的问题。他们代表的就不是客户,而是社区成员。所以我会认真倾听。
InfoQ:对于想要学习 MariaDB 或 MySQL 的中国开发者,您有什么建议吗?
Monty:首先应该积极参与到社区当中,帮助他人、改进实现。如果你需要某项功能,就想办法着手开发,并随时向 MariaDB 基金会寻求帮助。我们可以帮助大家,告诉你具体该怎么做。你审查过自己的代码吗?你也可以参与审查其他贡献者的代码,这就是实实在在的开源贡献。
而要想成为一名出色的程序员,拥有一份能做一辈子的开发工作,那最好能让自己积累起名望,让自己在开源世界拥有一席之地。有了这些积累,就不是你找工作,而是工作来找你了。保持住好奇心,积极探索事情是如何运作的,这样我们就会变得更好,对企业的价值也越大。
本文节选自 InfoQ《专访“MySQL 之父”:我曾创造 MySQL,也将颠覆 MySQL》,作者:李冬梅。
目录
热点 | Hot
DevOps 已死,平台工程才是未来
上云“被坑”十年终放弃,寒冬里第一轮“下云潮”要来了?
那位用 Rust 重写数据库的创始人来复盘了:删除 27 万行 C++ 代码,值吗
理论派 | Theory
字节大规模微服务语言发展之路
去哪儿网 Service Mesh 落地实践:100% 容器化打底,业务友好是接入关键
推荐文章 | Article
新一波 JavaScript Web 框架
字节跳动开源 BitSail:重构数据集成引擎,走向云原生化、实时化
观点 | Opinion
当“增加人员”不足以解决问题,你就该考虑应用“微前端”了
评论 (1 条评论)