如何才能高效地学习技术,我投“融汇贯通”一票

大家好,我是飞哥!

程序员这一个职业虽然外表光鲜,但最大的痛点是工作依赖的技术更新换代太快。需要不断地学习,还要保持自己学习的速度比知识过期的速度快,才能在这个市场中站稳,保持竞争力。

那如何才能高效地学习技术呢?我个人总结出来的心得是“融会贯通”地学!只有这样效率才是最高的。

我最喜欢的一个成语故事是庖丁解牛。这个故事是梁惠王问庖丁为什么你的解牛技术能这么厉害。庖丁说我刚开始解牛的时候技术也不行。当时对牛的结构不太了解,而后来我把牛的内部筋骨肌肉全都搞明白了,刀只在骨缝里走,技术也就越来越精进。

开发技术其实也一样。在你对你写的代码所依赖的底层工作原理不清楚的时候,其实学到的都是表面的技术,只知道这么用能用。而只有你对硬件、内核、语言运行时这些底层的工作原理有了基本的了解的时候,技术也才真正变得更强。

在技术文章中我比较喜欢说的一句话是,“只说技术如何使用不讲原理,从来都不是咱们「开发内功修炼」的风格”。我是希望大家不要光知道这个代码这么写就行,而是要把底层的工作原理也要了解。只有这样才能融汇贯通,真正把技术学到家。

我给大家体系地看看我在知识星球上规划。总共规划了包括硬件原理、内存管理、进程管理、文件系统、网络管理、Golang语言、容器原理、性能观测、性能优化九大部分大约 120 节内容。整体上是从硬件、到内核、到语言运行时,最后再到性能优化方法,把知识融汇贯通起来。

下面是快更新完的硬件原理、内存管理、网络管理三大部分课程内容列表。总共 41 节,视频时长已经达到了 1170 分钟。

b902b8033cf5b26a061604cf2fa6c8d2.png

已更新的内容目前大约只有三分之一,剩下还有三分之二的内容在开发中。以下是接下来要更新的内容规划,大约还有 80 节左右。

c01a4cdfd21778e7ae09ed3db76c5e2e.png

现在加入知识星球的话还可使用200的大额优惠券,一年期会员券后只需299元即可。优惠券送完为止。

d811c8f7f80222e9814f90eaf0b01c04.png

每一块知识都是先深入地从底层工作原理开始,到最后在上升到应用层,和大家日常工作结合起来,指导大家开发出性能更好的代码。

比如在网络中,常见的书和资料一般都是教大家怎么使用socket编程,怎么使用各种网络开发库。而我则是更推荐从一个网络包是如何从网卡到达内核协议栈,如何经过协议栈处理,如何经过iptable四表五链钩子,如何通过同步阻塞,或者epoll多路复用的方式通知用户进程有数据到达。甚至是网络虚拟化中的 veth、bridge也会讲到。

理解了这些深层次的原理后,你回头再看之前让你各种眼花缭乱的技术,比如 Redis、Nginx、Netty 等各种流行组件的网络库,以及 Kafka在发送数据时采用的零拷贝、Golang 的 net 包,甚至是 K8s 中的各种网络插件你就都能搞懂了。因为这些技术只是外表不一样,深层次的底层原理其实都是相通的。

再比如在CPU中,我先从最底层的CPU硬件讲起,讲各个代际CPU的架构,以及硬件参数。再讲到内核中是如何通过进程调度的方式使用CPU资源的。云原生底层的容器又是如何在内核中分配CPU资源。内核是如何给容器中的进程分配 CPU 资源的,K8s 中的 requests、limits 底层原理到底是啥,

讲完了硬件和内核底层原理。我们再回到应用层回到和我们日常工作最接近的知识点中。如 Golang 语言运行时中一些关键原理,常用的函数调用、系统调用、RPC调用实现原理,常用的的性能观测方法有哪些,这些指标的底层原理到底是啥,火焰图是如何实现的。最后落实到对大家工作帮助最大的性能优化中来,带领大家掌握一些常用的性能优化思路和方法,提升手头工作水平。

再比如在内存管理中。我是按以下的知识架构来讲。

1071e784b94e156fa6617c70f2f179bc.png

先从内存的硬件中的代际、数据频率、Rank、Chip、Bank来讲,介绍内存硬件给CPU提供数据时为什么需要有CL、tRCD、tRP等延迟,这些延迟又该如何查看,如何转换计算成实际的延迟纳秒时间。

再讲到内核启动时的初期分配器是如何发现内存可用地址范围,内核是如何感知到 CPU 和内存的 NUMA 信息,如何把可用页面交接给伙伴系统。操作系统是如何实现进程虚拟地址空间管理,栈和堆分别都是如何使用内存的。缺页中断是如何向伙伴系统申请物理内存。

再讲到语言的运行时。如最常见的 C 语言的内存分配器如中的 malloc 是如何组织管理各种规格内存块的空闲链表。用户申请内存的时候是如何依次到 small bins、large bins 等空闲链表中查找合适的空闲块。当没有空闲块的才通过 mmap 等系统调用向操作系统发起虚拟内存申请。

理解了以上这些内存知识,整体上就融汇贯通了,再学习起来任何编程语言中内存相关的技术的时候,会非常容易。

以上这些视频相信对于帮助你融汇贯通地理解技术帮助会非常大的,能帮大家更好地修炼开发内功。

在星球中除了视频内容,我原创的配套的 PPT、原创电子书我都会不定期在星球里发布。电子书目前大概有 3 本,加入星球后就可以在星球中下载。

未来还会给大家逐步启动一些其它对大家更有用的分享。如

  • 公众号文章的写作,如何从选题、资料搜集、画图到创作,如何一步步搞好一篇技术文章。

  • 工作方法:如何在工作中做事才能成为一名高绩效员工

  • 时间管理:繁忙的工作中如何抽时间充电和成长

目前的星球我最后再开放一轮 200 元的大额优惠券。后面随着课程的更新变多优惠会逐步取消。

ee8069a6392a2d8aa7f992c94d227275.png

星球「开发内功修炼营」期待你的到来,相信飞哥不会辜负你的信任,我带着大家一起在技术上成长! 

加入星球后微信上私聊我加入星球群,PPT、电子书PDF以及课程更新我会在群里第一时间说。还没我微信的朋友加我这个号(老号好友满了没办法通过)「zhangyanfei748528」

  • 5
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值