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