前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >「面向信仰编程」Draven 专访:像写代码一样,用树形的结构写文章

「面向信仰编程」Draven 专访:像写代码一样,用树形的结构写文章

原创
作者头像
Shopee技术团队
修改于 2022-04-23 14:37:05
修改于 2022-04-23 14:37:05
7020
举报
文章被收录于专栏:Shopee技术实践Shopee技术实践

本文首发于Shopee技术团队

站在网络与技术前沿的不少开发者们,还保持着如今看起来略显古早的 Web 2.0 时代行为——写博客。

技术博客写作是工程师们沿袭已久的传统。对于各种代码段、架构图,和层级分明的逻辑推导过程来说,技术文章无疑是一种经过检验的有效交流方式。

写技术文档则是工程师们的另一种日常。面对技术文档,有人投入,有人头疼。

写代码与写文档,到底能不能够获得和解?本期读书日特辑,我们邀请到一位收获了不少读者的 Shopee 工程师,来和大家一起聊聊技术写作这回事儿。

Draven 是来自 Shopee Engineering Infrastructure 团队的后端工程师。在工作之余,他还拥有另一重身份——技术写作者。

如果你恰巧读过「面向信仰编程」的博客文章,没错,Draven 就是那位不愿透露姓名的博主。他在博客分享自己的技术学习笔记,和对程序设计原理的思考,还有发布后大受欢迎的技术文章配图指南。

从博客中可以窥得 Draven 对系统性思考与总结的偏好。他写系列文章,从「为什么这么设计」到「看看论文」;他在学习与探索 Go 语言的过程中,将思考剥离为文章,开源成电子书,又在 2021 年末集结成册,出版纸质书。

如何从写博客到出书?写技术文章究竟带来了什么?又怎样快速接触新的知识?以下是 Draven 关于技术写作与知识获取的分享。

Q:先简单介绍一下自己吧 :D

A: 我是 Draven,很多人可能都是通过我的博客听说我的。在大学期间主要学的是软件工程,大学四年基本都是在做 iOS 客户端开发,毕业之后就开始做后端开发,做过交易所、也做过调度系统,近两年主要做 Kubernetes 相关的开发工作。目前对云原生、操作系统内核都比较感兴趣。

Q:最开始写技术文章的时候,应该还是在校时期?当时是怎么决定要开始搭建博客?受谁的影响比较大?

A: 开始写博客的时候应该是在大二,原因也比较简单,当时受到学长的影响,提到写博客对以后找工作都比较有帮助,所以自己就开始折腾博客了。比较早的时候是当做笔记来写的,后面发现博客有了读者,就把之前个人觉得价值比较低而且没什么人看的内容都删掉了。

Q:你在一篇博客文章中提到,把「提高技术影响力」加入了自己的 OKR,今年的 OKR 里还有这一项吗?替读者们问一下,为什么坚持写了好几年的博客这几个月停更了?

A: 今年的 OKR 还是有这一项的,只是具体内容在完成或者到 Deadline 之前就先不说了。这半年的很多业余时间都在准备《Go 语言设计与实现》的出版,而且作为内容的创作者来说,不是任何时候都是有表达和分享的欲望以及内容的,博客连着写了五六年的时间,自己逐渐对之前想要分享的题目失去了兴趣,所以想找一些新的方向和内容。

Q:你前面提到「在一个主题中的重复写作是痛苦的」,但实际上你在博客写作中也规划了主题,例如「为什么这么设计」系列。写书和写博客,两种主题写作的最大区别在哪里?它们享有同一种痛苦吗?

A: 写书和写系列博客都是内容的写作,前者往往需要内容有更强的相关性、连续性以及足够的篇幅,这也需要持续对同一内容进行输出,因为我们在写书的过程中有很明确的目的性,所以这个周期是比较漫长和痛苦的,不容易坚持下来。不过也正因为困难,你在完成后得到巨大的成就感,也会释放很多压力。后者更像是对一组博客的分类和整理,它没有明确完成的时间点,所以写起来反而会更随意,少了很多压力,如果实在觉得这个主题写不下去了,换一个主题就可以了,倒是没有写书的过程困难。

Q:在工作之余写博客、写书,做技术分享,有没有计算过在这一类事情上投入的时间成本?让你持续下去的动力有哪些?

A: 写博客和写书对于自己来说其实是一个输入和输出同时进行的过程,这些付出的时间最终都会回馈到自己身上,你会发现原本自己认为已经掌握的知识其实并没有掌握,缺失的细节会在这个过程中补齐,这个过程需要我们严格遵循因果关系,得到合理的逻辑链条,这样才能真正得到相对正确的知识。

Q:结合自身经历,你怎么看待技术写作/技术分享对 Developer 的收益?

A: 提到技术写作、技术分享的收益,很多人首先提到的都是技术影响力,这里不想谈关于技术影响力这个听起来比较虚的话题。这里更实际地介绍一下,这件事情对我们的个人能力,尤其是对自己带来了哪些改变。技术写作并不是少数人才会做的事情,我们输出的技术方案和文档都需要掌握一定写作的能力,如何写出符合认知、易于理解的文档,在工作中是与写代码同样重要的,我一直都认为能写好代码的人一定能写好文档。以个人为例,如果现在重新读以前写的博客,会发现以前的文章逻辑不够缜密,结构也不够严谨,今天在写作时会更加注重结论的推导过程,与过去相比是能感觉到明显有提升的。我们使用树形的结构写代码,控制组件的依赖关系,也同样用树形的结构写文章,降低读者的心智负担,这些都是相似的。之前看到过一句话,写得非常好,在这里分享给大家:「写作之难,在于把网状的思考,用树状的语法结构,转换成线性字符串。」

Q:从博客中可以看到,你最开始做 iOS 开发,然后去写了 Ruby on Rails,后来也折腾过 Java,到 2020 年担任 K8s Scheduling SIG 的 Reviewer,方向转变的过程中觉得最困难的是什么?以及如果有的同学想转到一个感兴趣,但却在日常工作中接触不到的方向,有什么样的建议?

A: 方向转变的过程中,我们遇到的问题应该都是相似的:如何凭借已经有的知识快速探索新的领域。如果想转到一个感兴趣的方向,建议用好搜索引擎搜索该领域的关键字,然后用深度遍历和广度遍历的方式逐一研究搜索出的结果,快速筛选信息,在这个阶段只要肯花时间,提升是非常快的,学习新知识可能会痛苦,但是探索和收获的过程一般都是快乐的。

Q:接触新的技术栈时,你会如何掌控自己的学习路径?在学习的过程中,参考他人的相关文章、书籍或是社区中的经验交流,起到了多少作用?

A: 这两年接触新的技术栈一般都比较功利了,平时只会去了解这些组件能够做什么,只有真正用到的时候才会边用边查,也是因为时间相对有限,没有太多大块的时间能够集中阅读书籍,所以挑选书的时候也比较谨慎。参考他人的相关文章、书籍或是社区中的经验交流还是很有用的,不过还是要感谢搜索引擎把这些优质的内容推送到我们的结果中。

Q:最近在读哪些书或者论文?能推荐一些吗?

A: 最近在重新学习一些操作系统、网络和 C++ 的知识,在看《UNIX 网络编程》《Effective C++》。论文的话可以看一下去年的 SOSP '21,我比较关注调度、分布式系统这些方面的内容。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
微信工程师关于如何写好一篇技术文章的小Tips
在学习和工作过程中,作为工程师的大家都会试着写一些技术文章,或用于沉淀总结,或用于分享经验,或用于传播知识。最近几年笔者在工作之余也会写一些技术文章,也经常会思考“如何写好一篇技术文章”这个问题。但看网络上虽然好的技术文章文章很多,但探讨“如何写好技术文章”的文章比较少,本文试着就这个话题谈一下自己的一点浅见。笔者才疏学浅,目的是抛砖引玉,希望和大家一起探讨学习。
ruoyuliu
2023/03/24
1.3K1
微信工程师关于如何写好一篇技术文章的小Tips
如何搭建文章结构——常见技术文章的逻辑框架
作为一个技术人,我们往往都沉浸于技术的海洋中学习。 在学习技术的过程中,我们不断的在输入知识,同时我们也需要关注输出。 输出是也一种学习的过程,无论是写博客、写文章、写书,还是做分享、做演讲,都是一种输出的过程。有时输出是你坚持学习的动力,有时是你巩固和总结学习的过程,有时是你向别人传递知识的方式。”费曼学习法” 其实就是输出的一种形式,它的核心思想是:如果你想要学习一件事,那么你就需要把这件事教给别人。
LinkinStar
2023/05/01
4990
开发者如何构建技术影响力
技术影响力分为两种,利用技术打造的个人影响力,和个人的技术影响力。两者所有不同的是,前者是以技术之名,成就个人的影响力——简称网红。他/好们可能不写技术文章,只是会辅助一些个人的观点和看法。后者,则是通过技术去影响他/她人,让他/她们去实践这些技术。两者没有对与错,只有各自的追求,与各自的利益诉求。
不脱发的程序猿
2021/01/20
1.3K0
聊聊写技术文章这件事
当然,不局限于内容的发布渠道,也不仅仅是技术类的内容,而是和写作这件事有关的一些话题。
老_张
2023/03/01
2340
聊聊写技术文章这件事
为什么很多优秀的程序员都喜欢写博客,这个秘密终于被我发现了
你会写博客吗?你有养成好的习惯去写博客吗?在看这篇文章之前,我先提出这两个问题!好了,我们进入正文,来看看很多互联网大佬什么热爱写博客,从博客中收获到了什么,我们来一起看看!
艾编程
2022/04/13
8120
为什么很多优秀的程序员都喜欢写博客,这个秘密终于被我发现了
技术文章如何取标题、封面、配图
当我们有了一个好的想法和内容,并且有了合适的写作框架,构建一篇不错的技术文章就不是什么难事了。但是,如果你想让你的文章有更多的阅读量,那么你就需要花一些时间来构建一个好的标题和封面配图。 对于一篇文章,内容肯定是关键,但如果标题无法吸引读者,很多时候,读者就很难点进来看。
LinkinStar
2023/05/01
3590
技术文章如何取标题、封面、配图
技术人生 | 技术人如何打造个人品牌
编者:本文来自携程框架研发部高级经理魏晓军在内部活动中分享,介绍了其在撰写国内第一本React Native相关书籍《ReactNative入门与实战》时的经历和感想,从中我们或许可以一窥技术人该如何打造个人品牌。以下为分享的主要内容实录。
携程技术
2018/03/16
9370
技术人生 | 技术人如何打造个人品牌
谈谈写技术文章这个事情
这段时间说实话有点不太想写文章了,比较累,有点动力不足,曾经天真的以为读者数量和增幅是成正比的,结果发现想太多了。
艾小仙
2021/04/13
5550
谈谈写技术文章这个事情
刚入职的学弟一直埋头写代码,我却让他做这件事。。
最近在带大家做新项目,欢迎参与 大家好,我是鲏。 很多初入职场的程序员朋友,可能很长一段时间都在重复下面的过程: 组长分配一个任务 --> 你埋头写代码 --> 收到 Bug 反馈 --> 你埋头改代码 ... 有位刚入职的学弟就是这样,虽然每次的工作都能按时完成,但总感觉自己是一个 “写代码的机器”(听别人的,负责把需求翻译成代码),也没有什么成长。 快别这样了!写代码真的只是唯一能做的吗? 需求的背景你清楚了么?需求方是谁?为什么提这个需求? 为什么要这么做需求,还有其他的方法么? 这条需求背后是关于哪
程序员鱼皮
2023/03/29
3550
刚入职的学弟一直埋头写代码,我却让他做这件事。。
撰写高质量技术文章的实践指南【从选题到读者互动的全流程经验分享】
撰写技术文章不仅是分享知识的重要方式,也是个人技术提升和职业发展的有力工具。以下是我在撰写技术文章过程中的一些经验和心得,希望能对你有所帮助。
一键难忘
2024/07/21
1.1K2
写一篇好的技术文章有多难?
注意:这里所指的技术文章,不是某个问题的相关回答。而是着重于一些知识要点、架构等等,复杂的文章。
不知雨
2018/08/21
3880
用语雀写文章了,功能真心强大!
大家好,我是栈长。 大家都知道,程序员这个职业需要不断总结,对我印象最深的一件事是,我曾经花了几天时间解决了一个惊天 bug,而几个月过后,这个 bug 再次发生了,我知道我之前解决过这个 bug,但再次发生时却束手无策,怎么想也想不出当时是怎么解决的。。 相信大家都有遇到过这样的场景吧? 所以,自从那件事过后,每次解决了什么难解决的问题我都会把解决方案记下来,后面做了系统架构师,也会督促团队成员记录日常 bug 及解决方案的习惯,这样能帮到自己,也能让其他人少走弯路。 工作、生活的琐事太多,我不相信这世上
Java技术栈
2022/07/12
1.3K0
用语雀写文章了,功能真心强大!
程序员怎样才能写出一篇好的技术文章
首先,这算是一篇回答知乎问题 程序员怎样才能写出一篇好的博客或者技术文章?的文章。
技术小黑屋
2018/09/05
7870
我是如何写一篇技术文的?
所以这里我就把这差不多两年写作时间里踩过一些坑和一些经验,总结成了一些小小的心得分享给大家
三友的java日记
2023/09/19
2590
我是如何写一篇技术文的?
我从写技术博客中收获到了什么?
我是 J_Knight_,熟悉我的人都应该知道我是一名刚工作满3年的非科班 iOS 开发者,而且一直坚持写技术博客快有2年半的时间了。
用户1740424
2018/12/25
5300
我从写技术博客中收获到了什么?
手把手教你写好技术文章【8K字长文】
本文由MoonWebTeam团队的owen、四月一日、HNA、challen、生皮土豆、janse合作编辑而成,部分内容来自于网络、参考文章,如有侵权请联系删除。 引言 很多人都有写文章的想法,但每次提起笔,却不知从何下手,觉得很难,本文将手把手教你如何写好一篇技术文章,为大家带来最全面、最细致、最易上手的终极指南,从此不再怕写文章。 1 为什么要写文章 思考“Why”比学习“How”更重要,在开始之前,我们从『利己』和『利他』两个角度分别来分析为什么要写文章: 1.1 对作者的好处 1.1.1 复盘学习成
欧文
2023/02/28
9590
手把手教你写好技术文章【8K字长文】
技术人如何提升自己(强烈推荐)!!!
作为一个技术人,我们不仅要不断地学习来提升自己不被淘汰,另外也要不断总结自己的经验和教训,踩过的坑、走过的弯路要善于去思考如何避免下次再踩坑?我们也不要一直局限于自己的技术世界一心只敲代码,两耳不闻窗外事,这样未免就有点太局限了,也不利于自己的发展。
程序员飞飞
2020/03/02
1.3K0
程序员如何打造自己的影响力
所谓影响力,指的是在某个领域或行业的知名度、号召力,它是一种无形的优质资产,是我们在面对激烈的竞争环境下不被淘汰的法宝。
xiangzhihong
2022/11/30
3170
书终于交稿了,聊聊写技术书这件事
这两天刚刚把与出版社签约的书交稿,虽然内容还在与编辑逐步勘定、修改。但大块头的事基本上已经完成。细心的朋友可能看到最近公众号“程序新视界”更新没那么勤了,就是因为忙这事。今天就聊聊写书过程的一些杂谈。
程序新视界
2019/11/28
6210
「嘉年华观会」解锁创作的N种方式!漫步“增一行代码”开发者嘉年华大会有感
本次活动有幸能有充足的时间体验整个腾讯全球数字生态大会开发者嘉年华大会,也十分感谢腾讯云社区认可邀请本人作为本次腾讯技术创作特训营第二季第4期分享嘉宾,来给大家分享我五年的技术写作生涯的感悟和经验。
fanstuck
2024/09/10
2680
「嘉年华观会」解锁创作的N种方式!漫步“增一行代码”开发者嘉年华大会有感
推荐阅读
相关推荐
微信工程师关于如何写好一篇技术文章的小Tips
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档