Intro

结硬寨,打呆仗

导言部分,开篇第一句:The Hard Way Is Easier. 我的理解就是结硬寨,打呆仗。这句话如何执行,分三步:

  1. 不空开每一个练习。(Go through each exercise.)
  2. 完全录入每一个示例。(Type in each sample exactly)
  3. 运行示例。(Make it run) 初学者好高骛远,总想走马观花,然后就神功炼成,写得一手好代码。其实,脑子里空空如也。如同学习人类语言,初期要有大量听读,积累了足够多的感性认识,然后大脑才能建立了基本框架。机器学习里面,给机器“喂数据”,然后机器会建立判断,跟这个应该是一个道理。

其中第二条,Zed特意强调要完全录入示例代码。其实应该算是一种刻意练习: 必须强迫大脑,适应处理一种陌生的符号系统。否则,大脑的排异反应,会导致在学习初期引入错误的认识,以至影响后续学习。

读与写

按照“三步曲”,免不了读代码和写代码了。 Zed说得很清楚,如果读写有困难,那就没法学Python了。必须让自己适应代码。

关注细节

对细节的关注程度,能区分好的程序员和坏的程序员。这本书的每一个练习,都有训练细节。而且,录入一个示例程序时,要提醒自己,Zed想到了哪些细节,而自己没想到。

辨认区别

程序员有一项非常重要的技能: 注意到两件事物之间的区别。一个经验丰富的程序员,能够快速辨认出两段相似代码的不同。当然,现在已经有了不少工具来辅助,但是在学习新语言时,先不要借助工具,人工判断,找到区别。为什么这么做?大脑在学习一门新语言时,往往会借助已有的经验。这些经验可以帮助我们快速学习,但是也会在不经意时,干扰大脑,导致程序bug。 所以在录入程序时,如果程序运行不通。那么,迅速找到自己程序与示例程序的区别,将帮助我们快速定位bug。

不要复制粘贴

复制粘贴,会让大脑懒惰,就像做习题时,直接抄袭课后答案一样。一字一字输入代码,在书写过程中,既有思考,又有记忆。如此不断联系,大脑会逐步建立新语言的框架。

关于练习与坚持

作任何一件事情,在刚开始的时候,是困难的。婴儿刚出生,连呼吸这么简单的事情,都学哭了。更何况是编程呢。但是“世间事有难易乎?为之,则难者亦易也。所以我们学习新东西,就是跟自己惰性抗争,只有不断练习,才能让知识和技能在大脑里扎下根,之后才能抬开花结果的事情。扎根是很难得,所谓的破土而入,需要时间和耐心。Zed说,要不断练习,刻意练习。然后有一天,大脑会BANG一声,恍然明白之前的种种困惑一扫而空。

Zed的高级黑

最后,Zed敬告那些聪明人,这本书不是写给你们的。另外,嫌弃内容简单,可以去学Lisp啊。(真是高级黑啊!)

Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 StackJimmy 设计