掘金 AMA:听掘金小册《Redis 深度历险》、《深入理解 RPC》的作者 -- 老钱谈技术输出、沉淀那些事

5,207 阅读13分钟

本周 沸点,掘金团队请来了掘金小册《Redis 深度历险》、《深入理解 RPC》的作者 -- 老钱做了为期三天的 Ask Me Anything (AMA) 活动(已结束)。

我们在此精选了一些来自用户的提问及老钱的回答。

关于老钱:

  • 掘金小册《Redis 深度历险》、《深入理解 RPC》的作者
  • 互联网分布式高并发技术十年老兵,目前任掌阅科技资深后端工程师。熟练使用 Java、Python、Golang 等多种计算机语言,开发过游戏,制作过网站,写过消息推送系统和 MySQL 中间件,实现过开源的 ORM 框架、Web 框架、RPC 框架等
  • 掘金专栏:juejin.cn/user/310467…
  • 知乎专栏:zhuanlan.zhihu.com/codehole
  • 微信公众号「码洞」原创作者;
  • Github 地址: github.com/pyloque

社区小伙伴提问

想知道老钱是如何源源不断做出好文章的输出的?不断坚持下去的动力是什么?如何平衡工作和学习? ─ @每天晒白牙

老钱,你好,不知道从哪个机缘巧合关注了公众号,看老钱的文章,收获很大,最近在读redis小册,对我做业务开发的帮助挺大的。我也买了好多书,看了很多博客,开了公众号和博客,写过几篇,但现在市面上有好多作者写了不错的系列博客,自己写的很难突破他们的范围。而且也不能通俗易懂的把原理阐述清楚,可能是一种为了写而写。所以大多在中途放弃了。我也工作几年了,但只比老钱小3岁,老钱现在很多粉丝,我想知道老钱是如何源源不断做出好文章的输出的?不断坚持下去的动力是什么?如何平衡工作和学习?尤其是加班较多的情况,希望老钱指导一下

我写作的目的更大程度上是为了提升自己的知识水平,因为写作能让我发现个人知识的缺陷。为了写一篇文章需要花很多时间去了解相关的知识点,需要看源码,查stackoverflow,画图,写代码等。我会将每一篇文章看成自己的一个小作品来认真对待。当这个作品完成的时候我会体验到成就感,这大概就是促使我继续写下去的动力所在。

软件行业有一个调试技能叫着「小黄鸭调试法」,我觉得写作跟这个有点类似,就好比你眼前有一只小黄鸭,你在尝试将知识一步一步介绍给它听,力图让它听懂理解。自己懂和让别人也懂真的不是一回事,要将写作的心态从炫技转变为让读者看懂。如果能让读者看懂,再稍微炫技一点那就是锦上添花的东西了。

将粉丝数量看淡一点,努力提升作品的质量,粉丝读者自然就会过来,这是一个水到渠成的过程。很多技术文章市面上确实都有,但是用自己的语言讲出来,用自己的图花出来,用自己的代码写出来,那就是一个不同的作品。就好比市面上已经有了那么多Redis书籍的情况下,我还是写了自己的Redis小册,因为我相信用自己的方式讲出来肯定可以给读者带来不一样的体验。

您写小册的初衷是什么?以及对小册产品的评价是怎样的?什么地方需要优化? ─ @阴明

在掘金写了两本小册,销量都很不错,内容也很赞。您写小册的初衷是什么?以及对小册产品的评价是怎样的?什么地方需要优化?

我写小册的初衷是因为我看了掘金的小册后觉得自己也能写出这样高质量的内容。能够写出一本书,虽然很薄,那也是可以给自己的职业生涯添彩的事。另外我发现技术写作并不只是在奉献知识,写作能让自己看到自己知识掌握的不足之处,促使我去进一步查阅资料解决自己给自己提出的很多问题,这样可以能让自己的技术知识更加系统化全面化。每次写完一节都会有成就感,就好比我输出的这些知识再也不会被大脑遗忘了。

我很喜欢小册这个产品,当我第一眼看到小册首页的书籍列表时我就充满了好感。它比纸书便宜,更重要的是内容精简,是介于碎片化和系统化之间的一种阅读品种,可以让我们将很多零散的时间积聚起来进行系统化的知识学习。它的阅读体验也很好,我平时几乎从来不用手机来看电子书,但是小册给我的感觉很不一样,只要内容里面没有充斥大量的代码,读起来还是非常不错的。

小册的生产效率高,从开始写作到上线,整个流程也就2~3个月。内容上有错别字的话,可以实时线上修改,关于这一点我要感谢广大小册读者们,你们帮我纠正了好多错别字^_^。如果是纸书的话,可能要接近一年作者才能看到自己的作品出版发表。内容上出现了错误,你都没办法撤回了。相比写小册而言,写纸书似乎是一种折磨。

小册的另一个好处就是粉丝与读者的实时互动,能够看到几千个读者和你一起交流真是一件很有成就感的事,当然前提是内容要好,读者对作者的评价是正向的。如果写的不好,可能会遭遇读者的口水,你也要有心理准备。有人问我为什么能够写出这样高质量的作品出来,我想可能是因为我人比较脆弱,太害怕读者骂我了^_^。

要说小册的缺点,那就是它还年轻,还不够成熟,需要摸着石头过河,有很多经验教训需要吸取。我相信小册这个模式是极好的,是非常有价值的。也希望更多的技术作家也能加入到小册制作的队伍,让我们一起打造一本有一本高质量的技术作品来。

最后要感谢掘金平台,我在写第一本小册之前我只能说自己是个写公众号的,才写了几个月。写完第一本《深入理解RPC》后,我给自己挂上了一个「实习技术作家」的称号。等到第二本《Redis 深度历险》上线后,我开始觉得自己是一个职业的技术作家了。^_^

如何高效工作和高效学习的秘诀?─ @蒋海博

老钱,您好,既然您有孩子,请问如何平衡陪伴孩子和工作的时间?我看您又工作又写出,应该很忙吧。还有是否能分享下如何高效工作和高效学习的秘诀。谢谢。

我在掌阅的工作本身不是太忙,至少近期时间上还有不少闲鱼。所以我才会有时间来做一些技术写作的事。白天家里有老人帮我看孩子,每天下班回家,孩子睡得也早。到了周末,我总会花一些时间带着孩子去逛商场,这也就是平时最主要的亲子活动了。我本人比较宅,社交活动很少,所以剩下的时间就可以专心做自己喜欢的事,如果一个人整天到处跑,除了没时间之外,估计心态也会比较浮躁。

市面上所有的编程书籍都有一个规律,那就是越基础的书越多,越高级的书越少。随着自己知识的渐长,市面上的书籍大多已经不能满足我的需要,所以平时的学习知识来源还是主要靠网络分享、靠源码、靠google、靠stackoverflow。除非是对某个新的领域感兴趣,我会买一些基础的书来了解入门。工作上当我做一件事的时候,我会非常专心地去做,我会带着耳机希望自己不被打扰,安静的状态平和的心境就会带来效率的提升。

老钱年轻有为,可以分享下你在业余时间是如何提高自己技术的吗?─ @Lanwy

老钱年轻有为,可以分享下你在业余时间是如何提高自己技术的吗

我看过很多技术的书,绝大多数都会走马观花的看了,虽然理解不深,但是见识较广。而真正提升自己技术的还是要靠自己写代码,通过写代码才能意识到原来有那么多的细节需要考虑,有那么多的知识漏点需要我用google用stackoverflow来解决。另外和同事们相互交流讨论也是很重要的,前提是有一个好的技术氛围,如果没有,那就需要领导们带头建设。如果你在学习一门技术时非常枯燥,有一种触顶的感觉,那可以考虑旁敲侧击,通过学习周边的另外一门稍有关系的技术知识,也许你会有很多新的发现。

在时间方面,我投入的是很多的。记得多年之前我在医院做手术的时候,你知道医院是一个非常无聊的地方,那个时候我还在拿着自己的ipad阅读技术电子书。

如何选择自己的技术路?─ @RonyRen

两个小册都已经入手,但静不下去看,很懒惰。 我想问:1. 是该找合适自己技术方向的工作,还是找与技术稍微有点有关的工作?

如果你要持久走技术路线,沉下心来积累技术是很有必要的。即使你要去找「与技术稍微有点关系」的工作,技术知识知道的也是越多越好。刚开始学习技术可能略显枯燥无味,但是随着你做出了一个又一次作品出来,成就感与日俱增,你对技术的态度有可能从一门单纯的工作上升为一种爱好,但是这需要时间,要有耐心。人生的选择犹如小马过河,还需要自己来决定。

如何选择后端编程语言?─ @DiDiQi

您好,我是一个前端,现在想学一些后端语言,不知道您是否能就Python、Java、Go对新手的友好程度谈一谈看法呢?都说Python 3天就能学会,是真的吗?

建议Python,入门简单,只是性能弱一些,不过在大城市这门语言还是非常热的。Go也很不错,它比较适合会C语言或者Python语言的人上手,如果学javascript的突然要来学Go恐怕会遇到不少障碍,Go语言是一门新兴语言,对它的需求日益上涨,虽然现在招聘需求还不是很旺盛,但是未来几年可能还会继续上涨。Java语言个人认为可能是最难学的了,虽然也许很多读者不会这样认为。但是不可否认的是Java语言应用最为广泛,找工作最容易,生态圈最为丰富,虽然这门语言被很多人诟病「老」、「重」、「笨」,但是要拿来挣工资那还是非常不错的,阿里系90%不都是java语言么。

最后任何一门语言想学深,都不是容易的事,需要下苦功夫。

如何平衡多门编程语言?─ @赵加兴

您是如何学习与掌握多种语言的呢?目前我正在使用 PHP Python Java ,感觉很难去深入, 每个语言需要的精力都很多,您是如何平衡的?

我所掌握的这多门语言,每一种都花了3年以上的时间。而且我在学习一门语言时,那就专心的积累这门语言的知识和经验,脚踏多只船会让人心浮气躁。当你自我感觉这门语言已经掌握的比较深入,做的项目也比较丰富的时候,很多本质的东西已经看清,也就可以尝试去吃点其它的零食了。

学习一门语言不只是它的语法,还有它的运作机理,周边的生态,优秀的开源项目,这些都是需要深入了解的,要用一种刨根问底坚持不懈的研究态度来对待它。以前我听说程序员应该一年学习一门编程语言,现在发现这个错误的,一年的时间搞定一个编程语言是不可能的,至少对于我这种资质的程序员来说根本做不到,我需要的时间至少是三年。

有哪些高效工作和高效学习的秘诀?─ @蒋海博

老钱,您好,既然您有孩子,请问如何平衡陪伴孩子和工作的时间?我看您又工作又写出,应该很忙吧。还有是否能分享下如何高效工作和高效学习的秘诀。谢谢。

我在掌阅的工作本身不是太忙,至少近期时间上还有不少闲鱼。所以我才会有时间来做一些技术写作的事。白天家里有老人帮我看孩子,每天下班回家,孩子睡得也早。到了周末,我总会花一些时间带着孩子去逛商场,这也就是平时最主要的亲子活动了。我本人比较宅,社交活动很少,所以剩下的时间就可以专心做自己喜欢的事,如果一个人整天到处跑,除了没时间之外,估计心态也会比较浮躁。

市面上所有的编程书籍都有一个规律,那就是越基础的书越多,越高级的书越少。随着自己知识的渐长,市面上的书籍大多已经不能满足我的需要,所以平时的学习知识来源还是主要靠网络分享、靠源码、靠google、靠stackoverflow。除非是对某个新的领域感兴趣,我会买一些基础的书来了解入门。工作上当我做一件事的时候,我会非常专心地去做,我会带着耳机希望自己不被打扰,安静的状态平和的心境就会带来效率的提升。


本期 AMA 社区小伙伴提了许多实用问题,感谢老钱 认真地为掘金小伙伴解答了不少疑问。浏览更多的问答,可以到老钱的 AMA 进行阅读和讨论。


老钱 AMA 福利:掘金小册免费码

老钱从所有提问中选择一个他觉得最有价值的 3 个问题赠送对应的提问者一枚小册免费码,同样,掘金社区根据问题获得的点赞数赠送对应的提问着一枚小册免费码。拿到免费码的小伙伴记得查收邮件哟~