我好像完成了楼里提出的所有条件
* 修改 CPython 代码
* 贡献 PEP
* 成为 core dev
* 在 pycon 上做 talk
如果你想尝试给 CPython 贡献点代码,其实没有那么难,可以参考一下我当时第一个 PR 的视频(
https://www.bilibili.com/video/BV1Ck4y1h7Hm/),你应该可以发现,这个 bug ,其实很多人都可以解决,它不是一个非常深奥的事情。
相对来说,成为 CPython 团队成员难度更大的应该是持之以恒的动力。改第一个 bug 的时候你可能很亢奋,到第二个,第三个,第四个的时候,就没那么激动了。而且你很快就会意识到,你非常兴奋地完成的修改,可能没有人 review ,甚至有 core dev 告诉你你这个方向不对,直接 close 掉。你会有不少精力花在沟通上,也会有一些努力付诸东流。然而这是成为一个大型项目贡献者必然要经历的过程,也是学习的过程(比如你做的这个东西,为什么它不适合 CPython )。
说回你的问题,我觉得“专家”这个词,它本身是带有主观色彩的,每个人的观点都不一样。比如这 20 层楼里出现的几个条件的交集,全中国只能交出我一个人来。但是你能说全中国就我一个 Python 专家么?
甚至,你能说我是 Python 专家么?
我基本不说我是 Python 专家,就是略懂。因为 CPython 发展到现在,已经是一个比较大的项目了,几乎没有人可以对所有的领域都了解的足够透彻。我自己敢说我是“专家”的领域,只有 pdb 和 tracing 的部分。其他的地方很多我也是遇到问题现学,甚至是没能力解决。
所以我觉得,没必要纠结“专家”这个名头,是不是“专家”没那么重要,关键是你的 Python 能力能不能解决你的实际需求。你如果是要处理一些数据,就去了解数据怎么处理,不需要知道 CPython 内部是如何工作的。如果你要写个网站,就去写网站,不需要知道 copy-and-paste JIT 的原理是什么。
如果你和我一样是一个爱慕虚荣的人,那就花点时间和精力,去混个 core dev 的名头,偶尔还能和小伙伴显摆一下,也不错:)