如何利用互联网学习 |
首先定义一下什么是 “学习”。学习就是掌握未知的技能,经验,知识。要学习一个事物,首先需要知道这个事物是什么,它用来做什么,内部是如何组织构造。我们需要为这个事物建立起一个基本的认知概念“集合”,这些概念通过一定规则相互组织在一起,最终形成这个事物。这些集合起来的概念我们可以称之为知识,在维基百科知识是这样定义的:
“知识是对某个主题确信的认识,并且这些认识拥有潜在的能力为特定目的而使用。意指透过经验或联想,而能够熟悉进而了解某件事情;这种事实或状态就称为知识,其包括认识或了解某种科学、艺术或技巧。此外,亦指透过研究、调查、观察或经验而获得的一整套知识或一系列资讯。” 此时,我们可以确定出一个知识和学习之间关系的结论。知识是一系列概念的组合,学习是获取这一系列概念的过程。我们也可以说,学习是我们增加对具体事物更细致的认知。从语法角度来说,知识是名词,学习是动词。知识获取需要靠学习来付诸行动。本文谈的就是怎样利用互联网更好的去“做”学习这样一项行动。 👄🔥🍌♻🦮 若要开始一个新领域的学习,需要学习这个领域里面离散的概念,这些概念相互组织,形成系统的知识。因此我们需要为这个领域搭建一个“架构”,然后逐个学习“架构”内具体概念。下面我们以编程语言 C 为例,来说明一个事物知识“框架”以及学习方式。 在 C 语言里面,构成知识基本框架的概念有:变量,表达式,循环,跳转,函数。一段简单的能运行的代码,是由这些最基本概念组成。 ✊⛴🍓➡🦌基本概念掌握后,更高级,更难的概念可以慢慢的进入这个框架内填补,最终形成的框架将会越来越完善。推而广之,其它的编程语言也同样可以利用这一基本框架。事实上一些语言的作者写的简单教程,里面都会把语言里面主要的基本概念说清楚,而这些基本的概念大致和 C 语言的这些基本概念差不太远,只是表现形式不太一样。如果学会这些基本概念,学习其它编程语言会越来越快。 基本的概念框架形成后,下一步就是把学到的东西用于实践。实践分两种,一种是为了掌握某一个概念而实践,比如做题。另一种是解决某一具体问题实践,比如“如何使用爬虫爬数据”。 说到做题,我们一不小心就会落入到像学校考试那样,陷入到题海战术里面去。很多书也会在每一章后面列出大量的练习给读者做,尤其是数学书。大量做题对于想学习一门技能,而不是致力于短期提高考试分数的人没太大必要。但书上题目的这些题目还是有必要去做,做针对某一概念的题是理解这一概念的捷径。在做题过程中,不要在意是否做对,因为我们本来的目的不是为了把题目做对,是为了能更好理解学习到概念。🧓🛍🧪😀👊 解决某一具体问题,是编程里面经常看到的实践方式。要解决某一具体问题,会需要把学到的概念组织起来,所以这种实践一般是在一本编程书最后边。在解决具体问题过程中,你可能需要去学习怎样使用别人已经做好的库(library);怎样去写一些胶水代码,把别人的库“黏”到你的代码里面。在这过程中你会碰到一些杂七杂八问题,这时候搜索引擎就会帮上忙。针对某一具体细小的问题,搜索引擎通常能非常容易找到别人已解决过的方法。 如上所述,学习一个领域首先需要形成一个架构,然后学习架构内具体知识。作为一个领域的新手,我们找到这个架构的最直接方式就是看书,一本书通常都会很好的把知识“架构”好。对于选书我们需要特别注意,不能单纯只通过网上评价来选书。我们必须要结合自身当前能力水平,以及目前认知水平去读适合自己的书。一些书网上看评价全是赞美之言,这书未必适合现在的你。这方面典型的反面例子就是 《The Art of Computer Programming》这本书,网上评价的人多数都没有看过,大部分是凑热闹的。不客气的说这本书甚至都没有必要花时间去读,里面的内容有比这本讲得更好,更容易理解的书大有存在。 👳🗑🖕 正面的例子就是 《The C Programming Language》,拜 C 语言本身简单特性所赐,这本书很薄,短短 100 多页把 C 语言讲得深处浅出。所有 C 语言概念都涉及到了,所有概念自成一体。这本书是技术书籍典范,我无数次给别人推荐,多少溢美之词赞美它都不为过。这本书也奠定了后来讲编程语言书籍的风格,几乎所有编程语言发明者写的书标题都是 The xxx Programming,里面的内容组织和这本书也非常类似。如果想新学一门语言,照着这个路数选书看基本不会错。 有时候一本书讲太细致,对新手来说反而不好,容易被一些细节困惑。做为新手也不需要对太多的概念有非常细致的了解,这种事情一般都是在入门以后才做的。细致理解一个概念细节需要花很多功夫,在没有经过长期实践的情况下,在这些细节上猛下的功夫收效甚微。那种把每一个概念都非常细致讲清楚的书通常是大部头,这种书通常适合用来做参考书。在需要增加对某一概念细致理解情况下,可以直接跳到介绍这一概念的地方来读,而不是从头到尾的读。所以,做为一个领域的新手,我们需要的是把整个领域的概念形成一个框架的书。 这样的书通常会有一定概括性的抽象,也不会写得太厚。举例来说,在 C++ 这个错综复杂的编程语言里面最好的入门书籍不是那些大部头像 《The C++ Programming Language》 或者 《C ++ Primer》这样人人称颂的书籍,而是像 《Accelerated C++》 这样短小精悍的书籍。在英语语法里面最好的入门书籍不是那些大部头的语法书,而是把整个语法体系从头到尾梳理出来的书,比如 《语法俱乐部》。对于逻辑学最好的入门书籍不是那些哲学巨匠写的书籍,而是像 《being logical》 这样短小精悍,在生活总随处可见,可以直接应用的逻辑学。 ✍⛴🍞❎🦦 对于一些难以理解的概念,死磕一本书未必是最好的方法。同时读很多本书,同时看很多本书,比“使劲”看一个作者写的概念要好得多。所以买书也不能只买一本,要买很多本。买回来也不要有那种没有把一本书从头到尾读完的“压力”。拜互联网所赐,现在书价相对知识的价值来说便宜得像白送一样,尤其是中文书。如果在互联网时代你还花时间去图书馆找书,去逛书店找书,只能证明你可能真的只是在找书,而不是学习。 系统性学一个领域的知识不那么容易,还很花时间。如果不系统性的学习,只是很表层的,短时间的学,脑袋里面的概念全部是零散、割裂的。这种情况短期内看来并不会有什么问题,长期下来是有害的。有时很多人都在犯类似的错误(包括我自己)。我无数次看到很多编程新手啥也不会就直接上手去折腾爬虫,折腾所谓的“大数据分析”。他们之中没有人看书,或者根本不看书,所有的一切问题全靠搜索引擎解决。这种方式学习到的就是所谓的“司机知识”,学习司机知识是很快的,这也是为什么培训行业能火爆的原因之一。 🧒👓🪟🤤💪 由此在 IT 行业产生一系列的怪象,比如公司招人大多数按编程语言招,招聘上明确写着招 xxx 语言程序员。更甚的是“前端程序员”这个领域,招人可以按照“库”来分类。比如 Angular 程序员,Vue 程序员,Jquery 程序员。我见过那种认为自己可以靠 Angular 吃一辈子的前端程序员,还见过写不出 for 循环, 甚至不会 Javascript的前端程序员,这些都是学习“司机知识”带来的危害。 我们今天从互联获取的信息已经过载;朋友圈,B站,知乎这些地方的信息让我们乐此不疲。越是有趣的信息越能被喜爱,被传播,这样带来的一个问题就是“娱乐至死”,它主要体现在越能撩动大众情绪的东西,越能广泛传播。 我们都有着喜新厌旧心理,都有着强烈的好奇心想看看最近发生的一切事情。要从这些“娱乐至死”的信息里面挑出有用的真的太难,甚至还有可能被误导。割裂的、没有系统性的知识对于我们来说也产生不了任何价值。我们应该主动放弃去垃圾堆里捞黄金的想法,要捞就去那些“知识金矿”里面捞。去找那些久经时间考验的书来读,或者找久经时间考验的大师写的东西来读(一般会被称为某个领域的“圣经”)。 🤞🚈🌶⁉🦠 信息过载的另一个问题就是会让我们不知不觉产生落后的焦虑,于是出现一些声称能够缓解这种焦虑的“知识付费”产品。这些产品特点就是用户只需要付一点点钱就能获取到,用户也不需要额外的成本去把互联网内容里面的“杂质”剔除出来。这些产品会有一些用,不过在我个人看来它更像是“减肥药方”,它更需要你买来后主动学习才能发挥作用,并不会让你减少学习的过程。 如上所述,对于学习某个事物,我们学习的不紧紧是单一的知识,而是学习很多概念组织在一起的成型。我们首先要找到这个事务的内部组织“架构”,对“架构”内的知识概念逐个击破,掌握好这个“架构”后我们还需要想办法在现实生活中实践。在以前,这一系列的过程如果没有一个好的老师恐怕难以办到。现在互联网这个巨大的地图可以给我们更多的指引,我们可以通过互联网找到更多的好老师甚至大师(可以读他们写的书)。 🧒📷🤖🖕 我们需要做的只是甄别内容质量的高低,找到知识”架构“,然后跟着大师学习就行了。我们需要下功夫的地方是学习的过程,而不是获取信息的过程。学习的成本很高,筛选我们学习“信息源”这个能力非常重要。我们要利用互联网主动学习,防止被动接收互联网杂乱无章的割裂信息。任何学习的过程都应该是主动的。
帖子热度 2399 ℃
|
|