Java、C++ 内存模型都不知道,还敢说自己是高级工程师?

共 1841字,需浏览 4分钟

 ·

2021-11-08 13:41

前两天刷知乎,看到一个 Compiler 被猎头“三顾茅庐”的经历,尽管他一次次拒绝,但貌似因为猎头确实也没遇到比他更懂行的人,所以一直抓着他不放,也太真实了。


基础软件领域,太经常出现这种供不应求的情况。如今贸易战下,华为、BAT等大厂都在紧锣密鼓地各自软硬件技术的研发,所以他们对底层开发的系统级程序员的需求越来越大。就拿刚提到的编译器来说,想招聘合适的人才,周期往往得拉长到一到两年。


可以说,一名基础软件人才,千万年薪都难求。


可惜的是,编译器原理本身就非常枯燥,需要上承算法,下接指令集,以及高水平的布尔代数和计算机架构和算法知识,光它一个,就称得上是知识大杂烩。更别提掌握其他的CPU核设计知识、操作系统的内存管理模块、编译器的内存分配、并发锁、基础库的设计原理等其他基础软件开发必备的知识点了。


想从这些庞大的知识体系中选择一条脉络的话,之前看到一种说法是以内存管理为线索去进行学习更佳整体的知识结构,可以参考下面这张我搜到的知识点图:


显然,这里面涉及的知识覆盖了《数字电路设计》、《计算机原理》、《微处理器架构》、《体系结构》、《操作系统》、《编译原理》,还有各种编译语言库和虚拟机等等。每一点拎出来,都是一门独立的课程。


没办法,内存相关的知识体系,涉及到的学科就是多,且很难形成体系。我也还是这两天看到上图作者海纳老师,在极客时间的直播,才摸到一些门道。


为了更系统全面的讲解内存,他还专门跟极客时间推出了一个课程,叫《编程高手必学的内存知识》,这两天刚上线。看了开篇词,内容真的不错,以上涉及到任何一个知识点,只要有你感兴趣,都应该去看看。



新人首单 ¥59,售价 ¥99

早鸟+口令「neicun666立省 ¥30


作者是海纳,华为资深编译器专家,原 Huawei JDK 团队负责人。现在是华为鲲鹏生态的布道师,同时还在负责华为编译器领域的相关创新工作。2019年他出版了《自己动手写Python虚拟机》一书。这两年,他利用业余时间又筹备了一本《从零开始写Linux内核》,预计2022年上市。


他的工作主要涉及数据库、操作系统、编译器和图像处理,以及计算机视觉等方面,在这些领域积累了大量的一线实战经验。同时,他也是开源社区的积极贡献者,发起了Railgun虚拟机和海浪编程语言等项目。


这门课程主要分为三个部分:软件篇,硬件篇和自动内存管理篇。


软件篇


这一部分,会以操作系统为核心,将进程和内存的关系彻底讲清楚,让你对操作系统、编译器,以及应用程序的运行原理有深入的理解。


操作系统是软硬件设计的核心,它管理着所有的硬件资源,同时又为各种运行在它上面的应用程序提供服务。而内存是计算机的核心资源之一,它深刻影响着应用程序使用内存的方式。


编译器和应用程序都是围绕这个核心来构建的。因此,在具体的讲述上,海纳会采取由核心向外延的方式,把软件篇的知识都给你串联起来,如下图所示。

硬件篇


这一部分,我们将会学习与内存相关的计算机体系架构,包括存储器电路、存储体系结构和多核CPU内存模型。


通过这部分的学习,你可以快速掌握缓存原理、多核CPU通信的核心知识,让你最大限度地使用好缓存,写出正确而高效的代码。同时,课程里对硬件知识的讲解,还可以让你掌握CPU设计一些简单原理,并且在此基础上,深入地学习RISC-V等开源CPU的实现。


从下面这张图可以看到,硬件的结构是从下到上层层搭建的。所以,这部分会采用自底向上的讲解方式,带你理解存储系统是怎样由简单的器件一步步变得越来越复杂的。


内存管理篇


在这一部分关注点会从计算机软硬件,转向对具体内存管理算法的学习。


学习内存管理算法,能够让我们正确地使用各种不同语言,例如在Python和Swift中你要注意解循环引用等等。


还有很多具体内容,可以看看课程目录。



粉丝专属福利:

新人首单 ¥59,售价 ¥99

早鸟+口令「neicun666立省 ¥30


订阅后生成海报发给好友,

每成功邀请 位好友,可得 ¥20 返现。



👇 点击「阅读原文」

输入优惠口令 「neicun666

立省 ¥30 入手,仅限 前 50 人

浏览 64
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报