每个人心中或多或少都有一个黑客梦,幻想着在网络世界中叱咤风云、无所不能!韩仔当年在国内某985大学的计算机系就读时,那开始真的是满怀壮志,梦想着自己能在计算机源码领域有所建树。然而,当真正开始接触这些知识时,第一感觉却是许多内容都是直接引入的。你知道这些知识是用来干什么的,可总感觉缺少了某种关键的理解——为什么一门编程语言要这样设计?为什么要这么复杂?有没有更简单的办法?可惜这些问题从来没有人教过我。书上怎么写的,大家就怎么学,似乎总归是对的。
但越往后学,越觉得自己掌握的只是一些枯燥的技能,完全缺乏对计算机源码语言真正的理解,更别提什么创新了。直到后来翻阅了一些国外的书籍,才突然发现,原来计算机语言可以这样学习,这么有趣!枯燥的二进制语言竟然可以这样转化为计算机逻辑,甚至还能进一步模拟出人工智能的效果。那一刻,“卧槽,真的是茅塞顿开,仿佛拨云见日,浑身热血上涌,才意识到学校里的那些教材真的是垃圾,才重新燃起自己当初计算机的梦想,才找到了继续学下去的意义!所以,对于初学者来说,务必要认真阅读接下来的文章,它们会帮助你少走很多弯路!
在编写编程计算机源码教材的过程中,我翻阅了许多国内的书籍。这些书的作者既有程序员,也有培训机构的讲师,甚至还包括大学老师。然而,不得不说,很多书籍不仅没能帮助读者提高知识,反而成了阻碍。尤其是那些由大学老师编写的教材,简直让人无语。
就比如有一个系列:从零开始学什么什么,或者是零基础到精通,大概是类似这样的书籍,简直狗屁,初学者看了直接就放弃了好么!
大家普遍认为书籍是神圣的,书中的内容都是权威,作者也都是行业的大拿。然而,现实是,好书少之又少。
当我说某些书是“垃圾”时,并不是说书里的知识有误,而是它们写得太严肃、太刻板,充满了教条主义,导致读者根本读不懂。于是,读者误以为编程知识很难,学习成本被无形中推高。
其实,世界上并没有难学的知识,只有那些让人看不懂的教材!问题就在于,许多书只会讲“官话”,不会用普通人的语言来解释。
在写一本好书时,作者需要具备几项基本素质:
扎实的源码编程功底:刚入门的程序员显然不行;
丰富的实战经验:尤其是实际工作中的经验,而这恰恰是大学老师的短板,他们更多地忙于科研和教学;
深入的理解能力:很多作者只是在工作中使用某个知识点,却从未真正理解其本质,所以写出来的书只能停留在表面,无法深入浅出地讲清楚;
良好的文字表达能力:把复杂的内容用简单的语言表达出来,并不容易。
特别是第三点,很多作者只是在日常工作中使用某个技术点,并没有深入探究背后的原理,结果是他们写出来的书没法帮助读者真正理解。
例如,高中教材里面函数的 概念”设A,B是非空数集,如果按照某种确定的对应关系f,使对于集合A中任意一个x,在集合B中都有确定的数f(x)和它对应,那么就称“f:A → B”为从集合A到集合的一个函数,记作:y=f(x),x∈A 其中,x叫做自变星,x的取值范围A叫作函数的定义域,于x的值对应的y值叫作函数值,函数值的集合{f(x)|x∈A}叫作函数的值域”大家记不记得这句话,让很多孩子觉得函数难,从此走上数学不归路的话,这句话看似正确且严谨,但是能不能体谅下初学者,初学者可能会感到迷惑,根本无法理解。什么是f,什么又是f(x)这样的书只能增加读者的困惑,而不是帮助他们。
至于教材,K12教育的教材经常被认为是经过精心设计的,但我认为这些教材也是问题重重。举个简单的例子,省重点高中的数学老师,很多时候仍在使用旧教材备课,学生们甚至连现在发下来的新教材都懒得看一眼。在我所经历的省重点中,几乎没用过教材。小学教材的问题更为明显,现在很多大人都看不懂,更不用说孩子了,这样的教材根本不能指望孩子自学。
关于大学教材,情况可能更糟糕。你能想象计算机语言的大学教材会有多糟糕吗?很多时候,教材是由教授的硕士、博士生写的,而这些学生通常只是为了应付任务,东拼西凑,结果就是内容杂乱无章,质量堪忧。
因此,对于准备开始自学计算机语言的,我建议大家在选择编程书籍时,尽量避开高校教材,选择那些由有经验的程序员或培训机构编写的书籍。
最后,记住一句话:世上没有难学的知识,只有看不懂的教材!如果一本书让你读得云里雾里,不要怀疑自己的能力,问题多半出在作者身上。
垃圾书不仅浪费了你的时间,还打击了你的信心,甚至会让你对编程失去兴趣。这样的书,喷它几句都不过分。
我打算写一篇文章,教大家如何找到优质的编程书籍,敬请期待!