寻找知识不变的那部分(转)
抓住知识的本质是提升学习效率的重要方法。知识的核心部分
从数量上说,现代社会的“知识”有两个特点,第一是“总量大”,第二是“增长快”,这两个特点合在一起就是过去常说的“知识爆炸”。但知识还有另外一个特点——相比表层知识的庞大数量和几何式增长,知识的核心部分的发展要平缓得多。
以计算机领域为例,虽然计算机是二战以后发展最快的领域,但著名的黑客Paul Graham却说今天最先进的计算机技术在思想上和20世纪50年代并没有什么不同;在经济学领域,无论涉足到那一个分支,都无法离开亚当·斯密这个根本;在管理学领域,尽管各种工具、方法层出不穷,但像价值链分析这样的方法仍然根源性的;而从更大的范围上讲,思考问题的方式、解决问题的方法同样是相对稳定不会过时的;甚至知识的发展也是有规律可循,并且这些规律同样是相对稳定的。
不变的东西
这些知识中相对“不变”的部分恰恰是知识中最关键的部分,一个人知道很多表层的知识,我们只会说他懂点“皮毛”,只有他掌握了“不变”的知识,我们才会认为他有“学识”。而另一方面,由于知识的总量太大了,如果没有这些“不变”的知识,学习和创造就会成为不可能的事,我们常说“触类旁通”,其基础就是“不变”的知识。
小甲鱼注:例如咱编程,不变部分永远是底层的实现原理,这些原理一旦最初被定下来,除非有特别大的逻辑毛病,否则不会轻易被更改!无论你现在看到的界面是多么华丽的程序,他的底层走的还是同样的逻辑路线。对此,建议编程语言的话扎实学好C语言和汇编语言。因为根据经验,很多在应用层面编程遇到瓶颈的朋友到头来还是得回来补这两门功课。
上面说的道理并不复杂,但执行起来却并不容易。在现实生活中,我们见到的懂点皮毛的人要远远多过功底深厚的人,究其原因,我觉得有以下几个:
首先,相比表层知识的具体,知识的本质部分总体上是相对抽象的。理解知识的本质,其难度比认识表层要高得多,陡峭的学习曲线经常会让人望而怯步;
第二,相比表层知识的“有用”,知识的本质部分往往很难立刻发现其实际用途。这并非功利不功利的问题,而是眼光的问题,追逐长远利益的人和只看得见眼前利益的人对“有用”的认识往往是大相径庭的。但眼光长远的人之所以受到普遍的尊敬,一个重要的原因是他们是社会的少数。
第三,知识的本质经常会落实在一些常用、普通也因此容易被忽视的概念上,因为这些概念太常见了,我们经常以为自己懂这些概念,但实际上却是似是而非的。比如经济学上最基本的成本、价格这些概念,现在随便看个报纸、听听新闻都能遇到很多次,但又有多少人去深究成本与价格的概念所指?当我弄清价格其实是成本的一种特例——市场揭示出来的成本时,我是很吃惊的,既惊讶于这些概念内涵的深刻,也惊讶于我自己学习的疏忽。
寻找不变
从众多纷繁的表层知识中,找到核心知识,不是一件容易的事。拥有这种能力并获取知识的人我们称其为智者。他们从生活而来,却洞察世间万象,于纷繁乱象之中拨云见日,我想他们一定具有非凡的洞察力。
洞察力并不是什么神奇的力量,也不是什么天才人士才拥有的能力,而是每个人都有的认知能力。洞察力,是我们平时所说的创新能力、创意能力、创造能力、想象能力、策略能力的心理基础。
每个人都有两套“认知–行为”系统。一套:可以称之为“反应”系统。还有一套,可以称之为“洞察”系统。
在“反应”系统中,人对事物的认知,主要来自于以往的“经验”,超出我们“经验”的东西,我们都会无法“反应”,我们要么抵触、要么惊慌失措。从某种角度来看,在“反应”系统中,看到的世界就是我们头脑中“经验”的世界,而非全部真实的世界。
而在“洞察”系统中,人对事物的认知,可以摆脱已有经验的束缚,直接发现事物内在的本质,并用这种发现去指导人的行为。所以从某种度角度来看,在“洞察”系统中,看到的世界是本质的世界、是真实的世界。
进入“洞察模式”有哪些困难呢?
“反应”系统,是让我们人类能够在人类社会中、在大自然中高效率生存、生活的一种很好的模式。
我们在胎儿时期就启动了“反应”模式,所以“反应”模式是我们来到这个世界之前就已经开始运用了,所以人对这种模式有很强烈的依赖程度以及习惯性。
“洞察”模式的运用有两种模式:
一种是先天就会,很多人先天就会在某些方面不自觉地进入“洞察”模式。
有些人在艺术方面、有些人在科学方面、有些人在生意方面,这些人都会在这些方面取得成就。我把这种情况称之为“天赋”。
但是这种天赋只会不自觉的运用在某些方面,除了这些方面就不会用了。所以我们经常看到一些天才式的人物,在ta天才的领域是个天才,在其他方面就是个庸才,甚至是个蠢才。
还有一种就是后天通过深度阅读、自我觉悟、自我体验,发现自己的“洞察”模式,进入“洞察”模式。要做到这点就有一些困难,这些困难在于:
在此之前我们都没有认识到,在我们的身体中还蕴含着一套“洞察”系统,因为没有认识到所以也就不存在发现与进入了。
即使发现了自己洞察模式,真的要进入,也不是一件容易的事情。因为,我们的“反应”系统实在太强大了,所以,需要通过持续自我训练,才能让我们做到,比如在某个方面成为真正的专家。因此在年级太小的时候还没法去训练,而年纪成熟以后,“反应”系统又开始强大了,会阻止我们进入“洞察”系统。
发现“洞察”模式不容易,进入更不容易。
“洞察模式”对人有什么意义呢?
之前的心理学研究都是对“反应”系统来研究的,从生物心理学的角度来看,人的心理是受到到基因、遗传以及社会环境两方面影响的,所以3岁看到老,这是很有科学原理,因为在“反应”系统中,婴儿时期建立的经验反应,会跟随ta一辈子。
所以,从“反应”系统来看人,人是宿命的,即使环境的影响也是有限的。
而一个人如果真正能够发现自己的“洞察”模式,并且进入“洞察”模式,那么,这个人就能完全改变自己,甚至是这个人的性格、秉性。因为ta已经不需要“反应”了,ta以往的经验也好、性格也好、秉性也好就不会发挥太多的作用了。
从某种意义来说,进入“洞察”系统等于重新启动另一个的你。
我们该怎么做?
回到我们对计算机科学的学习上来。
首先,我们对获取的知识先要有个大概印象。比如微博、新闻等等,你要对自己说,这些信息都不是核心知识,你知道得再多,也没有人会认为你有“学识”。所以,在这些信息上浪费太多时间不会是一个智者的行为。
什么样的知识才是我们计算机科学的核心知识呢?这个我们很幸运,很多前人都已经帮我们整理好了,比如数据结构、算法等等。正好前些天我也整理了一篇文章:《计算机专业的学生必须掌握的五门课程》,可以作为补充阅读。
拿算法来说吧。有人说,没完整看过《算法导论》的人都不能称之为程序员,这不无道理。很多人写写HTML也跟着自嘲为程序猿,我觉得程序员的档次就这么下去的。很多人只看到《算法导论》的前几章就没看下去了,究其原因,内容艰深是一回事,自身学习的愿望又是一回事。孰不知,被放弃的《算法导论》正好是计算机科学不变的核心知识,是知识的宝库。
无数的人在塔底,而耐得住寂寞与坚持不懈的人才能享受塔顶的无限风光。
写到这里,似乎应该总结几个方法去提升学习知识本质的能力,但想来想去并没有任何可以讨巧的方法,事实上,讨巧本身就是惰性的一种,而学习、创造的过程也就是克服惰性的过程,学习之苦也正是学习之甜。
甲鱼老师 “计算机专业的学生必须掌握的五门课程”在哪里啊 。。。受益匪浅啊,我决定一定要认认真真的把汇编语言研究完。 哦哦 那篇文章找到了。。。——计算机专业的学生必须掌握的五门课程
计算机专业概念有点大。就计算机科学与技术专业而言,以下这些是必修的:
1、计算机组成原理(包括先修课程“数字逻辑与数字系统”,简称“数电”):这是一门硬件基础课,学完后你能清楚的知道如何从用最简单的数字元件,像搭积木一样构成整个计算机系统,那就算及格了。
2、线性代数,概率论和离散数学:要知道,凡是能称之为“科学”的专业,就必须有一定的数学功底,否则难以称作“科学”。这三门课我觉得是本科时期最重要的三门数学课,比高等数学重要。如果你想在计算机科学的道路上走远点,那这三门可是必修的。
3、MIT开设的《Introduction To algorithm》,中文版叫《算法导论》:我觉得应该学习它而不是国内习惯开设的《数据结构》。数据结构仅仅是算法的一部分,国内的数据结构课程回避了很多本质的东西,仅仅是对一些常见的数据结构的罗列,学起来总有些不痛不痒的感觉。《Introduction To algorithm》虽然有些章节夹杂着很多很让人讨厌的“数学”,但却能从本质上带你领略这门十分必要而且有趣儿的课。
4、操作系统与编译原理:操作系统可以说是《算法导论》的实验课,最好能在学习期间自己实现一个小型的操作系统,或者操作系统各分系统的Demo。编译原理可能是普遍本科生觉得难的一门课,但是作为软件科学家,这是基础中的基础,学完之后所有的语言在你看来应该没有太大的区别,这么课应该是离散数学+算法导论的实验课。最好能在学习期间自己实现一个小型的编译器,语言最好是自创。
5、掌握一门常用的编程语言和编程技术:能了解你用过的所有的程序内部大致是怎样的,能用你熟悉的语言编写大部分的程序,至少不能是对任何一个程序满头雾水。
以上这些不难做到,我觉得是基础中的基础,我偏激的以为,不能掌握他们就不应该获得学位。
简而言之:
数学课 (概率,统计,微积分等等)
语言课(java,c++等)
数据结构和算法
计算机网络
操作系统和编译原理
其实只要算法和数学牛,可以吃遍硅谷大多数的IT公司。
具体书籍
Concrete Mathematics具体数学,绝对是计算机科学的数学基础“之一”,国内的计算机科学跟不上国外的一大原因,我始终认为是数学上的差距。
Introduction to Algorithms 算法导论,所有的程序都需要算法作为基础,所以算法是不得不学的。
Introduction to Computer Science and Programming 整体的介绍了计算机,同时也让学生了解CS能干嘛,自己该干嘛。
Operating System Engineering 操作系统的重要性不言而喻,同时也介绍了编译器。
Network 网络编程,中国 大学的本科生们有多少能熟练于网络编程。当今又有多少程序不需要考虑到网络。
有时候问自己几个问题:
当你学完各种数学、原理、算法之后,你能用这些知识解决什么问题?
你能开发出什么应用或系统吗?你具备多强的开发能力?
是更多人对这个专业更感兴趣了,还是心生厌倦、恐惧、甚至放弃了?
大学毕业到现在,还有多少知识你还记着?有多少还在用?
其实能解决问题的课程才是最重要的。
I_Love_Me~~ 发表于 2012-12-11 16:06 static/image/common/back.gif
甲鱼老师 “计算机专业的学生必须掌握的五门课程”在哪里啊 。。。受益匪浅啊,我决定一定要认认真真的把汇 ...
可以看下这篇,里边有提及:http://bbs.fishc.com/forum.php?mod=viewthread&tid=16078 现在自己以爱上了鱼C工作室,近期听小甲鱼老师讲得加密与解密讲课GOOD!!看视频里面的时间都是夜里十十一点一二点的看样子老湿挻辛苦的...呵呵 鱼哥威武,不但教知识,还教学习方法
http://bbs.fishc.com/xwb/images/bgimg/icon_logo.png 来自 啊凡提的千里马 的新浪微博 哟西~文章甲鱼胸写的? 925799667 发表于 2012-12-11 18:09 static/image/common/back.gif
哟西~文章甲鱼胸写的?
转的 不知怎么,感觉这篇文章就有点在表层的感觉。 留名,明天继续看 非常比较不错 呵呵 甲鱼哥.......引用一下你的话,,,,,,,,,,{:5_95:} {:5_102:} 求求甲鱼老师学习路线(比如:C--------C++----汇编----。。。)还有学习目标与学习目标推荐书籍(汇编==写驱动。。。书籍:《汇编语言》王爽) 顶起~~~~~~~ 很久没来鱼C了 看到这篇文章还不错 谢谢小甲鱼老师分享,我们小<。)#)))≦一定会认真学习! 甲鱼老师的帖子必须顶! 非常比较不错!!!!{:5_109:} 学习方法支持分享。。 总结自省,才是最难掌握的技术... 鱼哥,受益匪浅!