我在 HN 上看到的说法,是要能够改 Cpython 代码来做一些事情,才算是真正的 Python 专家。但是 Python 一般大家都是用来写脚本语言的,什么工作需要改动解释器/编译器的代码呢?
1
GeekGao 96 天前 1
安全相关,例如软件加固
商业编译器相关,例如商业化的开发者工具 btw ,修改 cpython 代码并不是一件多么伟大的事情,除非能贡献出有价值的 PEP 的 Patch |
2
crackidz 96 天前 1
最简单的当然是 Fix issues 或者是编写测试: https://devguide.python.org/getting-started/fixing-issues/index.html
详细版: https://realpython.com/start-contributing-python/ |
3
mumbler 96 天前 1
作品说话,被人用得越多,越厉害
|
4
matrix1010 96 天前 via iPhone 1
所谓专家在任何领域都差不多,最顶尖的是能作出有重大影响的开创性成果,普通专家则是解决问题能力极强。套用到 Python 上,Python 作为一种编程语言,开创性成果也许是 jit 或者解决 gil 之类的。解决问题就见仁见智了,如果你在公司能解决所有 Python 问题,那你就是公司的 Python 专家
|
5
drwebco 96 天前 1
"专家"就是写的代码能解决问题,那必然是能解决足够多的"问题"。不用纠结如何实现,而是问题解决得足够好
|
9
levelworm OP @matrix1010 有道理,感觉我们公司似乎也不需要这样的人才。。。的确是需要用 Python 写数据平台的脚本,但是对于 Python 本身似乎没有什么需求。
|
11
salmon5 96 天前
Python 有 有专家?
|
12
InkStone 96 天前
如果你的 Python 脚本都是纯本地的,不需要到处迁移也不需要发布给别人用,改一下 Python 的代码加些自己喜欢的语法糖,可以带来比较舒适的开发体验。
七八年前做过这样的事情。不过说实话没什么价值,后来也懒得弄了。 |
13
SWALLOWW 96 天前
你再加一个 gpt 就是专家
|
14
byweilong 96 天前
b 站有个 up 《码农高天》 我觉得算是专家
|
15
NessajCN 96 天前 1
编程语言就是个工具,成为工具专家有什么用,你要成为解决某个问题的专家
你听说过谁是锯子专家,剪刀专家,缝纫机专家吗。当然是成为专业木工,专业园丁,专业裁缝呀 木工会用锯子用特别熟练,当然也会用刨床。最主要的是他对木头的了解和熟练。而不是说他锯子用多么好 同样的,你要成为机器学习专家,爬虫专家,运维专家,而不是什么 Python 专家 |
16
iorilu 96 天前
你看看 pycon 就知道阿
每年那么多人演讲呢, 都是各领域的 python 专家, 你看看他们研究的东西和水平不就知道了 |
17
deplives 96 天前
修改 cpython 代码不是一件很容易的事情?这个东西你要真的能实现一个 PEP 或者对某些 PEP 做出核心贡献 啥时候能成为 core dev 才算专家吧
|
18
deplives 96 天前
要是 [是要能够改 Cpython 代码来做一些事情,才算是真正的 Python 专家]
那我觉得我也算,比如我实现修改 cpython 源码给内置对象增加 deepcopy 方法 抛弃了 ```python from copy import deepcopy d = {'a':[1,2,3]} dd = deepcopy(d) ``` 改成了 ```python d = {'a':[1,2,3]} dd = d.deepcopy() ``` 看起来就很不错 |
19
echoless 96 天前 1
读完 fluent python 基本就够了。
|
20
noogler67 95 天前 1
我们做 py2 到 py3 转换的时候,理解 python 内部做了什么的时候会看 cpython 代码。但不需要修改。修改是不是得跟社区扯皮,修复 bug 或者提交 feature 。
|
21
lpbname777 95 天前 1
@byweilong 我也看过他,觉得挺厉害,然而主业并不是 python
|
22
naythefirst01 95 天前 1
保护代码的时候经常要使用自定义的解释器
|
23
gaogaotiantian 95 天前 5
我好像完成了楼里提出的所有条件
* 修改 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 的名头,偶尔还能和小伙伴显摆一下,也不错:) |
24
levelworm OP @gaogaotiantian 多谢大佬指点。
|
25
echoless 95 天前
@lpbname777 #21 用 python 和 修改 cpython 源码本来就是两个事情. 由于工作的内卷导致面试 python 的时候, 会问 cpython 的问题.
|
26
Leonooo13 75 天前
@gaogaotiantian 天哥?
|