《黑客与画家》
读书笔记
娄雨禛 PB16060356
对于刚接触了一点点编程语言的我们而言,方向的选择是至关重要的。如果我们以后打算从事计算机软件专业,就有必要以一些计算机先驱的视角审视我们对计算机编程语言的学习过程。我们是不是真的在以一种正确的方式学习计算机语言?我们是不是真的适合计算机编程的学习?
Paul Graham在《黑客与画家》一书中,提出了一个值得我们深思的话题:几乎所有的大学,都以一种不正确的方式教导学生编程。这种教导方式的后果,是培育出一大批机械的程序员,而扼杀了那些极有可能成为“黑客”的程序员的好点子。
我们一直被教导,先想清楚了程序怎么运行,然后再开始写程序,这样程序就会写得越快越好。这句话对于初学者入门编程语言是很不错的,但如果一个程序员想要晋升为“黑客”,这就是一个完全错误的途径。“黑客”需要的远非是程序本身的编写,而更是一种绝佳的创意。这种创意就像是画家脑子中一闪而过的电子,必须在绘画的过程中才能出现。也就是说,在我们苦苦思索程序架构如何实现的过程中,我们会下意识地先忽略那些绝妙的点子,因为它们无助于程序框架的构建。而当我们构建完程序框架之后,这些点子要么已经过时,要么已经完全被我们忘记。
那么,作为一门培养新“黑客”的引导性课程,《现代软件工程》应该从哪些方面去改进呢?
一、激发起学生对编程发自内心的热爱
都说“兴趣是最好的老师”,只要有兴趣,什么困难都回去克服。然而,培养兴趣本身也是因人而异的。有的人本来就特别喜欢编程,而有的人天生厌恶代码。老师们所要做的,就是发现那些具有编程天赋的学生,进行有效的引导。而对于其他的学生,老师们可以布置一些难度不大,却相当有趣的小题目,循序渐进地引导。
二、鼓励“编程中学习”,而不是“学完后编程”
这是很关键的的一点,老师们一定要反复强调,深化到学生心底里去。也就是说,学习编程和学习数学、物理的思路是完全不同的,它没有很完善的理论体系,很大程度上就是万千零碎知识点的拼凑,需要一点一点地积累。
三、将维护代码变成一种习惯
每一位优秀的程序员对自己写的程序都有一种强迫症。他们看不惯杂乱的缩进,也无法忍受乱七八糟的变量名。而反观我们初学者,只是把程序看成草稿,随意涂改,随时丢弃,这样的态度怎么能够真正掌握编程呢?因此,老师们要强调代码风格对于编程的重要性,甚至强制地去规范、执行。