IT小小鸟生存指南-学习起步篇

经常跟公司的年轻人聊天(说起来好伤悲),他们大多在充满激情的同时表达出自己对于学习的迷茫。面对快速发展的技术被迷晕了双眼,不知道学什么,也不知掉怎么学,不知道从哪开始,也不知道学到何时为止。前两天也在知乎上回答了一个类似的问题,想想应该把自己的一些经历和问题以及对于这些问题自己的思考梳理一下,分享出来。

小小鸟们需要面对的第一个问题往往都是不知道该学什么?面对扑面而来的各种技术,框架,术语,各种三个字母或是四个字母的天书一样的单词,感觉一下就被淹没在浩瀚的技术海洋中。看着大牛们的各种口吐莲花,对于各种技术信手拈来,运用自如,羡慕之余也不禁畅想着自己何时才有这么一天。

为了实现心中的目标,很多人捧起了各种神书,什么设计模式,什么算法导论,什么编译原理;而有些人则搞起了各种新潮的技术,什么Angular、ReactJS、Go、Node、Swift、Spark,他们都以为自己已经拿到了通往成功的钥匙,不过看了一阵发现,该听不懂的还是听不懂,书看的进展缓慢,狗熊掰棒子一样忘的比记得还快,技术淘汰的速度超过了自己学习的速度。怎么破?我给的建议其实很简单,就是:

1. 工作用什么学什么;2. 先上手后学习;3. 无目标不学习,学到够用就停止

1. 工作用什么学什么

为什么建议从工作入手?因为这样可以最大化的借势,达到事半功倍的学习效果。曾经有只小小鸟做着一个C#的工作,但总觉得没有搞Ruby啥的高大上,用着IDE,总觉得没有用Emacs&Vim高大上,所以就白天硬着头皮用IDE搞C#,晚上下班后风风火火用Emacs搞Ruby。一年过去,累的跟狗一样,结果工作也没有干好,自己想学的东西因为没有使用场景也总感觉停于表面。后来痛定思痛,决定集中火力专心学学C#,将自己的学习与工作的方向调整到一致(而不是像之前总是忘两个方向使力,结果都相互抵消掉了)。最后发现反而事半功倍,工作也出成绩了,对于编程语言本身的理解也深度了许多。再去看Ruby或是其他更新的语言,反而轻松了很多,对,这个小小鸟就是我。

说起来简单,但是很多人还是会很纠结,生怕站错了队伍,选错了方向,选错了语言,选错了技术,输在了起跑线,就像我当年一样。走过来我才发现,其实作为当时的自己,无论学什么的效果应该都是差不多的,所谓殊途同归,触类旁通。而对于现在的自己,我已经有能力做出对于自己正确的选择,反而不会纠结。所以做不出选择只能代表自己不够强大,也代表此时的选择可能对自己的意义也没有那么大。念念不忘必有回响,学什么都是有用的,但一个重要的前提是学习的驱动力是兴趣而不是简单的作为一个挣钱的工具,引用罗辑思维里说过的一句话:“没有兴趣你将一事无成”。所以,我的建议是:

结论:工作用什么,学什么,以点带面,顺势而为,将自己学的东西与工作契合,利用所有时间学习。

2. 先上手后学习

很多计算机知识都非常抽象难于理解,什么模式、内聚、解耦、架构、分层、并发、异步、静态、动态、过程、对象、函数、逻辑,还包括各种各样的语言和原则。这些抽象的概念是很难简单的通过“学习”可以完全理解的,因为它们都是从问题中来的,都是人们为了解决某一个问题想出来的解决方案。但是就像猴子定律中的猴子们一样,我们已经慢慢忘了最开始不能去拿香蕉的原因,已经忘了问题,而将解决方案视为圣典,而后来的猴子们(小小鸟)在完全脱离了问题的前提下,单单去学习这些解决方案自然会觉得很抽象也很痛苦。

所以,作为勇敢的小小鸟,应该多问几个为什么(参考5why分析法),甚至勇敢的去摘一次那只香蕉,就当自私一点为了自己,知其然也要知其所以然。记住,那些“约定俗成”、“就应该这么干”、“大家都是这么做的”、“我们一直都是这么做的”都是狗屎,除非能说出问题给出原因,否则任何脱离问题给出的解决方案都是耍流氓。

结论:直接上手实践,遇到问题,先尝试自己解决,再带着问题去学习,这样的学习才会更有效率,理解也才会更深刻。

3. 学到何时为止?

大牛们经常会指点我们学什么,但是一般不会告诉我们学到何时为止。而面对一本本厚厚的书,和外面各种新技术新框架的诱惑,我们不禁自问,这得学到什么时候啊。我们知道在设计上有种说法叫过度设计,那如何避免过度学习呢?过度设计是指去设计那些现在用不到的功能或结构,而过度学习则是指去学习那些现在掌握运用不了的知识。

TDD(测试驱动开发)是一种可以一定程度上避免过度设计的实践,追求刚刚好的实现和设计,无测试不开发,无味道不重构。而对于学习,为了避免过度学习,追求刚刚好的学习,可不可以引用TDD的思路,无目标不学习,一旦目标实现,这次学习就停止了,这个时候可以对这段时间的学习进行归纳整理,然后再制定下一个目标,由此持续的学习。

测试驱动开发:写一个测试 => 实现让测试通过 => 重构优化 (不断重复这个过程形成环路)
目标驱动学习:定一个目标 => 学习让目标实现 => 整理总结 (不断重复这个过程形成环路)

结论:无目标不学习,学到够用就停止

最后

其实大牛们也是从小小鸟成长来的,自然也曾面对过同样的问题。但他们凭借对于技术的兴趣和热爱,禁得起诱惑,耐得住寂寞,守得住自我,日积月累自然就成就了自己。所以地球是圆的,技术也是圆的,无论那个方向,都会走到你想要的那个点,只要你在不停地一直往前走,正所谓可以十日不将军,不可一日不拱卒。

准备的很多内容其实还有很多问题没有展开,比如学习的深度与广度如何协调提高;如何面对层出不穷忽上忽下的新技术;时间如何管理规划;知识如何整理沉淀;要不要做计划,怎么做计划;如何走向大牛之路。一篇肯定写不完了,所以准备来个系列,慢慢写吧,欲速则不达,第一篇就算是学习起步篇,希望能有所帮助,未完待续……

Share

写作驱动学习

本周在公司做了一次内部分享,主要目的是鼓励大家写作。但是作为一个建的博客比写的博客还多的人,心里实在是没什么底气讲这个题目,所以就搜罗了大量的资料,看能不能从前人的智慧中吸取一些灵感,显得不那么无知,结果做下来,收获破多。

众所周知,写作有很多的好处:可以记录和巩固学到的知识、扩大自己的影响力、提升和推销自己等等,甚至很多人通过写作出书,成名,改变了人生的轨迹,这种例子很多很多。至少我每次听到这类的故事都会陷入深深的自省,痛恨自己没有早一天开始行动,然后痛定思痛,立即新建一个博客或是把之前落满灰尘的博客打扫打扫,重新发一篇《新的开始》,然后……就没有然后了。周而复始,自己也慢慢失去了对自己的信心。

所以问题的关键不在于我们不知道写作的好处,而在于我们做不到,就像大多数的鸡汤文一样,要知道“总有一天”是不靠谱的。对于放弃我们总能找到很多理由:没有时间,总有更重要的事情;反正知识已经掌握了;不知道写什么;觉得自己想写的东西不值一提,怕被人笑话等等。后来我想清楚了,归根到底就是四个字:觉得不值,假如有人给我500万让我写篇博客,我想上边那些理由就都不再是任何问题了。

那么什么样的事情是我们心甘情愿想去做的呢?为什么我们喜欢玩游戏而不喜欢写作业?那些我们根本不需要”坚持”就能一直做下来的事情都有什么样的特点呢?想来想去我认为一般要符合两个条件:快速的正向反馈、相对容易

我就曾经疑惑过学习与玩的区别到底在哪?玩游戏可以让我们相对容易的就能短时间内满足生理或是心理上的需求。但是学习首先不容易,有好处但反馈周期都相对较长,我们很难获得比较快的正向反馈。可是有些好学生就非常喜欢学习不是么?因为他们可以从每次考试,每次回答问题,从老师家长赞赏的同学羡慕的眼光中中得到很多正向反馈,而更重要的是这种反馈足够快,所带来的收益已经抵消甚至大过了在学习上投入的成本,这就是为什么好学生会越来越喜欢学习的原因。

我们常说要培养孩子的兴趣,这样他就能某一方面作出成就。我认为这个逻辑反了,应该是先促使或是找到或是暗示孩子在某方面的成就,让他觉得自己在这方面比别的小朋友强,他就能在这件事情上持续获得更多的正向反馈(例如夸奖,奖励,其他小朋友的羡慕),就会越来越喜欢做这件事情,兴趣自然而然的就形成了。

所以说学和玩本质上没有什么大的区别,主要是付出成本和短期收益的差别,甚至通过调整这两个维度学与玩是可以相互转换的。例如每个电子竞技选手每天都要在一个游戏(竞技项目)上玩(训练)超过10个小时,对每一个操作细节都要反复练习,而每提高一点点都非常的困难,每天要被教练训,在比赛中还很难获胜,需要承受着家庭和社会的压力,对于他们来讲,这已经不是在“玩游戏”了,虽然外人看起来没有什么差别。

很多牛人可以通过心智自我管理,推迟幸福感,用长远利益来驱动限制自己的行为。不过那是需要天赋和训练的,对于我等凡人,如果一定要坚持做一件事情我们认为需要坚持才能做到的事情,我认为可行的办法就是:能否找到一种适合自己的鼓励方式能让我们自己在做这件事情的时候能够得到持续快速的正反馈,并尽量把这件事情变得容易。

回到写作这件事情,抛开那些“总有一天”才能实现的好处外,眼前的好处无外乎就是帮助我们记录理解消化沉淀学到的知识了。不过我们的内心里总有一个声音反复出现:反正书看了,Session听了,感觉知识已经学会了,那还值得花时间写么?我用这个时间多学点东西不更好?

李光磊在《知行合一》中将知识划分为信息,知识和智慧。这解开了我很多对于学习的疑惑:为什么我看了很多书还是不会用某项技术?为什么我们听了很多Session,但是感觉却没什么用?为什么同一本书不同人看或是同一个人不同时期看会有不同的收获?原来我们之前所认为的学习只是获取信息而已,如果不思考,不行动,这些信息将一文不值,随时间消失,而浪费掉的却是宝贵的时间。而同样的信息,不同的人或是人的不同时期通过思考转化为的知识也是天壤之别的,所以说书只是一面镜子,我们读的看的其实是我们自己而已。

所以为了真正的学到知识,而不单单的是收集信息。我们需要用行动来将获取的信息加工吸收变为自己的智慧的一部分,而写作算是比较简单廉价的方式了,所谓写作驱动学习,正是如此。就像测试驱动开发中的测试一样,写作一旦完成,理论上就可以丢掉了,发不发布,有没有人看,写的好不好,都已经不是那么重要,它已经体现了它的价值。相信只要能体会到这种好处,不断地用写作来驱动学习,注重积累和推广,那些长远的好处也会自然而然的在某一天突然到来。

最后,不论你觉得上面这段文字有没有道理,它对你来讲只是一段信息,如果没有思考,没有行动,那就只是在浪费你的时间而已了。

Share