大家好,这里是程序员晚枫,小红书/抖音/B站都叫这个名字。
上一篇文章,给大家分享了给业余爱好者的学习计划 + 配套资料,点击查看👉 ,今天给大家分享一个给专业程序员的进阶学习资料。
这两天刷知乎,看见一个老哥三年前对「编译器开发前景」的回复,可以说是精准预测未来了。
随着去年 OpenAI 的爆发,
国内芯片自主研发的步伐也在逐渐加速,越来越多的公司开始组建自己的编译器团队,不单单是以前
传统的芯片公司需要编译器开发人员,互联网公司、智驾企业,甚至物流行业、医药行业也纷纷下场开发自己领域的大模型,这导致
AI 编译器领域对相关人才的需求越来越大
。
我们都知道,AI 编译器的研发是一个复杂且漫长的过程,它要求大家不仅要具备扎实的计算机科学基础,还需要对人工智能和机器学习领域有深刻的洞察。
可是,在学校里想短时间内学明白这么多东西,挺难的,就算学了一大堆理论, 真正上手干活儿的时候,还是会手生,并且还缺乏与工业界实际需求对接的实践机会 。甚至工作几年了,还有不少人 对虚拟机的底层工作原理了解得不够透彻,遇到内存管理、编译优化等生产上的问题时,没有办法快速解决。
如何具备这样的能力呢?
我是跟着华为资深编译专家,原 Huawei JDK 团队负责人「海纳」的书【自己动手写 Python 虚拟机】,一步步上道的。他经过十多年的探索和实践,发现 动手写一个虚拟机是快速上手编译开发的最优的路线 。通过手写 Python 虚拟机,可以获得从宏观到微观多维度的编程能力。
深入了解编程语言的工作原理和执行流程。
掌握编译原理,特别是编译器的前端和后端工作机制。
了解如何优化虚拟机的性能,包括 JIT 编译技术和内存管理策略。
实现虚拟机的内存管理模块,掌握自动垃圾回收算法和内存分配策略。
通过构建一个完整的虚拟机项目,体验软件工程从设计、编码到测试和维护的全过程。
最近我有机会与海纳老师交流,他告诉我和极客时间合作最新推出了一个专栏 【手写 Python 虚拟机】 。这个专栏是他多年实战经验的精华,旨在帮助大家从 初级阶段就能够快速掌握编译技术 。海纳老师还将书中基于 Python 2.7 的内容升级到了 Python 3.0,并会一步步引导我们构建自己的 Python 虚拟机。每个环节都提供了详细的示例代码,如果在学习过程中遇到问题,也可以随时在读者群向老师求助。
专栏里包含一套完整的代码,源码中的每次提交都实现了一个功能,这些功能与专栏章节是相互对应的 ,你可以通过提交记录轻松地与具体章节对应起来。每节课也会有实验环节以及详细的步骤说明,方便你跟随我一步步实现一个简化版的 Python 虚拟机。获取这套课程的代码,请在 公众号:Python图书馆 的后台发送: 虚拟机源码 ,即可24小时免费获取下载链接~👇
专栏刚上线,目前正在 早鸟特惠,仅需 ¥79 !这是一个与海纳老师一起 动手实现属于你自己的编译器的绝佳机会 ,不仅能 提升你的编程技能,还能为自己搭建起一个技术护城河 。别错过这个学习提升的好时机!
早鸟秒杀, 到手 ¥79
如果你是新人,到手只要 ¥59!
在这儿特别介绍下海纳老师,他原是 Huawei JDK 团队的负责人,现在担任华为资深编译器专家,主要负责华为编译器领域的相关创新工作。这两年,他笔耕不辍,不仅在 2019 年出版了【自己动手写 Python 虚拟机】一书, 还在极客时间连载了新的内存专栏,上线三天就突破千人学习 。此外他还长期维护知乎专栏【进击的 Java 新人】,近期他的【从零开始写 Linux 内核】也即将面世 。 海纳老师的无私分享精神和对技术深入探索的热情,无疑为我们的学习之路提供了宝贵的指引。
海纳老师的工作,主要涉及的都是数据库、操作系统、编译器和图像处理,以及计算机视觉等方面,因此也让他积累了大量相关的一线实战经验。
在这个专栏里,海纳老师就是秉承着「实践化学习」的理念,避免了理论与实践的割裂感,难以把知识内化的问题, 整个项目既环环相扣,又有一定的独立性按照不同的模块将课程分成了 6 个章节层层叠进。如下图所示:
第一阶段 编程语言的发展历程与基本架构
这一阶段海纳老师会带你深入探讨虚拟机的起源与演进,了解它的核心优势,学习编译器是如何将源代码转化为字节码的,你还可以通过实例看到虚拟机的执行过程,包括字节码序列化、解释执行及 JIT 编译技术。
第二阶段 控制流
在这部分,你会了解到 Python 字节码指令集、字节码文件的格式、虚拟机如何对字节码文件进行加载等内容。然后就可以实现最基本的控制流了,例如分支结构、循环结构。也就是说,虚拟机已经具备了基本的计算能力。
第三阶段 函数的实现机制
函数作为 Python 语言的第一类公民,可以做为参数传递给其他函数,也可以做为返回值被传出函数之外。这是函数式编程最基本的特性,但要实现函数式编程,还需要理解自由变量、闭包等特性,所以这一阶段你会全面了解语言虚拟机是如何实现这些高级特性的。
第四阶段 对象系统和语言内建对象
面向对象编程的三大特征是封装、继承和多态。在这一章中,你会看到虚拟机是如何实现通过类型创建对象,以及如何表达类型之间的继承关系这些基本内容的,然后进一步掌握运行时识别、函数覆写、操作符重载等面向对象编程中的高级主题。
第五阶段 内存管理与垃圾回收
这一阶段你会学到 Python 对象的内存分配策略,包括静态分配与动态分配的原理与实现。同时也对垃圾回收算法(如引用计数、标记清除、分代回收)的选择与实现有初步的了解。垃圾回收算法是一个独立且庞大的体系,而这一章将成为你学习垃圾回收算法的第一课,带你轻松走进内存管理知识殿堂。
第六阶段 异常、迭代、模块系统
异常、迭代、模块系统等高级主题相对独立,但同时也有一些依赖关系。在前五阶段的基础上,你完全有能力自己设计并实现这些主题。这一部分主要以说明架构设计为主,你可以根据课程中给出的架构设计,自己动手实现这些高级特性。
具体看看目录:
再强调一下:
早鸟秒杀, 到手 ¥79 , 单独订阅 ¥99
如果你是新人,到手只要 ¥59!
👇 点击「阅读原文」, 立省 ¥20 入手,仅限 前 50 人。