学习是一件因人而异的事情,因为每个人的生活经历、教育背景、年龄、认知模型等等,都是不尽相同的,也就是每个人所处的“维度 ”不同,而作者有一种“建立更高层抽象的能力”,用一种特有的方法尝试着给大家建立一个学习计算机的、相对高层的构架,这样,可以在一定程度上突破个人的“维度”,使大家从与周围事物建立联系开始,一步一步的走向计算机的世界。不识庐山真面目,只缘身在此山中。确实的,在学习技术的过程中,横看成岭侧成峰,远近高低各不同,但是作者却尽力想让这高低或是远近都不同的山峰,能在我们面前呈现出一种规律、共性来,这是难能可贵的,因为这个架构的过程对思维的要求是比较高的。
哲语有云,动身的时候到了,有的人去生,有的人去死,只有上帝知道,于是这个问题被回归到“ To Be ? Or Not To Be ”的问题,是生,是死,只有上帝知道。
但是,人类对真理的探索和对知识的追求,却从来没有因为“生死”的维度而停止过,是的,一颗崇尚真理、探寻真理的海洋之心,将从来不会因为泰坦尼克号的沉沉而消沉,它将永远绽放在人们的心中,激励着我们向更广阔、更深髓的世界,一路前行、风雨无阻。
对思想的认识和界定是重要的!!因为我们需要一个知识体系才能不致于困惑!!(而身处编程界,纷繁复杂的术语和概念足以让一个初学者却步).
我抓住了哪些转瞬就在我脑中消失的思想,,因为它们远比一切成书的东西都让我感到它的珍贵!而更玄的是,他们竟然真的能够被文字描述出来!!这整本书就是小说式的教学。它力求呈现出一个精致化了的术语集。以使初学者能真正理解至关重要的那些概念。
正如Chenyi所说,每个人都是某个维度上的人,有他自己的年龄和认知,具体到某个历史时刻,我们的人生阅历已然被格定,而这决定了你接受新事物的能力和眼界,人生在世,已经不可能脱离某种信念(也异或某种阻力和障碍)而活,当我们开始学习编程,我们永远都是用外行的眼光来看待它的,而当你占在巨人的肩膀上成为一个专家之后,你就能够用全局的眼光去看待曾经陌生的知识,你看问题的维度发生了质变,此时你不再是个学习者,而会开始审视你学过的东西并学会产生你自己的认知,但那毕竟是要过的第二道槛,而初学者就是那些连第一道槛都难以过去的群体。
给你一个术语或道理,这个道理有什么用?没用,是的,因为要给你一个情景,你才能理解它,仅仅让你去学一个知识,而知识和众多其它知识之间相似而微有不同,如果不给出它被产生时的历史和它所处的架构 ,那么我们就会迅速迷惑,更遑论运用它,因为我们不是泛化主义者,形而上学者 ,我们需要一种与自身相联系点去理解它,我们只是生活的人,有自己的维度和局限,我们不是高高在上的学院派高手。
一个高手必定是与常人有不同的思想级深层的东西和他自己特有的体会,因为他也走过初学者才走过来的路经历过与所有人一样的迷惑,可是往往人们都忘了归纳那些至关重要的经验,那会是什么经验呢,那些是不会出现在任何描述具体技术细节的书里的思想级的东西,那么这本书尝试的正是记录那些秘诀,本书展开的过程,正是为初学者呈现一条清楚的理解路线的过程,在这条路线中,所有的编程相关的概念都自然地围绕着“抽象”逐次展开,请紧记本书的意义重点在这里.
对于学习方法,有二点区别是要深刻明白的,1,认识与实践 2,思想与细节。
知识是事物之间的联系,那么实践就是强化或深入这些联系的方法,我常想,到底是什么重要,是认知还是技能,人们普遍认为实践应在任何情况下都高于认识,事实是:可能有技能但是没有认知,但却不可能有认知却没有技能,就拿学习英语来说吧,看英语报纸也是一种实践,因为它也能够加强你实际使用英语的能力,(我不是在模糊这二者之间的区别,我只是企图站在这二者之上求得一种更泛化的认识),实践不过更侧重动手能力而已,而认知跟它并不矛盾,知识的获得与能否运用知识本身无必然因果,拥有足够的知识,再加上泛型的思维,,你就会快速得以实践,一切都是一种格物致知的过程,只有格物至知,先格物,认识到了一定程序后就会产生对事物本质的认识,也可先认识事物本质再在指导下去发展技能,但是认知可以直接传递给你(至此只是一个你所能想象得到的浅层和大概,而且除非实践,这个大概形象你也不知道它到底是正确的还是错误的,更深层的你想象不到的抽象以及关于这些认识的正确性要求实践),相比之下一本书不可能传递很多实践的东西。本书前一部分正是力求让初学者完成从认知到实践的有效过渡。
所以说实践和认知都是重要的,没有谁比谁更重要的说法,然而对于初学者来说浅层认知的重要性要高于实践,一开始就有一个好的思想和基础显然可以为未来的实践扫清障碍,这是因为学习是一个层次上升阶段,在拥有一定知识后,理解基于这些知识之上的更高层知识会很快,, 即掌握了基础再加上一定勤奋的博物广识,知识量是几何级上升的,因此一种很好的学习方法是,学习应该先吞,(在一定知识量的前提下尽可量地博物广识,即使看不懂也要浏览完,以获得浅层的认知继续下一步学习),这是学习中自然而痛苦的过程。
我们鼓励在实践基础上去学习,也提倡速成,我认为学习不应该提倡逐步深入,人的生命有限,染启超在渡日的般上一夜之间学会日语,这就是说他掌握了思想,细节的东西永远是后来的,只要思想是重要的,(了解足够多的细节才能泛思,但是,在学习编程中,除了一些对至关重要概念集的理解之外,,从来都不是大思想决定一切,而只是小细节,这就要求你作很多的实践)
学习应首先理解基本的框架和思想,然后是细节,虽然真正的学习往往是混合了这二个过程的过程,但大多数人显然不会拥有正规的理论教育(本书正是在为此努力),所以一开始对语言细节的学习和深刻理解永远都是学习编程的重头戏,如果说一些知识仅仅知其然就够了的话(仅仅是不致于迷惑和建立知识结构),那么有一些知识却是要精通的,因为不但要知其然而且要实际拿来应用。(人月神话的作者虽然写出来的是一本思想书,但他固然精通很多细节),但时时要提醒自己的是细节决不是一切,这就是我在前言的后半部分推荐给你的看书方法。