写点什么

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

评论 4 条评论

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

全网最透彻!Dubbo整合SpringBoot详解,又通宵了

Java 程序员 后端

凡尔赛一波:美团面试就这?,java工程师面试突击第二季分布式

Java 程序员 后端

初学者这样玩 TypeScript,迟早进大厂系列!

Java 程序员 后端

全网火爆MySql 开源笔记,图文并茂易上手,阿里P8都说好

Java 程序员 后端

分布式事务与Seate框架:分布式事务理论,Java知识总结

Java 程序员 后端

使用Docker安装GitLab,小马哥springcloud视频

Java 程序员 后端

全网最新最全面Java程序员面试清单(12专题5000解析)

Java 程序员 后端

全网讲解最透彻:高性能网络应用框架Netty,仅此一篇

Java 程序员 后端

一个往返于海陆的撸猫打渔人,用影像记录生活的星辰大海

最新动态

凭借着这份Spring面试题,我拿到了阿里,字节跳动美团的offer

Java 程序员 后端

高并发场景下JVM调优实践之路

vivo互联网技术

性能优化 后端 JVM Java、

入门级的我在学完阿里大牛写的MySQL笔记后,简历上写了精通

Java 程序员 后端

刚从今日头条Java研发岗面试回来,我总结的失败原因(附面试题

Java 程序员 后端

关于垃圾回收你真的了解透彻了吗?我熬夜深度剖析了一下

Java 程序员 后端

写了四年的Java代码,分布式高并发都不会还做程序员?

Java 程序员 后端

农业末流211,Java自学一年的我是怎么走上大厂之路的

Java 程序员 后端

分布式下的数据一致性问题,怎么解决?,java编程教程下载

Java 程序员 后端

分布式基石|最难 paxos 和最易 raft?,java排序算法面试题

Java 程序员 后端

使用Git分布式控制系统,java岗位面试题总结

Java 程序员 后端

使用MySQL的NoSQL的七大理由,java基础入门第二版第三章答案

Java 程序员 后端

看动画学算法之:双向队列dequeue

程序那些事

数据结构 算法 程序那些事 11月日更 双向队列

做了两年P7面试官,谈谈我认为的阿里人才画像,你配吗

Java 程序员 后端

八、springboot 简单优雅的通过docker-compose 构建

Java 程序员 后端

公司来了一位前阿里大神,分享8面阿里面经(Java岗面试题集锦

Java 程序员 后端

写博客是一种乐趣,一种需要培养的乐趣,java技术架构SHEET

Java 程序员 后端

做个小项目那不是简简单单!Java实现航空航班管理系统。

Java 程序员 后端

先知道怎么手写一个分页查询,再去使用PageHelper吧

Java 程序员 后端

我的应用我做主丨动手搭建招聘小应用

华为云开发者联盟

低代码 招聘 应用 AppCube 应用魔方

关于Redis主从节点数据过期一致性的思考,它真的足够一致了吗?

Java 程序员 后端

使用 Mybatis 真心不要偷懒!,kafka大数据架构

Java 程序员 后端

分布式ID生成策略,我和面试官掰扯了一个小时

Java 程序员 后端

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