你好,我是郝林。

专栏到这里,就要结束了。

差不多在半年以前(2018年的第二个季度),极客时间的总编辑郭蕾找到我,说想让我写一个关于Go语言的技术专栏。

我那时候还在轻松筹担任大数据负责人,管理着四个技术团队,每天都非常非常忙碌,看起来并没有多余的精力去写这么一个在时间和质量上都有着严格要求的专栏。

我们俩也是老相识了,所以,我当时斩钉截铁地说:“写不了,没时间”。当然了,要是连续熬夜的话或许可以写得出来,我写《Go并发编程实战》那本书的时候就是这么干的。

可是,我在2017年年末已经因为急性胰腺炎惊心动魄过一回了,需要非常注意休息,所以我想了想还是决定小心为妙。

也许是凑巧,也许是注定,在2018年的6月份,我的胰腺炎复发了。我当时还在面试,意念上已经疼得直不起腰了,但还是坚持着完成了面试。

后来在医院等待确诊结果的时候,我的第三个念头竟然就是“也许我可以有时间去写那个专栏了”。现在回忆起来,当初的想法还是太简单了。

不过,专栏这件事情终归还是向着合作的方向发展了。因为郭蕾的坚持和帮助,也因为极客时间的慷慨解囊和多次扶持,在经过了不少的艰难困苦之后,这个专栏如今终于写作完成了。我对此感到非常的高兴和欣慰。

专栏是如何进行写作的

我在写这个专栏的时候,已经尽我所能地让其中的每一句话都准确无误,并且尽量地加入我最新的研究成果和个人理解。

所以,即使是对于我自己,这个专栏的价值和意义也是很大的。我通过这个专栏的写作又倒逼我自己仔细地阅读了一遍Go语言最新版本的源码。

我当初给自己定下了一个关于文章质量的目标。我要保证的是,专栏中的每一篇文章的质量都绝对不能低于这个目标。

没错,这里只有目标,没有底线。对于我个人而言,只要是边界明确的事情,我就不喜欢设置底线。因为只要有了底线,作为更高要求的目标往往就很难达成了。这样的双重标准会让目标形同虚设。

为了达成目标,我在写每一篇文章的时候都差不多要查阅不少的Go语言源码,确定每一个细节。每一个版本的Go语言,其内部的源码都会有一些变化,所以以前的经验只能作为参考,并不能完全依赖。

我需要先深入理解(或者修正理解)、再有侧重点地记录和思考,最后再进行贯穿式的解读。在做完这些之后,我才会把精华写入文章之中。

我觉得,人的成就不论大小都需要经过努力和苦难才能达成。和我共事过的很多人都知道,我是一个不会轻易给出承诺的人。不过,一旦做出承诺,我就会去拼命完成。

大多数时候,我并不觉得在拼命,但是别人(尤其是我的家人)却告诉我“这就是在拼命”。现在想想,这种完全靠爆发力取胜的做事方式是不对的,做工作还是应该顺滑一些,毕竟“润物”需得“细无声”。

专栏仍有瑕疵

虽然这个专栏的文章已经全部完成了,但是由于我的精力问题,专栏在呈现形式上还有一些瑕疵。

比如,没有配图,没有给出思考题的答案等。我在极客时间App的留言区里已经多次跟大家解释过这件事了。

但是为了保证大家都能够知晓,我在这里再说一遍:我会再利用几个月的时间为这个专栏补充配图,并简要地给出所有思考题的答案。

我已经开始绘制一些图片了,绘制完成就会同步更新到文章中,你也可以返回去重新阅读一遍。

(目前正在绘制的图样)

我补充的顺序是,配图在先,思考题答案再后。因为我的精力实在有限,我会争取在明年春节之前完成补充。还希望大家能够理解。

前方的路

每个人的路都是不同的,即便他们在做着一模一样的事。前方的路只有你自己能够开创,但是我希望本专栏能够作为你的一盏指路明灯。我个人认为,至少对于大部分读者而言,我的这个愿望已经达成了。你觉得呢?是否已经有了足够的收获呢?

无论如何,只要你还想继续走在Go语言编程的康庄大道上,积极地加入到有活力、有情怀的技术社区当中准没错。我想,极客时间就将是这样一个社区。当然,我们的“GoHackers”社群也是。

在最后的最后,我想去表达一些感谢,我要由衷地感谢我的家人!如果不是他们,别说写专栏了,我坐在电脑前面打字写文章可能都是奢望,我还要感谢所有帮助过我的人。还有在阅读这篇文章的你们,也是我最大写作动力。

好了,我就先说到这里吧。后面有的是机会。最后,祝你学习顺利,在成为技术大神的道路上披荆斩棘,所向无敌!

戳此查看Go语言专栏文章配套详细代码。

Go语言核心36讲52的更多相关文章

  1. Go语言核心36讲(导读)--学习笔记

    目录 开篇词 | 跟着学,你也能成为Go语言高手 导读 | 写给0基础入门的Go语言学习者 导读 | 学习专栏的正确姿势 开篇词 | 跟着学,你也能成为Go语言高手 Go 语言是由 Google 出品 ...

  2. Go语言核心36讲(Go语言进阶技术八)--学习笔记

    14 | 接口类型的合理运用 前导内容:正确使用接口的基础知识 在 Go 语言的语境中,当我们在谈论"接口"的时候,一定指的是接口类型.因为接口类型与其他数据类型不同,它是没法被实 ...

  3. Go语言核心36讲(Go语言进阶技术十六)--学习笔记

    22 | panic函数.recover函数以及defer语句(下) 我在前一篇文章提到过这样一个说法,panic 之中可以包含一个值,用于简要解释引发此 panic 的原因. 如果一个 panic ...

  4. Go语言核心36讲(Go语言实战与应用一)--学习笔记

    23 | 测试的基本规则和流程 (上) 在接下来的日子里,我将带你去学习在 Go 语言编程进阶的道路上,必须掌握的附加知识,比如:Go 程序测试.程序监测,以及 Go 语言标准库中各种常用代码包的正确 ...

  5. Go语言核心36讲(Go语言实战与应用三)--学习笔记

    25 | 更多的测试手法 在本篇文章,我会继续为你讲解更多更高级的测试方法.这会涉及testing包中更多的 API.go test命令支持的,更多标记更加复杂的测试结果,以及测试覆盖度分析等等. 前 ...

  6. Go语言核心36讲(Go语言实战与应用四)--学习笔记

    26 | sync.Mutex与sync.RWMutex 从本篇文章开始,我们将一起探讨 Go 语言自带标准库中一些比较核心的代码包.这会涉及这些代码包的标准用法.使用禁忌.背后原理以及周边的知识. ...

  7. Go语言核心36讲(Go语言实战与应用十四)--学习笔记

    36 | unicode与字符编码 在开始今天的内容之前,我先来做一个简单的总结. Go 语言经典知识总结 在数据类型方面有: 基于底层数组的切片: 用来传递数据的通道: 作为一等类型的函数: 可实现 ...

  8. Go语言核心36讲(Go语言实战与应用十八)--学习笔记

    40 | io包中的接口和工具 (上) 我们在前几篇文章中,主要讨论了strings.Builder.strings.Reader和bytes.Buffer这三个数据类型. 知识回顾 还记得吗?当时我 ...

  9. Go语言核心36讲(Go语言实战与应用二十二)--学习笔记

    44 | 使用os包中的API (上) 我们今天要讲的是os代码包中的 API.这个代码包可以让我们拥有操控计算机操作系统的能力. 前导内容:os 包中的 API 这个代码包提供的都是平台不相关的 A ...

  10. Go语言核心36讲(Go语言实战与应用二十四)--学习笔记

    46 | 访问网络服务 前导内容:socket 与 IPC 人们常常会使用 Go 语言去编写网络程序(当然了,这方面也是 Go 语言最为擅长的事情).说到网络编程,我们就不得不提及 socket. s ...

随机推荐

  1. SCP远程传输文件

    今天想用SCP通过局域网传输文件到服务器,但却发生了下面这种事情: 上面描述 连接主机端口22被拒绝,失去连接 后发现因为没有指定端口,我服务器这边改了端口,所以根据自己情况改一下命令 scp -29 ...

  2. 二极管1N4148和1N4007的区别

    二极管1N4148和1N4007的定义 1N4148 是开关二极管,耐压100V,电流150mA,反向恢复速度快,为nS级别. 1N4007 是普通整流二极管,耐压1000V,电流1A ,反向恢复时间 ...

  3. 【读书笔记】C#高级编程 第七章 运算符和类型强制转换

    (一)运算符 类别 运算符 算术运算符 + - * / % 逻辑运算符 & | ^ ~ && || ! 字符串连接运算符 + 增量和减量运算符 ++ -- 移位运算符 < ...

  4. winform,水晶报表制作

    1.安装最新的 SP:(SP 29 示例 – https://origin.softwaredownloads.sap.com/public/file/0020000001636412020) 2.新 ...

  5. Exchange 2019中启用自动转发到外部域

    今天遇到一个用户反映自动转发的邮件规则没有生效.检查了一下,邮件规则配置没有问题.用户邮箱也能正常收到邮件,但是就是没有转发出去.仔细检查邮件规则,转发的收件人是外部邮箱.Exchange出于安全考虑 ...

  6. Elasticsearch:Pinyin 分词器

    Elastic的Medcl提供了一种搜索Pinyin搜索的方法.拼音搜索在很多的应用场景中都有被用到.比如在百度搜索中,我们使用拼音就可以出现汉字: 对于我们中国人来说,拼音搜索也是非常直接的.那么在 ...

  7. Traefik知识点

    Traefik 的各种 Providers Traefik 中的配置发现是通过下面的一些 providers 来实现的. providers 是现有的一些基础架构组件,可以是编排工具,容器引擎,云提供 ...

  8. P3919 【模板】可持久化线段树 1(可持久化数组)

    还是用主席树来做(因为提到不同的版本),这时候的主席树不是以权值为下标的,就是普通的线段树,维护范围1~n,i存的是a[ ]中的数. 1 #include <bits/stdc++.h> ...

  9. HDU1114 Piggy-Bank (完全背包)

    完全背包模板,和01背包相比不用倒推,因为一种可以选多个. 这道题求最小,dp数组初始化为无穷即可. 1 #include<iostream> 2 #include<cstring& ...

  10. SpringBoot 2.5.5整合轻量级的分布式日志标记追踪神器TLog

    TLog能解决什么痛点 随着微服务盛行,很多公司都把系统按照业务边界拆成了很多微服务,在排错查日志的时候.因为业务链路贯穿着很多微服务节点,导致定位某个请求的日志以及上下游业务的日志会变得有些困难. ...