高天最初决定在B站分享技术内容是因为他想主动选择自己想聊的话题,而不受知乎提问的限制。此外,他认为B站是一个更容易建立个人品牌的地方,尤其是在技术领域。
高天通过在B站积累了一定的粉丝后,开始接触Python社区。他从一个PDB的bug修复开始,逐渐为CPython贡献代码,并通过频繁的PR和与社区的互动,最终在一年多后成为了Python核心开发者。
高天在成为Python核心开发者的过程中,最大的挑战是PR的review时间较长,因为CPython社区的志愿者较少。此外,他需要保持自驱力,因为开源项目没有deadline,完全依赖个人的动力。
Python社区的角色主要包括普通贡献者、Triager和Core Dev。Triager是成为Core Dev的必经之路,主要负责issue分类和code review。Core Dev拥有merge代码的权限,是社区的最高角色。
Python的GIL(全局解释器锁)一直是被诟病的问题,限制了多线程的性能。目前,Python社区正在通过PEP 703尝试移除GIL,这是一个历史性的尝试,但结果尚未确定。
高天建议大部分工程师不应过度考虑性能问题,尤其是在微观层面。他强调,性能优化应基于全局影响,而不是局部优化。过早的性能优化可能会导致代码可读性和稳定性的下降。
高天认为,工作不能太忙是平衡时间的关键。他不会给自己设定严格的schedule,而是根据状态调整。如果感到疲惫,他会选择休息一段时间,而不是强迫自己持续输出。
高天认为,职业倦怠是正常的,尤其是在开源项目中。他建议在感到疲惫时适当休息,而不是强迫自己持续工作。兴趣驱动的工作更容易保持长久的热情。
高天推荐了两个Python性能分析工具:PySpy和Scalene,以及一个覆盖率工具SlipCover。这些工具可以帮助开发者更好地理解和优化代码性能。
本期节目,我们第二次请到了高天,和他聊了聊成为 Python 核心开发者以及在 B站做 up 主的经历和感悟。
高天)
Python 开发
成为 Python 核心开发者的历程
对 Python 语言发展的看法
分享一个你比较推崇的 Python 编程的技巧或是最佳实践
技术内容创作
是什么让你尝试开始在 B站分享技术内容
视频制作流程和内容选择策略
如何平衡技术深度和受众理解度
知乎问答和知识星球运营经验
技术直播的挑战和技巧
工作与生活平衡
在科技公司工作的日常
如何管理时间,兼顾工作、创作和个人生活
对程序员职业倦怠的看法和应对方法
知识星球:minkomni.com/zsxq)
Joe Armstrong on optimization) Make it work, then make it beautiful, then if you really, really have to, make it fast. 90 percent of the time, if you make it beautiful, it will already be fast. So really, just make it beautiful!
py-spy): Sampling profiler for Python programs
Scalene): a high-performance, high-precision CPU, GPU, and memory profiler for Python with AI-powered optimization proposals
爱发电上赞助)