写点什么

技术团队的学习方法:每天学习 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:397794

评论 4 条评论

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

重识用例(Use Case):你需要知道的一切

停下想想

用例图

鸿蒙HarmonyOS应用开发 | 探索 HarmonyOS Next-从开发到实战掌握 HarmonyOS Next 的分布式能力

申公豹

HarmonyOS

深度解析京东API接口:jd.item_get如何高效获取商品详情与SKU

代码忍者

京东API接口 京东商品API

基于STM32F4单片机实现ROS机器人主板

芯动大师

机器人 stm32 ROS

微店API接口深度解析:如何高效获取商品详情micro.item_get及Python代码示例

代码忍者

微店API

亚马逊API接口深度解析:如何高效获取商品详情与评论数据

代码忍者

亚马逊商品详情API 亚马逊API接口

鸿蒙HarmonyOS应用开发 | 「鸿蒙技术分享」HarmonyOS NEXT元服务卡片实战体验

申公豹

HarmonyOS

2024-12-21:从魔法师身上吸取的最大能量。用go语言,在一个神秘的地牢里,有 n 名魔法师排成一列。每位魔法师都有一个能量属性,有的提供正能量,而有的则会消耗你的能量。 你被施加了一种诅咒,吸

福大大架构师每日一题

福大大架构师每日一题

折叠屏2024的新东西、好东西、旧东西

脑极体

AI 手机

鸿蒙原生开发环境的创新与性能优化:从工具到跨平台支持的全方位提升

申公豹

HarmonyOS

原“明星级”自动驾驶创企「云骥智行」入局具身智能赛道,并完成产品首发!

机器人头条

自动驾驶 人形机器人 具身智能

HarmonyOS Next-从应用开发到上架全流程解析

申公豹

harmoyos

速卖通API接口深度探索:aliexpress.item_search关键词搜索商品与获取商品详情

代码忍者

API 接口 速卖通商品数据接口

今天正式成为PSF的成员啦!分享一下,法学院毕业后我和Python的故事

程序员晚枫

Python 程序员

淘宝电商运营的小秘籍,看完血赚。

科普小能手

运营 淘宝 技巧 电商 运营干货

鸿蒙HarmonyOS应用开发 |鸿蒙技术分享HarmonyOS Next 深度解析:分布式能力与跨设备协作实战

申公豹

HarmonyOS

苹果系统怎么切换成window系统?Mac和win快速切换教程

阿拉灯神丁

pd虚拟机 Mac双系统 苹果软件资源 Parallels Desktop下载 Mac软件切换软件

《计算机组成及汇编语言原理》阅读笔记:p9-p27

codists

计算机组成及汇编语言原理

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