曾经有童鞋在我博客留言:楼主你是如何学习的,肿么那么牛逼(注:真不牛逼,只不过
我讲的你刚好不知道,在你心中就形成了好牛逼的样子)
曾经也有童鞋加我好友,开头第一句则是:博客中那么多干货,你是肿么学习的,我却吐不出半个字来。
学会学习
学习是一件多么简单而自然的事情,难道有那么复杂?我想了想或许是没弄清楚“学习”二字的根本含义,那我们将这二字拆开来看,学,可以是自学、可以是模仿。习,则是练习、实践。我们再合起来则是无论是通过自学还是模仿式还需勤加练习或实践方可。
话又说回来了,道理谁都懂,可是就是学不会啊?真让人脑壳疼。
我们首先来看看一部分童鞋是如何学习的,或许这其中就有您的缩影存在,我们都知道技术更新迭代太快,所以我们需要经常更新自身技术栈,但是时间和精力完全不够啊
这个时候把目光投到了网络上的课程,有了别人的总结和归纳,我们只需送出一点钞票就能轻松快速上手,看完整个系列课程后,顿时犹如练就吸功大法一般,将课程内容全部纳入全身,神清气爽啊不是。
再或者在工作实际项目开发中,我们会发现项目中有很多已经写好的优秀框架或代码,我们只需直接调用即可,若是谦虚学习的童鞋可能还会去看下内置完美实现,看似已明了其中奥秘。
你真以为购买了视频课程并完整看完了,看了别人所实现的代码自己就完全会啦,别天真了,我们大多数都是平凡人,我们暂且不论视频课程质量的好与坏,你看完了视频和代码,你以为你完全了解了,你以为完全都知道了,那只是说明你的记忆力超群,自我满足感令人折服。你能保证再过个十天半个月,让你写出来,你能完全写出来而保证不出问题,即使出了问题,你保证能马上解决吗?
让我们再次回到“学习”的定义,你光顾着学但不习啊,可能又有些童鞋要问了,我学习了,但是为啥感觉丝毫没有提高呢?到了这里才说明你会学习了,继续往下看。
学会思考
思考就是自我反馈的过程,思考在我看来就是“举一反三”,通过举一反三洞悉其本质,换汤不换药就是这个道理
对于技术而言我们应该朝着什么方向思考呢?举一个栗子,最近在学习java时,也开始回顾数据结构,数据结构涉及到时间复杂度,时间复杂度通俗点讲就是时间是否会随着样本数据的增加而延长,那么O(1),O(N)我们怎么去理解呢?
从语言上来讲,比如java中的ArrayList的添加(不是指定索引添加元素)操作就是O(1),当然我们排除数组动态扩容情况,好像还是有点不明白,来举个栗子,比如去早餐店有几个人买包子,这个时候老板娘在一屉包子里拿出每个人的包子的时间是一样的,我们可看做速度的横等性,所以就是O(1)。
再比如早上高峰期排队进入电梯,若乘同一电梯的人数越来越多,排的越后最终进入电梯的时间就会越长,这就是O(N)。不明白其中原理就以实际生活例子举例,这就是思考,再回到若是针对ArrayList集合添加指定索引元素,我们举一反三时间复杂度平均是O(N/2),我们考虑极限情况在数组首位和末位添加元素的平均值就明白了。
思考的方向可以是通过生活实例能弄清其中原理,可以是从源头了解究竟是为了解决什么问题,可以是这么做的好处在哪里,可以是是否可以有其他更好的解决方案等等其他。本篇文章只是抛砖引玉,若能对学习迷茫者能够起到引导作用,那将是再好不过。
学习目的
让我们回到学习最原始的问题,我为何要学习呢?有的人纯粹是出于兴趣爱好,有的人可能出于自身成长需要,于我而言,不安于现状,不囿于贫困。你呢?当坚持不下去了,想放弃了,再想想你的初衷,不忘初心,方得始终。