写点什么

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

评论 4 条评论

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

Spring(二十),Java中级开发笔试题及答案

Java 程序员 后端

Spring(六),终于找到一个看得懂的JVM内存模型了

Java 程序员 后端

SQL语句基本语法及函数方法,java编程入门视频教程下载

Java 程序员 后端

SSM整合,kafka教程分享

Java 程序员 后端

String Bean 注入方式,2021年Java程序员职业规划

Java 程序员 后端

Spring源码学习~循环依赖(面试必问系列,java最新框架技术

Java 程序员 后端

技术+案例详解无监督学习Autoencoder

华为云开发者联盟

神经网络 算法 图片 无监督学习 Autoencoder

Tomcat性能优化前后,有多大的差距,今天测试给大家看(1)

Java 程序员 后端

Tomcat性能优化前后,有多大的差距,今天测试给大家看,linux视频教程推荐

Java 程序员 后端

She Builds Summit | 感受她的科技力量!

亚马逊云科技 (Amazon Web Services)

开源 职场

ThreadLocal内存泄漏分析与解决方案(1),linux文件系统原理

Java 程序员 后端

ThreadLocal内存泄漏分析与解决方案,Java完全自学手册下载

Java 程序员 后端

Thymeleaf基本使用,java基础入门第二版第二章答案

Java 程序员 后端

Tomcat实现热部署、热加载原理解析,线程池底层实现原理

Java 程序员 后端

Spring系列:自动注入(autowire,redis笔记

Java 程序员 后端

Vue 数组操作(1),java设计模式书籍推荐有代码讲解

Java 程序员 后端

Spring源码解析(二)AOP,java基础课程百度云

Java 程序员 后端

Spring(二),java基础面试题应届生

Java 程序员 后端

Spring(六)(1),mongodb入门书籍

Java 程序员 后端

Struts 学习笔记1 -Struts Framework 概览,BAT面试&高级进阶

Java 程序员 后端

质效中台助力实现质量度模型规模化落地

百度Geek说

架构 中台 测试 QA

代码检查规则:Python语言案例详解

百度开发者中心

Python 方法论 学习笔记

SQL 中判断条件的先后顺序,会引起索引失效么?,java虚拟机的原理

Java 程序员 后端

双11攻略来啦:参与Oracle VS openGauss 在线研讨,与盖国强老师、李国良教授面对面!

墨天轮

oracle opengauss 对话

Threadtear:一款多功能Java代码反混淆工具套件,小米java社招面试

Java 程序员 后端

Tomcat各种网络异常场景解决方案及优化,基础+底层+算法+数据库

Java 程序员 后端

Spring的XML解析原理,这一次全搞懂再走!,springmybatis整合原理

Java 程序员 后端

SQL注入漏洞防护看这一篇就够了!,万字长文

Java 程序员 后端

SymmetricDS 数据库双向同步开源软件入门,我要自学网java基础百度云

Java 程序员 后端

ThreadLocal到底是什么?它解决了什么问题?,kalilinux渗透教程视频

Java 程序员 后端

ThreadLocal基本使用和内存泄漏分析,kafka性能调优

Java 程序员 后端

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