什么样的书是一门编程语言的入门书
编者按:小编在浏览豆瓣之余,发现一篇书评,写的是【什么样的书是一门编程语言的入门书】,虽然是为《Learn Python the Hard Way》(“笨办法”学Python)而写,但读者的见解是可以通用的,小编拿过来,顺便告诉大家,怎么样去学习《“笨办法”学Python》(第3版)这本书。现在和我一起来开始阅读之旅吧!
<b>什么样的书是一门编程语言的入门书</b>
趁着放假,这两天接连看完了Land of Lisp 和这本 Learn Python The Hard Way ,算是完成了 Common Lisp 和 Python 的入门。记得上个暑假断断续续看了三个月都没看完的 Practical Common Lisp 和 十一假期只看了前几章、到现在仍不明白的 Real World Haskell ,真的不敢相信一周左右就可以看完这两本。
痛感今是而昨非之余,也想了想到底什么样的书是好的编程语言入门书。自己也看过了不少编程语言的书,风格各异。一种如 C++ Primer,语言的各个方面都讲解的非常详细,每个知识点旁都有小段示例代码,每章后还配有习题。看这种书有一种上课的感觉,仿佛前面有一个白发苍苍的老教授在边讲边写板书,唯恐漏过哪个知识点 ; 一种如 Land of Lisp, Learn You a Haskell ,内容涉及了语言的核心要素,语言诙谐轻松,爱举一些 好玩的例子,旁边还陪着很萌的插图。看这种书是心情也跟着轻松起来,我有时候连翻几页不看内容就为看看下张图有没有意思。
但是以上两类书往往是一连两三页的讲解,接一小段代码示例,再两三也讲解,接一小段示例。不知道其他人的情况,对于我而言,我最怕的其实是那种让我写两行代码,然后看几分钟书,再写两行,再看几分钟书。这种情况下试验代码和看书的体验都不连贯流畅,很难进入状态。而且我的自制力又不强,往往看书、看电脑循环两次后就打开网页刷豆瓣知乎,不再看书了。前两天好像实在外刊IT评论上看到一篇文章,大意是看编程书时先看集中一边书、再集中敲一遍示例代码,再温习下。应该也算是看这种书和代码交错的书的一种好方法吧。
看这本 Learn Python The Hard Way 就不会有这种问题。Zed Shaw 的 learn code the hard way 系列包括 Python Ruby C SQL Regex ,内容都是以代码实际为主,想这本书就是52个联系,几行的文字引子,然后就是联系,再说明。知识点将的比较少,但核心的东西都涉及,一个晚上就可以知道Python 到底是什么样子。而且可以连续的敲代码,学习体验连贯流畅,有点让人欲罢不能。
我觉得入门书,一是要激发读者兴趣,让读者能够看下去,看完这本还想深入学习;二是让读者迅速了解这门语言到底是什么样子,给读者继续学习打下基础。从这两点来说,我觉得learn code the hard way 系列达到了最好的效果
以上内容来自豆瓣:http://book.douban.com/review/5771409/
<b>笨办法学python的阅读方法:</b>
这本书的目的是让你起步编程。虽然书名说是用“Hard Way”(笨办法)学习写程序,但其实并非如此。所谓的“笨办法”指的是本书的教学方式,也就是所谓的“指令式”教学。在这个过程中,我会让你完成一系列习题,而你则通过重复练习来学到技能,这些习题也是专为重复练习而设计的。对于一无所知的初学者来说,在能理解更复杂的话题之前,这种教授方式效果是很好的。你可以在各种场合看到这种教授方式,从武术到音乐不一而足,甚至在学习基本的算术和阅读技能时也会看到这种教学方式。
这本书通过练习和记忆的方式,教你逐渐掌握Python的技能,然后由浅入深,让你将这些技能应用到各种问题上。读完本书以后,你将有能力接触更为复杂的编程主题。我喜欢告诉别人,我的这本书能给你一个“编程黑带”,意思就是说,你已经打好了基础,可以真正开始学习编程了。
如果你肯努力,并投入一些时间,学会了这些技能,你将学会如何编写代码。
<b>笨办法更简单</b>
在这本书的帮助下,你将通过完成下面这些非常简单的事情来学会一门编程语言,这也是每个程序员的必经之路。
1、从头到尾完成每一个习题
2、一字不差地录入每一段程序
3、让程序运转起来
就是这样了。刚开始这对你来说会非常难,但你需要坚持下去。如果你通读了这本书,每晚花一两个小时做做习题,你可以为自己读下一本编程书籍打下良好的基础。通过这本书,你学到的可能不是真正的“编程”技术,但你会学到学习一门编程语言的基本技能。
这本书的目的是教会你编程新手所需的三种最重要的技能:读和写、注重细节以及发现不同。
<b>读和写</b>
很显然,如果你连打字都成问题的话,那你学习编程也会成问题。尤其是,如果你连程序源代码中的那些奇怪字符都打不出来的话,就更别提编程了。如果没有这些基本技能,你将连最基本的软件工作原理都难以学会。
手动录入代码范例并让它们运行起来的过程,会让你学会各种符号的名称,熟悉它们的用处,最终读懂编程语言。
<b>注重细节</b>
区分好程序员和差程序员的最重要的一个方面就是对于细节的重视程度。事实上这是任何行业区分好坏的标准。如果缺乏对于工作中每一个微小细节的注意,你的工作成果将不可避免地出现各种关键缺陷。从编程这一行来讲,你得到的结果将会是毛病多多而且难以使用的软件。
通读这本书并一字不差地录入书中的每个例子,会训练你把精力集中到作品的细节上。
<b>发现不同</b>
程序员长年累月的工作会培养出一种重要的技能,那就是观察事物间不同点的能力。有经验的程序员拿着两份仅有细微不同的程序,可以立即指出里边的不同点来。程序员甚至制造出工具来让这件事更加容易,不过我们不会用到这些工具。你要先用笨办法训练自己,然后才可以使用这些工具。
在做这些习题并且录入代码的时候,你一定会写错东西,这是不可避免的,即使有经验的程序员也会偶尔出错。你的任务是把自己写的东西和正确答案对比,把所有的不同点都修正过来。这样的过程可以让你对程序里的错误和bug更加敏感。
<b>不要复制粘贴</b>
你必须手动将每个习题录进去。复制粘贴会让这些习题变得毫无意义。这些习题的目的是训练你的双手和大脑思维,让你有能力读代码、写代码、观察代码。如果你复制粘贴的话,就是在欺骗自己,而且这些习题的效果也会大打折扣。
<b>关于坚持练习的一点提示</b>
你通过这本书学习编程时,我正在学习弹吉他。我每天至少训练2小时,至少花1小时练习音阶、和弦、琶音,剩下的时间用来学习音乐理论和乐曲演奏、训练听力等。有时我一天会花8小时来学习吉他和音乐,因为我觉得这是一件有趣的事情。对我来说,要学习一样东西,最自然、最根本的方法就是去反复地练习。我知道,要学好一种技能,每日的练习是必不可少的,就算哪天的练习没啥进展(对我来说是常事),或者说学习内容实在太难,你也不必介意。只要坚持尝试,总有一天困难会变得容易,枯燥也会变得有趣。
通过这本书学习编程的过程中要记住一点,就是所谓的“万事开头难”,对于有价值的事情尤其如此。也许你是一个害怕失败的人,一遇到困难就想放弃;也许你是一直没学会自律,一遇到“无聊”的事情就不想上手;也许因为有人夸你“有天分”而让你自视甚高,不愿意做这些看上去很笨拙的事情,怕有负你“神童”的称号;也许你太过激进,把自己跟像我这样有20多年经验的编程老手相比,让自己失去了信心。
不管是什么原因,你一定要坚持下去。如果遇到做不出来的附加练习,或者遇到一个看不懂的习题,你可以暂时跳过去,过一阵子回来再看。编程中有一件经常发生的怪事就是,一开始你什么都不懂,这会让你感觉很不舒服,就像学习人类的自然语言一样,你会发现很难记住一些词语和特殊符号的用法,而且会经常感到很迷茫,直到有一天,忽然一下子你会觉得豁然开朗,以前不明白的东西忽然就明白了。如果你坚持完成并努力理解这些习题,你最终会学会这些东西的。也许你不会成为一位编程大师,但你至少会明白编程的原理。
如果你放弃的话,你会失去达到这个程度的机会。如果你坚持尝试,坚持录习题,坚持弄懂习题的话,你最终一定会明白里边的内容的。
如果你通读了这本书,却还是不懂怎样写代码,你的努力也不会白费。你可以说你已经尽力了,虽然成效不佳,至少你尝试过了。这也是一件值得骄傲的事情。
<b>给“小聪明”们的警告</b>
有些学过编程的人读到这本书可能会有一种被贬低的感觉。其实本书中没有任何要居高临下地贬低任何人的意思,只不过我比我面向的读者群知道的更多而已。如果你觉得自己比我聪明,觉得我在居高临下,那我也没办法,因为你根本就不是我的目标读者。
如果你觉得这本书里到处都在贬低你的智商,那我对你有以下三个建议。
1、别读这本书了。我这本书不是写给你的,而是写给那些不是什么都懂的人看的。
2、放下架子好好学。如果你认为你什么都懂,那就很难从比自己强的人身上学到什么了。
3、学Lisp去。我听说什么都懂的人特喜欢Lisp。
好了,小伙伴们,如果你想学习Python,就从读完这篇文章开始你的Python之旅吧,要记得学习方法哟!!
A20131663.jpg这本书会让你的每一分钟投入都有回报。Python是世界上最强大、最受欢迎的编程语言之一,很快你就会成为一名Python程序员。
你还可以看Zed的视频!随书附赠的DVD中包含5个多小时激情挥洒的教学内容:一部完整的Python视频教程!