写点什么

技术团队的学习方法:每天学习 100 分钟,成功写出 2 本书

  • 2019-09-06
  • 本文字数:2180 字

    阅读完需:约 7 分钟

技术团队的学习方法:每天学习100分钟,成功写出2本书


雷哥,我感觉我工作 2 年了,天天都是在用PHP写业务逻辑,CURD,CURD,CURD,虽然很努力也很累,但是感觉自己也没什么成长……”

“隔壁团队搞基础架构的兄弟好像很厉害,比我成长得快很多……”

“掌握的技术感觉很不错了,能搞定所有业务了,自我感觉良好,但是每次晋升答辩都不知道讲啥……”


成长的烦恼每个人都有,有些人选择用行动消除,有些人依然沉沦。


幸运的是,我们是前者。2016 年,我们团队开始了每天早晨 08:50—10:30 的 100 分钟早读会,主要研读工作中用到的开源软件,比如PHPRedis(Codis)NginxMySQL等。我们的规矩是团队成员自愿参加。

问题也随之而来了,五分钟热度与两天打鱼三天晒网,怎么办?

  • “重在参与”: 一个人引导,大家一起讨论;不是分享,是提问和探讨;主动思考才是正道。

  • 设立阶段性目标:每天沉淀 wiki,有了大量的学习笔记;设立一段时间的目标,比如未来 2 周弄懂 PHP 基本变量;长远目标,写一本书(2017 年我们的第一本书《PHP 7 底层设计与源码实现》已上架)。

  • 组织者以身作则:“以身作则”,每天按时到公司;前一天晚上用 2 个小时准备第二天要讲的内容;一个人带动三个人,三个人带动整个团队;团队其他成员在成长,自己不成长就是“退步”。

  • 21 天养成一个好习惯:4 个星期后,参加者会持续参加,养成了习惯;想偷懒,或者其他原因不参加,内心会“焦虑”。


2018 年 3 月份,我们开始了 Redis 源码的学习。从数据结构学到命令解析,再到应用与实践;从第一遍的抓主流程脉络,到第二遍的扣源码细节,到第三遍的提升实战高度。

一些好的学习方法分享给大家

  • 打破砂锅问到底:凡事多问几个为什么,任何方案、任何决策都有其背后的逻辑存在。比如,SDS 结构为什么这么设计?为什么要采用渐进式 Rehash?过期健删除策略怎么决策?epoll 为什么这么受欢迎?

  • 总结与沉淀:积硅步以至千里,积怠惰以致深渊;记录每天的学习笔记,多输出优秀的博客文章;每天学一点,一年大不同。

  • 举一反三:以内存管理为例,对比 PHP/ malloc/Redis/Nginx 内存管理各自的特点,思考 PHP Chunk 为什么需要 2MB 字节对齐;学习网络编程,对比 Nginx、Redis、Swoole 网络模型以及定时事件模型。

  • 学以致用:源码学习不是纯粹的理论,设计、思维、应用都很值得我们细细品味;比如学习这些源码后,在日常工作中,团队伙伴的问题处理能力提升了很多——日志切分导致 fpm 延迟上涨问题;PHP 日志打印混乱问题;Nginx 502 和 504 问题定位;线上 fpm idle 掉底原因定位。


2018 年 8 月我们开始了《Redis5 设计与源码分析》一书的编写。团队总共 9 位成员,陈雷、方波、黄桃、李乐、施洪宝、熊浩含、闫昌、张仕华、周生政。有些人是已经是第二次写作了,有些人是第一次写作。


第一次写总是煎熬的,写一行,不理想,删了重写,再写还是不理想。将近一个月过去了,有些人仅仅写了半页。没有目标的前行果然是缓慢的。我们再次的确立了目标,10 月初每个人完成各自第一章的编写,11 月初完成各自第二章的编写,11 月底到 1 月初全员参与校稿,与出版社签订合约 1 月底向出版社提交第一版书籍。有了目标,效率确实提升了;周末甚至是国庆假期都能看到大家来公司写书。有小伙伴说,10 月 4 号国庆假期去公司写书,完成了一章,一看时间都晚上 11 点多了。


写书的过程是煎熬的,校稿的过程更是煎熬的。周末需要全体成员来公司,大屏幕投屏,每一章节、每一句话都需要一起审核,表达是否正确、是否清楚、是否有语法错误。很多时候可能因为一句话大家讨论好久。


理工科学生往往是不善于写作的,写完书校完稿后,有伙伴都打趣说写作能力提升了不少。


2019 年 8 月份,《Redis5设计与源码分析》书籍正式上架,这也是我们团队的第二本书。在此感谢几位兄弟在学习和研究过程中的陪伴与合作,本书是几位兄弟共同合作的结晶。

早读会也持续了三年时间了,时间不会亏待努力的人:

  • 听众变成了讲师,菜鸟变成了大神;

  • 思否(segmentfault)上发表了 101 篇文章,收获了 5000 声望,4000 粉丝;

  • 建立了 LNMPR 源码交流的微信群,从最初的二三十人的讨论群,到现在的将近 500 人的大群;

  • 早读会从 10 个人到 20 个人,再到 50 个人;从滴滴到学而思网校;从后端到前端工程师;从云平台团队到基础架构团队;


……


有人问我,学习源码对平时工作有什么帮助呢,在这里我以团队成员黄桃为例。入职时只是 D5 的初级工程师,只会做模块的开发,对于线上问题不知如何下手定位,方法论不足。坚持不到两年的学习后成长为 D7 的资深工程师,不仅能快速定位问题,更能从原理源码层面解释清楚,已经成长为团队的技术标杆。


我想告诉大家的是:


  • 每天一点成长,积聚起来就是巨大的收获;

  • 永远都要有学习的习惯,把成长作为最重要的事;

  • 对于技术问题,要打破沙锅问到底,越问会发现自己不知道的越多;

  • 人类对事物的认知是从无知→知道→了解→熟悉→掌握→精通 6 个阶段,坚持学习是唯一的道路;


希望更多的人一起来坚持学习,一起来坚持成长。

未来的我们计划:

  • 明年出版《Swoole 5 应用与原理》;

  • 明年出版《Nginx 源码分析》;

  • 培养几位精通 PHP、Redis、Nginx 等方面的专家。

作者介绍

陈雷,学而思网校技术负责人,清华与北京邮电大学硕士,曾在百度、腾讯和滴滴等公司工作,12 年后端架构经验。合著有《PHP7 底层设计与源码实现》。


李乐,好未来 PHP 工程师,西安电子科技大学硕士,乐于钻研技术与源码研究,对 Redis 和 Nginx 有较深理解。


2019-09-06 14:397520

评论 4 条评论

发布
用户头像
看到了李乐的名字,可惜不是自己。哈哈
2021-01-04 16:00
回复
用户头像
期待参与成为其中一员
2019-09-10 05:58
回复
用户头像
🐂🐂🐂
2019-09-09 19:28
回复
用户头像
加油💪
2019-09-09 19:20
回复
没有更多了
发现更多内容

五星门店小程序性能优化实践

京东科技开发者

GreatSQL优化技巧:将 MINUS 改写为标量子查询

GreatSQL

新质生产力:1核心,2摆脱,3关键,3因素,3特征;3要素,3措施,记住1233333……,轻松了解新质生产力

天津汇柏科技有限公司

新质生产力

苹果电脑如何安装macOS Monterey 12系统?苹果12系统安装教程

Rose

macOS 12 Monterey 苹果系统安装 macOS12系统下载 Mac系统如何降级

9n-triton部署bert模型实战经验

京东科技开发者

技术分享-日志链路追踪

京东科技开发者

苹果播放器推荐:Audirvana for Mac中文版

Rose

Mac软件 音乐播放器 Audirvana下载 Audirvana破解版

博睿数据可观测性平台——信创环境下的运维利器

博睿数据

AI构建新质生产力,合合信息Embedding模型助力专业知识应用

合合技术团队

Embedding #人工智能 大语言模型 OCR技术

GeminiDB Cassandra接口新特性FLASHBACK发布:任意时间点秒级闪回

华为云开发者联盟

数据库 华为云 华为云开发者联盟 华为云GeminiDB 企业号2024年4月PK榜

逐浪100人丨对话魔珐科技CEO柴金祥:AI时代,虚拟人的边界在哪?

自象限

永久破解版Parallels Desktop 18密钥 PD18虚拟机详细安装教程

Rose

Parallels Desktop 18破解 PD18安装教程 Mac虚拟机软件下载 Parallels 18下载

WinZip Pro:缩小文件,以便更快,更轻松地传输到便携式数据存储设备

Rose

解压缩软件 WinZip Pro WinZip Pro注册码

OpenTofu路在何方:定量分析Terraform issue数据,洞察用户需求|OpenTofu Day 闪电演讲

SEAL安全

开源 Terraform OpenTofu

大型企业通常如何进行单元测试?

派大星

单元测试 JUnit 测试覆盖率

测试要失业了?

禅道项目管理

团队管理 软件测试 测试 项目管理软件

技术团队的学习方法:每天学习100分钟,成功写出2本书_文化 & 方法_陈雷_InfoQ精选文章