我的自学故事

个人介绍

  • 章琦
  • 1995年生
  • GitHub: @qinix
  • 北航统计学学士
  • 开源贡献者,Rails Contributor, Elixir Contributor
  • 10+ 年编程自学者
  • 前由你单车后端架构师
  • 前 Yunbi、BigONE、Peatio 技术专家
    • BigONE & Peatio 高性能交易撮合引擎作者,高峰期日成交量十亿美元
    • Venezia 区块链资产管理系统作者,安全管理交易所上百亿数字资产
    • Mariana 内部量化交易系统负责人
  • 海洛创意签约摄影师
  • 古典吉他和指弹吉他演奏爱好者

兴趣的源头

我是在小学五年级时候第一次接触到了编程,并且幸运的对编程这件事产生了极大的兴趣。回想起来,当时对这件事一直保持着兴趣的想法很简单:

学会了这个技能我就可以用它去做很牛逼很酷炫的事情,想想就很有成就感

相比于在学校里学数学、学历史,学编程带来的反馈很直接,直抵神经。

像很多人一样,我一开始学了 C 语言。很不巧,C 语言显然不是一个学一学就能做出很牛逼很酷炫的事情的语言。到目前为止(2019 年),市面上的所有 C 语言书籍都只能教你语法和在黑底白字的终端下面做一些习题。任何一个刚学编程的人看完了这样的书都是一脸懵逼,完全不知道学了这样的编程能有什么用。

由于当时还对计算机硬件感兴趣,我顺势接触到了 51 单片机。单片机第一次让我看到了编程能怎么用在现实生活中。我可以用 C 语言控制 LED 小灯的亮灭、蜂鸣器的响声、电机的转动。甚至想到了用单片机实现远程控制开关家里的电灯——也就是后来的智能家居,当时是 2008 年。

随着由单片机对我带来的编程世界观的改变,我找到了更多工程中直接使用的编程语言和框架,例如:Ruby、Ruby on Rails、Python。使用这些语言,我能更快的完成我想做的事,给我更直接的刺激感和愉悦感,产生正向反馈

一万小时有多久

格拉德威尔在《异类》一书中指出:

人们眼中的天才之所以卓越非凡,并非天资超人一等,而是付出了持续不断的努力。1万小时的锤炼是任何人从平凡变成世界级大师的必要条件。

那么,一万小时有多久呢?

  • 如果平均每天学习和刻意练习 4 个小时,一共需要 2500 天,也就是 6.85 年;
  • 假如一个人从 18 岁开始知道自己该干什么,到 65 岁退休,中间一共有 47 年;
  • 假如一个人从 18 岁开始可以学习和练习一个技能,并且每天投入 4 个小时,那么只需要到 25 岁就可以成为这个领域的专家;

总有人问我是怎么自己学会编程的,我想了一下,可能最重要的点就是:

花时间,花很多时间

上初中和高中的时候,由于学校使用电脑不太方便,我会坚持每天睡前在手机上阅读技术文档至少两小时,并且通过手机远程 ssh 连接到租用的 Linux 云主机上实践编程。由于手机没有实体键盘,并且虚拟键盘没有方便的上下左右键,我还因此顺便学会并且熟练使用 vim 键位。

后来上了大学的常态就是,每天起床后往电脑前一坐就是一天,看书、看文档、看源码、写代码。往往每天都能学习十个小时以上。

工作之后,我会尽量避免去做那些已经非常熟悉的事,尽可能把工作也变成一种学习。

这样想来,可能不需要 6.85 年就能达到 10000 小时了呢?

去做一些事

将刚学的技能用起来

几乎所有事情都是这样:

「你以为你学会了」和「你真的学会了」是完全不同的两码事

你以为你看完了一本编程书,已经学会了书中的知识。但真的在工作中用的时候,才发现还是不得不再拿出书放在旁边,一边看一边做。

实际上,这并不是什么坏事,其实所有人都是这样。只有在做过大量练习之后,才是真正学会了这个知识,抛弃书本,灵活使用。

而在做编程练习时,有一个很讨巧的办法:

用你刚学的技能去接个活儿

高中时候,我第一次接触到了 Ruby 和 Ruby on Rails,作为一个 Web 快速开发框架,市面上到处都是对口的外包项目。我在学习完全部基本概念之后顺势接了个外包项目,用 Rails 开发,第一次做出了一个完整的产品,练习了技能的同时还得到了经济收益。

这个方式去练习编程有几个好处:

  1. 强迫你完成这件事,毕竟已经承诺了别人
  2. 通过做出完整的作品,可以学习到很多教程中没有提到的细节
  3. 顺便还能产生经济收益

目标导向

如果始终无法下定决心来学一个东西的话,那就先把学会它之后用它做个什么东西想好。

刚上大学时候,我想尝试一下学习 iOS 编程。但,拖延症嘛,始终觉得暂时用不到,就没有开始学。

后来,总觉得不能闲着,该干些什么事。于是决定写一个学生课程表查询、成绩查询的 app。恰好北航是一个保密性比较强的学校,外边的超级课程表、课程格子都没有接入北航内部数据,学校里面也没有人在做这个事,这个事在当时是一个很大的缺口。

确定下来要做什么之后,我才开始一边学一边做。一旦学起来之后,一切都变得容易了。一个人一边学一边做,最终只用了不到两周就完成了第一版的上线。遇到不会的东西怎么办?自己 Google 呗…反正要做出来东西。

后来,这个 app 用户面甚至覆盖了超过一半的本科生...

对于编程来说,一个人自己学着做还是会有一个致命的缺点——限制了学习的角度和深度。因此,我为了更加深入学习 iOS,加入了美团的 iOS 基础架构组。在那里学习了大型应用是如何组织起来的,并且为了实现应用热更新还重头实现了一个面向对象语言运行时。

不要害怕

要深入学习一个编程语言或框架,其实方式很简单:

  1. 通读文档或对应论文
  2. 精读源码

通常,一个成熟的项目从文档就可以学到大部分细节。

不过,大部分人对于直接阅读项目文档和源码都存在着恐惧心理,感觉那是「搞科研」的人干的事。

有的人是觉得语言不通,其中包括自然语言(英语)和符号语言(数学)。其实语言这种东西,不要被吓住,习惯就好了...

在深入学习 Rails 的时候,我一字不差的通读了 Rails 的文档,并且仔细阅读了路由系统、ORM 底层实现的源码,甚至还自己从头实现了一个简单的 Ruby 编译器和 Rails-like Web 框架。都做完了之后发现,根本没有那么难嘛,都是外面人骗你和自己吓唬自己。

后来进入了区块链领域,由于工作需要重新实现很多链的交易构造和签名逻辑,仔细阅读了《比特币白皮书》和《以太坊黄皮书》,逼着自己读完之后发现其实根本也没有看起来那么难嘛。明明比网络上流传的大部分文章讲得清晰又简洁,却因为标题和一些数学符号拦住了很多人,其实数学符号和学英语一样嘛——遇到不会的就是了。

值得一提的是:

  • 《比特币白皮书》除去附录只有 8 页,带来的比特币市值一度超过了 3200 亿美元;
  • 《以太坊黄皮书》除去附录只有 15 页,用优雅的符号语言描述了以太坊的所有细节:传说当年找了几个不同编程语言的团队互相隔离,都对着这个黄皮书来做实现,实现出来的东西竟然是互相兼容的。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,423评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,147评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,019评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,443评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,535评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,798评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,941评论 3 407
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,704评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,152评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,494评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,629评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,295评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,901评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,742评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,978评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,333评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,499评论 2 348

推荐阅读更多精彩内容