在高校的专业课学习中,经常出现用抽象的术语,解释另外一个抽象的概念,这在理工科的学习中尤为常见,CS的专业理论课中更是层出不穷。
刚开始接触编程的时候,这类事情让我很有挫败感,用不懂的概念,解释不懂的概念,看了半天,不知所云。现在还会遇到这样的情况,只是少了一些。
但不同的是,现在更能容忍那些不理解的东西。多点查询,交叉对比,看着那些陌生的术语反复出现不同的环境中,就渐渐熟悉理解。
学习的途径不重要,而在于对学习的认识。
系统的学习,意味精心安排的,连续的,全面的,线性的学习过程,已学过的知识,为未学过的打下了基础,让学习的痛苦最小化。小学到中学到大学,初等数学到高等数学,数据结构到算法导论,大部分的学习都是这样。系统的学习,中断了,再追就比较痛苦。
但系统的学习,并不是唯一的学习方式。
跳跃的,片段的,多点齐发,由点及面的学习方式也是有效的。需要做的是容忍当下的不理解,尽早建立反馈。就编程而言,难在概念抽象,易在动手方便。可以从任何一点切入,语言,算法,数据结构... 读个大概,动手实现,结果立刻出来。很少有学科可以如此容易的实现书上的理论。反馈来的快,是编程学习中最应当利用的特点。
除此之外,还有面向 deadline 学习,面向工资学习,面向无聊学习... 学习的方式很多,系统的学习是最奢侈的一种,以后出了学校,很少再有机会系统的学,更需要习惯在黑暗中摸索,在压力下学习,就编程而言,更是如此。
至于参加培训,观看视频,还是读书自学,都不是决定性的因素,重要的是不轻易放弃,及早建立反馈,学会一点,就是那一点的收获,学了一天,就有那一天的价值。
学习这条路,该吃的苦是有总数的,前面不吃,后面就得补。我们最终过上的,都是和自己能力匹配的生活。