必读 成长路径
我的星球介绍
这篇是关于我星球里的内容、目标以及如何达到这个目标的一些概述
星球目标
本星球致力深度分析各种程序员领域疑难案例,通过案例带动对基础核心知识的理解,同时强化动手能力
一年星球没法让大家称为顶尖程序员(我自己都不是),只是希望用我的方法、知识、经验、案例作为你的垫脚石,帮助你快速、早日成为一个基本合格的程序员。
必会技能
在星球一年的时间你能学到什么(跟着做一定可以学会的):
- 网络入门,抓包分析网络能力,wireshark使用 网络篇章索引:https://articles.zsxq.com/id_jr1w5wvb8j9f.html
- QPS、RT和并发的关系,记住查瓶颈追着 RT跑(哪里RT增加快瓶颈就在哪里)
- IPC是什么和性能的本质
- 养成做会而不是学会的习惯
视频素材
如果你发现看文章、做实验有些障碍,我特意录制了视频做演示(如果你基础好,看文章就能看懂并把实验做完,其实没必要看视频):https://articles.zsxq.com/id_blqwkgux7i0a.html
视频内容目前已经完成了:
- 抓包技巧演示
- QPS、并发、RT 的关系
- tcp-rt 展示和在性能定位中的使用
- 瓶颈定位分析——追着RT 跑
- 单机内瓶颈定位
- 认识CPU 和 Cache,以及测试Cache、内存时延
我在星球内一直强调视频不是高效的学习方法,因为你没有办法仔细思索、随时前后反复看等等,看完视频容易形成学懂了的错觉实际很快就忘了,但是我录完这些视频看大家的反馈我发现视频也有优点那就是:很直观、门槛低等,但是一定要注意一个错觉:以为看视频看懂了。但实际就是看视频看完了忘得比看文章快多了,所以看完视频一定要再去实验一下,实验所需要的素材基本都在星球内有了,代码等我都放在了github上
挑战技能
有些技能不好描述,或者说是一些暗知识,我们尽量去讨论这些技能的逻辑,同时对一些特别有效的工具、知识会重点突破,这些恰恰是我希望你们最终能掌握的:
- 分析解决问题的能力,在一定的知识的基础上靠谱地去分析
- 掌握技能而不是死知识
- 掌握核心知识点,核心知识点是指理解了一个点很容易对一个领域有较大的突破,比如IPC对于CPU性能、比如内存墙对计算机组成原理的理解、比如RT 对性能瓶颈的定位等
知识总是学不完的,况且大多时候我们有了知识也解决不了问题,所以我们更注重能力的训练,比如这个提问:https://t.zsxq.com/0cfBnpmLw
节奏安排
- 一个月完成这一年唯一的一个必做作业:https://t.zsxq.com/0cUhJcVNa 目的体验做会和学会的差别
- 一个月QPS、并发、RT的关系:https://t.zsxq.com/0dCmWErZB 性能、瓶颈定位的最核心理论
- 一个月补CPU基础,核心可以从内存墙、IPC、NUMA 入手,星球内都有不错的案例,可以查看 CPU 专栏
- 一个月用来实践性能瓶颈定位,比如就用Sysbench + MySQL 来构造:https://articles.zsxq.com/id_blqwkgux7i0a.html
- ……补充中
如果你发现这个节奏你跟不上,那么就先去看视频,然后再按这个节奏来,如果还不行可以再去看视频,如果视频看不懂可以到微信群里讨论或者就视频里的哪个点提问,如果觉得看懂了,但是还是没法独立实验,那可以这个看懂了还是错觉,或者是基础缺的太多了
请先浏览星球专栏里的必看资源以及学习方法,做到做会而不是看会。另外每个主题后面的留言也很有价值
本星球大部分理论指导部分请看视频:https://t.zsxq.com/0dF2WvzEF (5-10节共90分钟),视频中的理论要和案例结合
案例选择
星球选用的案例尽量典型普适性强,代表基础组件基本原理等知识。
分析手段尽量通用,分析过程一定要逻辑合理每个疑问都能回答清晰。
搞清楚一个案例基本能横扫一个领域,其次在一个案例后再带3/5个相关小案例可以帮你丰富场景,多角度理解
基于以上目标一年内选择了如下4个案例:
- TCP传输性能–对应星球有一年唯一的必做实验让大家上手:https://t.zsxq.com/0dUhJcVNa 目标:动手
- [历时3年的Nginx卡顿分析](https://github.com/plantegg/programmer_case/blame/main/performance/Nginx resueport 导致偶发性卡顿.md)–Nginx的架构本身的设计缺陷带来的卡顿,修复放来来自TCP传输性能,知识之间的联系
- MySQL有的连接一直慢、有的连接一直快,为什么?目的:Wireshark分析的巧用,这个方法普适性极强
- 同样的QPS,但CPU使用率相差3倍是为什么。目标:实现对CPU理解的入门
详细描述请看这里:https://t.zsxq.com/0cyPswpVB
本星球口头禅
慢就是快,做会而不是看会,无招胜有招
慢就是快指的是不要贪多,而是要彻底搞懂一个问题、一个知识点,让这个点成为一个支柱长成体系,贪多往往啥都没有掌握
做会而不是看会:程序员是工程类(也有科学家,但我们CRUD boy肯定不是),尤其像网络包、CPU流水线都是看不到无法感受,所以建议你去抓包、去做实验体会、触摸到每个包就能够更好地理解,所以星球强调做案例
无招胜有招:尽量找我普适性强的技能,比如ping ping神功,比如抓包,比如Google搜索,你会反复看到我的案例中使用这些技能
如何在本星球获得成长的基本步骤
多和以前的学习方式对比,学了一大堆几个月后全忘了,学了很多不会解决问题,学了很多但要靠反复刷。你不应该继续像以前一样忙忙碌碌但是收获很小
- 该买的书买了:https://t.zsxq.com/0c3P6gpJE
- 该做的实验做了:https://t.zsxq.com/0cUhJcVNa ,反复试过后,不懂的尽量提问
- 该看的视频看过了:https://articles.zsxq.com/id_blqwkgux7i0a.html (实验你能独立完成就不用看视频了)
- 薅住几个case使劲干,能干多深干多深,看不懂的慢慢想,最好能在工作中找到场景实践一下
- 学习方法一定要看
- 不要急于求成,贪多不化,尽量单点突破(就是一个点使劲往深里干),彻底学懂一个后你会感受到加速
- 体会到动手做和看书的差异,体会到深度学习案例和看书的差异
- 不要相信自己看会了,不要相信自己的记忆能力
- 为什么你有知识但是没有能力:https://t.zsxq.com/0cfBnpmLw
- 养成记笔记,然后总结输出的习惯
- 必看专栏一定要高优先级先看
最好能有自己的总结输出,比如博客文章,写文章是一次最好的总结,不一定要发出来,也不一定一次写完美了,我经常修改7、8年前的文章,因为随着经验的丰富有了更深入、不同的理解,这时不要写一篇新的,我都是在原来的基础上修改、扩充,这才是体系建设
成长案例
这是大学刚毕业几个月的新同学写的博客:https://yishenggong.com/2023/05/06/why-does-my-network-speed-drop-cn/
https://yishenggong.com/2023/05/22/is-20m-of-rows-still-a-valid-soft-limit-of-mysql-table-in-2023/ 你可以比较他加入星球前后的博客文章(20230315 加入星球), 第二篇是英文版上了hacker news前三
我观察到的学员成长好习惯:
- 动手动手,不论事情大小先干起来;
- 有自己的节奏,不贪多先把一篇文章、一个知识点薅扎实了
欢迎在星球里提问
欢迎大家提问,越具体越好
比如这个问题就很具体、很好: https://t.zsxq.com/0enzptS47 (千万不要微信上问,回答了也没有价值)
我自己一个人写写出来的东西难免自嗨,但是如果是你碰到的实际业务问题我觉得就更有代表性一些
提问肯定尽力要把问题描述具体,好重现,典型的就是之前 aws 流量降速导致MySQL QPS下降,提问的同学做得特别好的就是把这个问题自己反复分析后发现是网络流量被限速了,然后问题就很容易描述和重现,最后一大帮人帮忙分析问题,最后的结果大家都很开心学到了东西。问题在这里:https://articles.zsxq.com/id_iq5a872u8sux.html
你要是通过星球里的方法帮你解决了实际问题这是星球的最终目的,我当然最开心,如果你提了一个你工作中的问题大家一起帮你分析、讨论并最终解决了这就是最好的N对1的私教训练——觉得适合你的能力提升
我有时候绞尽脑汁写了文章然后大家不关心,有时候一个普通问题似乎大家都很嗨,我也喜欢能让你们很嗨的问题(即使我不懂也可以一起讨论)
专栏介绍
必看(一定要看的,我尽量控制必看的少)、实战案例(年度计划一定要分享和搞清楚的案例)、动手实验(做会一直是本星球的重要原则)、学习方法(磨刀不误砍柴工),剩下的就是按类别分比较好理解
其它
星主自我介绍:https://t.zsxq.com/0c33AXrCi
或者在推特找我:https://twitter.com/plantegg
个人博客:https://plantegg.github.io/2022/01/01/%E4%B8%89%E4%B8%AA%E6%95%85%E4%BA%8B/
博客存放在github,图多的文章会慢一些,可以刷新几次。
建议大家多用PC版星球( https://wx.zsxq.com ),第一次记住密码后也很方便,主要是打字看图更合适些
画图工具和素材:https://t.zsxq.com/0enaoOUBp
知识星球:https://t.zsxq.com/0cSFEUh2J 或者看看星球的介绍:https://plantegg.github.io/2023/05/10/%E7%A8%8B%E5%BA%8F%E5%91%98%E6%A1%88%E4%BE%8B%E6%98%9F%E7%90%83%E4%BB%8B%E7%BB%8D/