如何开始自学

"自学"对大部分中国人来说,在我想来都是相对困难的。究其原因和中国的教育有着分不开的关系,不论是家庭,还是学校。如果把这个话题展开来谈那将是一个long story,这里我就不细说了,之所以提起这个,原因如下:1,如果你想自学,请尽量放弃上学那种学习模式;2,自学不是需要别人像填鸭一样给你灌输知识,而是要主动吸取,甚至要像色魔盯着美女一样渴望得到,用尽一切手段得到;3,自学将不再是别人管理你,而是自己管理自己。

有些朋友会说:"你说的我都明白,但是我就是不知道如何开始,不知道先学啥"。如果你问我这个问题,我的回答是:我也不知道!但,这就是自学的开始。我自学开始的时候也不知道先学啥。从南墙撞到北墙,从东墙撞到西墙,仿佛进入了死循环。于是,只要是关于计算机的书就一通乱看,从汇编到C#,从计算机原理到TCP/IP, 有些书就看了几页就放弃了。为什么?因为看不懂呗!到了这里大家觉得"这是个狗屁自学,就是乱学么!"对,我要说的就是这个,古语有云"混沌生阴阳,阴阳生八卦,八卦生万象"。天地未开一切都是混乱,这个是必然。但随着学的东西越来越多和不断涌现出新的求知欲望产生足够化学反应后,自学的"道"自然就会形成。应该说是你自己的自学道路。

下面我分享一些我自己的经验,困难,还有改进的办法,同时举例说明一些我认为很糟糕的例子,让大家看看自己有没有存在着这样或那样的问题,以避免长时间陷入旋涡,以至于造成多年止步于原点或前进缓慢。

"我没时间"我想这是大部分朋友的理由,包括我在内。究其原因:1,工作太忙;2,事儿太多。如果翻译到潜台词就是:1,老子天天加班,累死我了,我想睡觉;2,天天干这点X活就够烦了,还让我回去看书,老子TM想玩游戏。其实真的天天加班到累死么?如果回答yes。那么请想想原因 1,工作是多的无法想象?;2,有没有在工作中开小差?第一种原因如果对于"大神"是有可能存在,但如果你是新手,一般是不会存在这种问题。有这种问题新手一般是没有审视过自己身上存在的问题,比如逻辑,知识广度。这个会造成感觉上工作多。那么解决问题就是除了工作,同时要尽量搜集工作相关技术书籍,就算自己累点也要去阅读,做练习,并腾出时间做实践。要不这个死循环是不会容易出不来的。举个例子,吴军博士,吴军博士的工作我想大部分人根本应付不过来。但是读过他书的人都知道,他是一个能挤出时间写书,约谈,还能很好工作的人。那么你一个小菜鸟为什么就忙的要死。究其原因就是知识量。所以处于这个阶段自学方法就是阅读工作相关的书籍,博客。以简单易于理解,整体贯穿性好,同时尽量能应用到工作当中为准则。不建议看零散的解决方案。因为要快速脱离这个阶段,要加强你的知识广度,以备可以快速定位问题,这个阶段的深度是可以从工作中发现各种问题,看零散解决方案获得的。我的建议睡觉前看1~2小时。周六日腾出一天或半天做练习。第二种应该是有一定工作经验的人经常干的事情,同时包括我自己在内。那么这个就是心理问题,属于意志力,注意力的范畴。如果公司可以上网,会有很多事情吸引你的注意力,比如QQ,视频网站,弹窗新闻,不经意中你会浪费很多时间。长此以往自己工作有可能真的完不成了,那么加班的节奏就此开始。"累"是你自己造成的,那么解决办法很简单。把所有吸引你注意力的软件都删除,不开,放在隐蔽的地方等等。不要上班就开聊天软件。用"番茄工作法"以1个小时为一个工作周期,每次集中工作50分钟,然后用五分钟想想做到哪里了,记录整理思路,活动3分钟,2分钟冥想,然后进入下一个循环,你会发现你的意志力会越来越强。工作完成的早,你就可以干自己想干的事情了包括"自学"。第二种没时间的原因应该属于心态问题,在这里我想说的是,自学是自我主动行为的一种,对程序员来说尤其重要。有厌烦心态朋友如果突破不了自己这种心里状态,我还是建议仔细想一下自己到底适不适合程序这个职业,既然选择程序这条路,你应该知道将要面对的就是不断出现的新技术,而你又不可能做到只要有新技术就去找个学校学习一下。有些朋友突破了自己心里状态,同时也在努力自学,但是过一段时间就感觉无聊,甚至放弃。这个情况有两个层面,一是,生活单一,感觉厌烦了;二是,没了思路,混乱,不知道学什么好了。对于第一种情况,自学的好处就是你可以自己管理学习进度,如果真是累了就休息休息,打打游戏,旅旅游,几天甚至一两个星期,只要让你能恢复体力及精力,这些都是可以做的,请不要在这上面有心里负担,不要有"我耽误了学习,我真是个垃圾等负面情绪",只要你一直向前,沿途停下来欣赏一下风景也是未尝不可。保持一个积极向上的好心态也是"自学"的一个重要前提,唯一需要注意的就是,能不能收发自如。第二种情况,我建议可先脱离一段时间当前的所学内容,转向看一些容易理解有建树的书,或找一找别人对你当前所学技术内容的建设性学习路线,或转到其他技术上学一学,这样不会深陷其中,你会发现重新找回思路,会变的没那么困难了。然后再继续以前的学习即可。

以上大部分是自学启动或继续下去的心里问题。第二原因,我总结为"工具链缺失",这也是真正物理上困难,也是自学的最大拦路虎。以我经验为例:1,非科班出身;2,大专学历。我的工具链缺失严重性算是中上了。最开始自学C语言,一个变量能纠结一天,我做计算机的发小儿对我态度就是"你就是傻X这有TM什么好纠结的"。由于他是科班出身,有些技能是上课老师教授过,他认为easy的事情,对我来说犹如"人月神话"。在于这点,我解决方法就是找个培训班先把什么是程序弄明白。当然这个是笨办法,也是没办法的办法。由于本人不是很聪明,当时自学处于混沌静止状态,没有一个上帝之手让我产生足够能量运转起来,无法产生足够的推动力,那也就只能依靠一些外力。当然我现在回想起来某培训机构真是不咋地,但我也要感谢,因为毕竟是这个起点让我有了足够动力开始运转,形成基础思想,虽然还是混乱一片,但也开始动了。这个建议是给一些和我情况基本相同的朋友。而有足够天赋,或者科班出身的朋友可以忽略。工具链缺失的最初始状态,对于科班出身的人基本是不存的。而之后的部分,在这么多年工作当中,我也发现身边很多科班出身的朋友存在工具链不完整的情况。这里是包括所有计算学科基础课程,及相关的高级课程。而针对教科书来说,对于自学的朋友基本是不友好的,当然也有例外,这里不赘述,以后真对我看的比较好的书籍我会在自学杂谈或其他模块中提到。知识上,越抽象就越难学,越偏向理论就越难学。而且还存在一个问题,就是计算机学科的内容真是"丰富","丰富"的让你怀疑人生,也是造成前期混乱的罪魁祸首。不过没关系,混乱是正常的,看不下去也是正常的。那么有些朋友会说"那你还看个屁",而我想说的是:"不是看个屁,而是就算是屁你也得看"。看不懂可以Pass,但是记住一个简单原则,就是必须了解这个学科是干啥用的。这个要求真的不是很困难,而维基、度娘、谷歌都是找到他们作用的最好途径。而有些学科也不是很困难,可以很容易看下去,比如语言类、实践类书籍。例如:C++ Primer、Unity Shader cook book、UE4 Blueprint入门精要,等等。只要跟着做即可,只要你动手就不会困难到学不下去。但请再记住一个原则,就是这些书上会有一些理论知识,或相对困难的知识点,不明一定要停或者记录下来,请务必在一定时间内找到相关解释,或与之有关的书籍进行查阅。要对这些理论知识点和困难有一定轮廓概念,这个时候可以不是很理解,但是一定要有轮廓概念。这样就算后面继续学习,因为有了一个轮廓,你不会经常困惑产生压抑感。第二级别就是相对底层的API、应用知识等,有些难度的知识内容 例如 DX、OpenGL 、Android框架、Ios框架等。如果真的想学好这些内容,就需要像数据结构、算法 设计模式等基础知识和理论的辅助。这个阶段的节奏就是混合着走。如果第一阶段你坚持用我说的方法,我称为"嘴炮知识大法",因为知识轮廓你已经记住了,就算不慎了解,也可跟人家嘴炮了。争执一些理论上的理解,虽说细节之处有问题,但你框架已有,剩下的就是不断丰富和填充了。通过这些学习你肯定有了自己学习方法,和丰富的理论知识轮廓,虽然工具不完整,有时候还会感觉不太够用,也不会感到非常痛苦了。第三阶段就是根据工作或自己的喜好丰富自己的基础知识和理论,也就是完善工具链,很多人到这步很难有什么突破性进展,从而产生放弃念头,多年停滞不前,在这里也是技术菜鸟和大牛明显的分界线。因为有工作,一、二阶段的自学基础,你已知道想要加强那方面理论基础和知识深度,例如:想深入学习计算渲染技术,因为很多高难度的渲染书籍都是以数学形式描述知识点,你数学不太好,看不太明白,那么目标就变的非常明确,所有关于渲染的数学知识你都得去了解,甚至熟悉。很多论文是英文写的,英文不好,看不明白,那么就得学英文。其实到这个阶段你自学的目的就会非常明确了,但是也是最难走下去的阶段,特别对于工具链缺失严重的非科班出身程序来说是最痛苦的阶段,我深有体会。要做好长时间的战斗的准备。时间有可能会很长,各种不利因素也会影响你的自学信心,我的解决方法是,对于这个阶段你其实知道自己应该学什么了,剩下就是不断调整心态的问题和检查断裂的知识工具链,修复并完善。虽说困难重重,但剩下的就是慢慢克服了。方法就是找不同的方法激励自己,例如:写博客,看一些辅助书籍纠正负面情绪,适当的放松,别一次吞的太多,学以致用是最好的选择,比如做成小课件,分享理解心得之类的。(如果有哪位大神有什么好办法可以告诉我一下,感激不尽。)最后一个阶段,我称之为"神级之路",我还没接触到但不妨碍想象一下。这个阶段突破了就是神。这个阶段都是抽象的、理论性超高的知识点。真对工作,很多其实不追求也没有关系了。因为这个阶段已经突破了计算机实际应用的范围,是一个综合概念,是计算机科学家经常做的事情。比如某个光照模型是怎么推理,最后形成可以应用模型,或像编译原理,计算机操作系统,人工智能,大数据等研究创新和理论构建,可以说某一方向突破都到了精通地步才可以做的事情,里面的知识都是实际应用和丰富理论的知识及通过严密的科学论证所产生的成果。我想这一级别真的不是一般人能突破的,在这里写出来是时刻提醒自己,你还差的远,革命道路很漫长,同志们仍需努力。如果信念足够强,没准哪天也能达到这个地步,就算摸摸边也是不往此生。

最后总结我自己如何开始自学两条要点吧:一,克服懒惰,摆正心态;二,混沌初开,万象将现,坚持不懈,突破枷锁。

posted on 2017-12-15 22:25  PixelLeon  阅读(245)  评论(0)    收藏  举报

导航