1901050017-今年是自学编程年,我将用这个杠杆来撬起我的未来

阿基米德曾经说过,给我一个杠杆我能撬起整个地球。

硅谷投资人Naval说:

Code and media are permissionless leverage. They’re the leverage behind the newly rich. You can create software and media that works for you while you sleep.

Study microeconomics, game theory, psychology, persuasion, ethics, mathematics, and computers.
Apply specific knowledge, with leverage, and eventually you will get what you deserve.

Specific knowledge can’t be taught, but can be learned. Knowledge that gets you paid. Identify your strengths and apply them

Capital means money. To raise money, apply your specific knowledge, with accountability, and show resulting good judgment.Fortunes require leverage. Business leverage comes from capital, people, and products with no marginal cost of replication (code and media).

我一直想和这个世界有更深的连接,而不仅仅是做一个时代的局外人。而作为年近40的人,想要更深的连接只有通过“杠杆”工具了。在之前的几年,我通过自学,已经拥有了两个“杠杆”。

  • 杠杆1: 自学excel vba,让工作流程半自动化,精确结果,效率提高

我曾因为恐惧,恐惧不能跟上时代,这个念头在我脑子里盘踞了很久,我不禁自问,如果我这时候没有工作了,我有拿的出手的特长吗?我会脱离人群吗?

我的工作是中学教务处老师,相对“稳定”。但内心深层的焦虑和危机感还是占据了我的大脑,看看周围,几乎都是心态半退休的人们,至今我都记得那时的感觉:焦躁不安,束手无策。我只知道我不想再当那种出了大学门就再也没升级过知识的人。左思右想,我决定从小事做起。先把我的工作升级一下,至少这是我力所能及的。我的主要工作是安排课表和监考,统计课时费,但一直都是半手工,半电脑输入,至于怎么改进我一点头绪都没有,问问周围的同事,她们都摇摇头,说做的挺好的呀,没有必要改。我知道我不能再求助他们了,我转向网上,开始逛办公软件的论坛,就这么一点一点的,从一个公式到vba,我用了两个星期的时间,把课时费统计表做成了半自动化输出,课表和监考表做成了半自动生成,当测试结果完全符合我的期望时,有一种从原始社会进化到现代社会的感觉。至于刚开始的恐惧,早就随着进化一点一点地消失了。

  • 杠杆2: 自学英语,和现代先进的文化产生了更直接的连接

这次得到人生杠杆的原因是紧迫,这个紧迫呢,是由于孩子的原因。我的大女儿按计划去国外上学,国外各种文件、邮件纷至沓来,而家中无一人看得懂。思来想去,我决定学英语,想着,将来女儿需要我去国外陪她的时候,我能顶得住。人啊,一旦尝过甜头,就不肯停下来了,学习也是如此,尝到过自学的快乐,就总会找机会再尝试的。这次我不是没头苍蝇似的瞎找,而是直接决定—-以“用”代“学”英语了。这个决定是因缘际会,看到了李笑来老师的《人人都能用英语》之后做出的。这也是我第一次看李笑来老师的书,虽然那时还没有来得及去研究他的背景,但是他的实践主义让我看到了学英语的希望。时间紧迫,也没做他想,就这么地,我急匆匆地踏上了第二次自学之旅。没有什么特别的开始,那时起,每天我都在办公室朗读《大空头》,车上、健身时耳机里都放着它的电子书音频,因为我记得李笑来老师在书里说过:

读一本真正感兴趣的原版书,讲的是自己正真感兴趣的话题,你不用去坚持,不用去挣扎,这时候是自己在“用”,而不是在“学”。我们关注的不是英语字句本身,而是文字承载的内容,英语只是挡在我们和内容之间的毛玻璃,时间久了,就会越磨越薄。

我知道自己对金融非常感兴趣,于是我从这方面着手,从兴趣这个点扩展到英语整个面。就这么过了一年,有一次在电影院看英语原版电影时,突然发现我都听懂了,当时的我怔住了,心跳地厉害,那时我知道英语不再是我的弱项了,而将来有一天女儿需要我去异国陪伴,我也会竭尽所能不拖后腿,替她挡风遮雨。

英语真的是和现代文明连接最快的方式。

  • 杠杆3:编程。它可以带我活在未来

如今,编程是这个时代无须权威机构许可,就能使用的杠杆,它们是这个世界上最聪明的人创造的语言,它们是顶级思维凝聚的智慧结晶。我知道它会给我力量,来突破成长边界线。用它可以撬起我的未来,不再做时代的局外人。什么叫局外人?就好比大学文凭金贵的时代,不参加高考的人;改革开放的时代,不去当弄潮儿,反而变成下岗工人的人;地产时代,不购置房产的人;每个时代都有它的特征,现在,不会编程在我看来,就是错过了这个时代。而在更新知识如此快的编程世界,知识更新的速度比进入课本的速度快,等到学校里把它定为一门课程,等着老师来教的话,就永远学不到最新最快的编程知识了。

既然我知道了我需要掌握的技能,那我如何敲开呢?我试了读书、看视频、报网课,信心满满地开始,回头丧气地停滞。前几次自学成功的自信心被击碎了,眼看着未来已来,而我却束手无策。所以,在我看到李笑来老师的python自学训练营开班后,立刻就报名了。说实话,我当初报名,也是死马当活马医的心态,因为确实编程的学习停顿了一些日子了,苦于不能敲开门,心态已经不好了。没想到的是,最终结果是我竟然以优秀学员的成绩毕业,用6天的时间学完了14天的课程。那,我是怎么做到的呢?

首先,自学训练营不是传统教学方式,但它是最符合编程学习的方式:没有老师教,不限地点,资料都是最新的,自己看书、思考 + 社群同学请教 + github分布式提交作业。进了自学营,不仅学会的是编程,还学会了在github上和全世界最优秀的人们(都在GitHub上)近距离接触—通过作品接触。
那么github是什么呢?github是一个面向开源及私有软件项目的托管平台。github的特点,简单来说就是,代码托管,开源共享。
第一点:代码托管。比如说,在你出差的时候,带了一台笔记本,想在有空的时候写写代码,但是你的代码在另一台台式电脑,这该怎么办。如果己经把代码放到github上,那只需要下载下来就可以了。那么,代码托管,并不是github特有的。github最大的亮点在于,开源共享。
第二点:开源共享。第一点好处就是团队协作。一个项目分成几个模块,无论大家身在何处,都可以一人做一部分,再把自己做的部分上传到github仓库里。真正是全世界协同合作。另外一点好处是,可以借鉴别人的代码,模仿大师的杰作,在别人允许的情况下为己所用 。比如说,准备做一个项目,往往一个复杂的项目都需要把项目分成多个模块来做。这时可以上github搜与项目或者各个模块相关的代码,然后进行二次开发,省时省力,比自己纯手写代码节省很多时间成本。
第三点:对于学习编程的人来说,github就是天堂。学习编程不是学语法这么简单,最关键的是要动手,学习编程讲究多看多练。github就提供了很好的学习机会。可以在github找些小项目来学,代码少,而且简单。先是看一遍,然后自己动手把这个项目重做一遍。如此一来,确确实实能够学到很多东西。
gitHub于2008年4月10日正式上线。目前,其注册用户已经超过350万,拥有超过900万开发者用户。

训练营带给我的
  1. 训练营的每日作业都会迫使我主动思考,逼迫我一字一句去阅读要求,不按照要求做就会完不成作业,强制改正了我阅读不仔细的问题。
  2. 社群式学习。不是单打独斗地面对困难,‘恐惧未知’这条恶龙不会在大脑中盘旋很久,因为有教练和同学在帮助着我,即使偶尔会深陷泥沼,只要我呼喊,他们就会立刻施于援手。学习效率大大提高。
  3. 养成了阅读官方档案的习惯。这一点非常重要,每天的作业都会给出官方档案的链接,在群里大家也会互相提醒,随时巩固这个好习惯。
  4. 学会了程序员思考,遇到难点,学会把它分成一小段一小段来解决,并且用自己熟知的知识尝试类比来解释给自己听。
  5. 深刻地认识到了借鉴优秀程序员的智慧结晶是非常重要的,有质量的输出的前提是要有质量地输入,如果能看懂优质代码,并为己用,这本身就是一种进步。
千里之行,始于足下—-训练营第一天

自学训练营最能反映学习中不好的习惯。

收到“自学任务清单”,开始学习。清单表达的很清楚,但真的就是我看不见它,它一直在那里。清单里要求先看参考资料,我愣是自动掠过这一步,现在想来,真的是很佩服我的大脑,就这样习惯性地怕麻烦,找捷径,试图略过一切,然后还妄想能快速完成作业。

我在卡壳以后,冷静了下来,重新从清单1开始看,耐心地看了参考资料,认真地对待每一句话,这样竟然神奇地解决了每一个问题。
这次我认识到想要解决问题,还是得克服自己的毛病。在做作业时,踏踏实实。

因为习惯不好,没有阅读官方文件。在一个小到不能再小的步骤上卡壳了1个小时。

在查看社群其他人的聊天中,找到了解决方案,在第一天截止时间前完成了第一天的打卡。

好久没体会过沉浸的感觉了,就是那种猛一抬头,一个小时过去了。

第一天的学习让我认识到想要解决问题,还是得克服自己的毛病。在做作业时,要踏踏实实。

纸上得来终觉浅,绝知此事须躬行—-训练营第二天

看到群里的同学都在陆续地交作业(社群学习的好处,时刻督促自己),我停掉了“自我攻击的剧情”,心里开始接受一件事,那就是遇到不会的问题时是正常的,不久的将来一定会熟练掌握的。于是,心理突破了,脑子和手并用,完成作业的速度就提上来了。再加上,我不再以借鉴代码为耻,目的就是为了学习,我再借鉴的基础上再加上自己的理解,现在已经能够写出代码的一大部分了。
自主学习加同学间互助式学习,具像化了李笑来老师说的:

很多人有莫名其妙的误解,以为“自学”(self-learning)就一定是“自己独自学”(solo-learning),殊不知,自学也需要社交。

别怕! 啥也别怕!没什么可怕的!

收获总结

  • 学会了抄代码。不再谴责自己没用,心安理得地抄了三种代码,然后运行,改写代码,最后改写出了自己的代码。

  • 敢于调试,以前总是怕出现问题,手心冒汗,后背冒汗,脑袋发麻,如今出现问题我就搜索问题是什么意思,然后冷静地去想办法解决。

  • 学会去github里的issues找问题答案。

读书破万卷,下笔如有神—-训练营第三天

收获总结

行之有效的方法就是大量阅读官方资料,因为是社群学习+github分布式交作业,所以可以看到很多同学的代码。学习+模仿,是我在3天时间内完成day1-6的任务的秘诀。输入有质量才是最好的进步方式。

读书不觉已春深,一寸光阴一寸金—-训练营第四天

写python代码,做有用之事。在第四天,完成到了训练营day10的任务。

收获总结

  • 因为这几天的学习,让我深刻体会到了废寝忘食、孜孜不倦、目不转睛、聚精会神、茶饭不思的境界,心流时间可以达到3、4个小时不间断。

  • 对阅读更是有了新的体会:一字不落的读,来回反复地读,不躲避,不放弃,迎着困难读。

  • 对官方文档更加看重,对google也更加依赖,李笑来老师说的好:

学习任何东西,首先看官方文档或产品说明书,那些学习高手都是会先阅读官方文档的人。

能google出答案的问题,就不需要去麻烦别人.google、stackoverflow、wikipedia、youtube这都是自学人经常要去搜索的好地方。

千里之行,始于足下—-训练营第五天

眼是懒汉,手是好汉
不怕,一点也不可怕,不难,一点也不难。

在这天,我清楚地感受到今天不想做作业地心情,抵触、逃避、恐慌、焦虑。。。。。。
因为预知了困难,提前看GitHub 上的issues里都是关于day11作业的困惑和疑问,心里多少有些抵触。但是我知道只有做了才能解决,而不是空想。逃避没有任何用,把任务分解,一句话一句话地去实施。

随着着手敲代码的开始,这一天没有想象中困难,最后完成了day11-12的任务。

收获总结

  • 深刻理解了,写代码如同搭积木,一个函数如同一块乐高积木,只要一块一块加上去,就具像化了自己的目标。

  • 一直听说python爬虫技术,今天终于得以实施,抓去了张小龙的演讲稿并做了处理,返回了邮件。

  • 一直听说微信机器人,今天又亲自实施,和微信好友互动有无,她给我文章,我给她文章的数据,是自动的哦。

  • 这次我好像真的很可以确信,学python不会再半途而废了,也许日后如同excel一样,用的机会越来越多了。

敏而好学,不耻下问—-训练营第六天

最终的一天来到了,全部学完了训练营的任务,中间有困惑,有惊喜,最终收获的是满满的知识和弥足珍贵的自学体验,升级了自学的操作系统,对未来编程技能的使用充满了信心。

关于编程的思考

1
真正理解了编程就是搭积木的过程。尤其是在day11作业开始,把各种函数放到一起,去完成自己的目标。函数就是手里的工具,建筑工人的砖头和水泥,人们的交通工具,摄影师的单反,学生的铅笔和橡皮,化妆师的化妆品和化妆工具,它只是让我们轻松完成目标的手段。最主要就是得先‘用’起来,只有用起来,才能直到自己的需求,正如不需要会修车才能开车,也只有开了一段时间的车才能清楚地知道自己到底需要什么功能,不需要什么功能。有人说,不都得先了解清楚了才能用吗?这种想法我认为挺害人的,大多数人的坏习惯,是从来不需要了解清楚危害就已经开始做了,比如填鸭式学习,比如抱怨,比如不健康的饮食习惯,但是要是想开始学习某项技能了,却谨慎了起来,给自己找一堆理由进而可以拒绝进化。需要大概了解一下原理?需要。需要着重看一下说明书吗?非常需要。

李笑来老师说过:

你不用去坚持,不用去挣扎,这时候是自己在“用”,而不是在“学”。我们关注的不是英语字句本身,而是文字承载的内容,英语只是挡在我们和内容之间的毛玻璃,时间久了,就会越磨越薄。

这句话对自学编程也是一样的好用。我们关注的不是编写代码本身,而是背后的思维方式。

学会顶级聪明人的思维方式,才是自学编程最大的收获。