[书评] 改变心理学的四十项研究 – 一本顶四十本 – Part 2

改变心理学的 40 项研究在我读过的书里面属于超一流,在 Amazon 豆瓣也是接近满星,这里我就不多赘述了。这里聊聊书里面一个比较猎奇的实验——书里的第 21 项研究——性动机。

以下内容大多节选自书中原文。

理论基础

有关人类性行为的理论基础,只有在解答了下面两个问题之后,才能真正建立起来。这两个问题是:

  1. 当男性和女性对有效的性刺激作出反应时,他们的身体发生了什么样的反应?
  2. 当男性和女性对有效的性刺激作出反应时,为什么他们会作出这样的反应?

如果医学工作者要对性功能缺陷者进行治疗的话,他们必须对这些基本问题做出令人满意的解答。

为了仔细地研究人类性活动和性刺激过程中的生理反应,研究人员有必要设计出极为精密的观察测量方法,其中包括对脉搏、血压、呼吸频率等生理反应的标准化测量。

此外,还要观察和记录特定的性反应。为此,“被试在各个时段的性活动将包括各种人工操纵和机械操纵,男性被试与其女伴以仰卧、跪式或最习惯的姿势进行自然的性交,女性被试则以仰卧或跪着的姿势进行人工操纵的性交”。

这就意味着,研究者不仅观察和测量被试以各种姿势进行的自然性交,而且还要观察和测量在人工或机械装置的帮助下所进行的手淫活动,这些机械装置是为对被试的反应进行清晰的记录而专门设计的。

10000 次高潮

有些被试只参与了一段时间的研究便退出了实验,而另一些被试则积极参加了长达数年的研究。在这项研究中,马斯特斯和约翰逊估计他们共观测了约10000个完整的性反应周期,其中女性和男性的数量之比是3∶1。换言之,“至少有7500个完整的性反应周期是由女性被试在各种研究程序中完成的。相反,男性被试的性高潮(射精)经历的研究数据至多仅为2500个”

在研究了大约10000个性行为案例后,马斯特斯和约翰逊发现,人类的性反应可以分为四个阶段,并将其命名为“人类性反应周期”。这些阶段依次为兴奋期、持续期、高潮期和消退期。虽然两位心理学家在自己的著作中承认这些阶段是人为划分的,但这种划分使得对性反应的讨论变得更加容易和清晰。

尺寸

有史以来,男性最常见的性担忧便是阴茎的大小问题。马斯特斯和约翰逊研究了很多阴茎,且最终找到了该问题的科学答案。他们称这种困扰为“性器误解”(phallic fallacies)。男性通常为这两个问题而苦恼:

  1. 阴茎越大才越能满足女性的需求;
  2. 他们怀疑自己的阴茎太小

马斯特斯和约翰逊对他们在研究中测量到的阴茎平均大小进行了讨论,并表明上述想法是被误导的结果,而且解释了阴茎和阴道在两性性交过程中的机能。

研究者发现:

  • 在80名男性被试中,松弛状态下,阴茎长度的正常范围是从2.8英寸到4.3英寸,其平均长度大约为3英寸
  • 在勃起状态下,阴茎长度的正常范围是从5.5英寸到近7英寸,其平均长度大约为6英寸

这些数字明显小于人们传统观念中所认为的大阴茎和小阴茎的长度。但更令人惊奇的是,当研究者测量勃起阴茎的长度时,他们发现松弛状态下较大的阴茎并不预示着它在勃起时也更大些。

事实上,总体而言,他们发现松弛状态下较小的阴茎在性兴奋时比松弛状态下较大的阴茎有更大的变化幅度。看一看下面的平均数值,松弛状态下3英寸长的阴茎可以增加到6英寸,而松弛状态下4英寸长的阴茎只增加了大约2.5英寸并最终达到6.5英寸。

大小

比以上这些阴茎的测量更重要的是女性的性快感和性满足取决于阴茎大小的观念。正像他们书中的“对阴道的误解”一节所说明的那样,研究发现,以上这种观念是毫无根据的。在使用上述人造阴茎技术所做的观察中,他们得出结论,阴道是一种足以容纳大小不同阴茎的极富弹性的器官。“不管阴茎的大小如何,阴道总能在阴茎最初的几次抽动中使阴茎充满阴道”。

此外,他们发现,在性反应周期的持续阶段,阴道口的内壁膨胀起来,足以紧紧缠绕住任何大小的阴茎。因此,作者的结论是“显而易见,阴茎的大小在对女性的性刺激上通常只是个无足轻重的因素”

高潮之后

高潮阶段过后,男性和女性都进入消退阶段,此时性紧张迅速降低,性器官还原为以前未唤醒的状态(这就是所谓的消肿)。马斯特斯和约翰逊发现,此时男性存在一个不应期,即在此期间,不管他所受到的性刺激的类型或数量如何,他在身体上都不能经历另一次性高潮。这一不应期可以持续几分钟,几个小时,或者甚至是一天,而且随着年龄的增长,不应期所持续的时间有不断延长的趋势。

马斯特斯和约翰逊发现女性并没有明显的不应期,而且在有效的刺激下,女性能够在第一次性高潮后紧接着经历一次或多次性高潮,且不失去任何性唤醒的能力。和男性的情况不同,在性交过程中女性“能够使自己的性高潮体验持续相对更长的一段时间”

(未完待续)

[书评] 改变心理学的四十项研究 – 一本顶四十本 – Part 1

似乎从 Malcom Gladwell 开始,畅销书籍开始了这样的模板——找一个心理学上的概念(比如刻意练习,成长心态),再找些全球不同时间不同地点的 drama 案例,加上点修辞,一本畅销书就出来了(比如 tipping point,比如 blink,比如 outliers)。

这些书有一个共性:读起来很爽,也方便和别人吹逼(参考罗辑思维),但读完了仔细想想,好像除了那些 drama 案例,也没学到啥东西?我是在读故事书吗?那为啥不去看读者故事会?

改变心理学的四十项研究(Forty Studies That Changed Psychology)是一本反畅销书:没有任何废话。每个案例直切重点。一本顶四十本。


改变心理学的四十项研究 源自作者在心理学方面三十多年的教学经验。它试图通过介绍心理学的重要研究,使得 1) 填补心理学教科书与心理学研究之间的鸿沟 2) 回顾心理学史上重大事件 3) 加深读者对人类行为的认识与理解。

这本书包含心理学史上最重要的四十项研究,每项研究均按照 背景 -> 理论假设 -> 研究方法 -> 研究结果 -> 后续影响 的格式进行讲述。因为信息密度高,所以不适合快速从头读到尾,但因为这四十项研究彼此关联不大,所以可以跳读。

下面聊聊书里面的一些研究,这里不聊研究方法,只说结论:

研究2 丰富的经历是否等于更大的大脑

答案是肯定的:

经验确实改变了人类大脑的发育。通过对自然死亡者的尸体解剖,研究者发现当一个人具有更多的技术和能力时,他的大脑确实变得更复杂也更重。在对那些没有某种特定经历的人的大脑进行解剖时,他们发现了另外一些结果。例如,与视觉正常的人相比,盲人大脑的视觉皮层部分明显发育不良,沟回较少,皮层较薄。

研究3 人的本性是“天生的”吗

大多数人都会把人的本性归结于父母对子女的教育以及他们灌输给子女的价值观、人生观和权衡轻重的原则等。有些人还会想到生命中的一些重大转折,如生病,失去自己所爱的人,对大学、专业甚至是对特殊生命历程的选择,都有可能对一个人人格的塑造产生极大影响。以上这些只是众多影响因素中的一部分。然而,所有这些影响都具有一个共同的特征:那就是它们都是环境因素。几乎没有人会对“你为什么是这样的一个人”这个问题报以“我生来就是这样”、“这都是我的基因使然”的回答。

然而研究结论和上面相反——对于相当数量的人类特征而言,大多数差异似乎是由遗传因素(或“基因”)引起的。具有完全相同的遗传特质的人(同卵双胞胎),即便分开抚养,且生活条件大相径庭,在他们长大成人以后,不仅在外表上极为相似,而且其基本心理和人格也惊人地一致。在本研究中,支持基因占主导地位的第二个论据是,在相同条件下养育的同卵双胞胎,环境对他们的影响似乎很小。

好吧,真的是 投胎 > 运气 > 努力。

研究6 睡眠与做梦

当你入睡后,睡眠共经历四个阶段:开始是浅睡眠阶段(阶段1),接着进入越来越深的睡眠阶段。然后,当你达到最深的深度睡眠阶段(阶段4)后,便开始依次返回到最初的阶段,你的睡眠会越来越浅。当你即将再次进入睡眠的第一阶段时,就会出现一个叫作REM睡眠的特殊阶段。做梦大多出现在REM睡眠阶段。

然而,与普遍想法相反的是,科学研究发现,在REM睡眠期间,人们并不经常挪动身体。来自大脑的电化学信息能够麻痹你的肌肉,使你的身体不能动弹。有了这样一种生存机制,人们才不会用肢体去演绎梦境,从而避免了伤害自己或者出现更糟的后果。

迪蒙特从以上研究结果中试探性地得出这样的结论:人需要梦。倘若不允许人们做梦,经过连续几夜剥夺做梦的睡眠,似乎就会增加人们做梦的压力。在经历做梦剥夺的阶段后,被试做梦的数量有所增加,且做梦的时间也显著延长。

剥夺人REM睡眠的方式之一是通过使用酒精制品或其他药物,如安非他明、巴比妥酸盐等。这些药物在增加沉睡趋势的同时,它们会抑制REM睡眠并使人在夜晚的大部分时间里都保持在深度的NREM睡眠阶段。

正是由于这个原因,很多人无法戒除为了睡眠而服用安眠药或酒精制品的习惯。一旦他们停止使用这些东西,过于强烈的REM反弹效应会妨碍他们的睡眠,导致他们害怕睡觉并重新开始服用这些药物来避免做梦。这种问题的一个极端事例是一些嗜酒成瘾的人们,很多年来,他们可能一直在剥夺自己的REM睡眠。一旦他们停止饮酒,REM反弹作用极其强烈,以至于当他们清醒时也会出现做梦的现象!

从另一个奇特的角度阐释了什么是 白日做梦。

研究 7 类别天成

这项研究的主要结果是,即使在没有颜色知识文化中的人也能够学习颜色类别知识,并且通过原型学习颜色要比通过非原型学习颜色更快。这些发现说明,特定的概念存在于我们的脑中,不管使用的语言是什么,也不管是否使用过这些概念,这就是主要的发现。

因为这些概念看起来是人类生物组织的一部分,罗施称之为“自然类别”(她的文章题目)。这一项研究之所以对心理学有如此大的影响,是因为它彻底地颠覆了原有观念。之前普遍认为语言产生了概念,而这种观点不仅仅受到了挑战,而且与之前的观点相反,语言中的概念是围绕着自然存在的类别而形成和发展的。

有些概念和知识,可能在人类的基因里。

研究9 不只限于分泌唾液的狗

虐狗狂人巴甫洛夫的事迹就不用多说了。

比较反常识的后续结论:应用巴甫洛夫原理可以改变免疫系统的活动。Ader 和 Cohen 给白鼠提供一种含有糖精的水(白鼠喜欢这种水)。随后,他们将这种糖水与一种可减弱老鼠免疫系统能力的药物注射建立联系。然后,再给这些建立了条件反射的白鼠提供这种糖水,这时尽管不给它们注射药物,白鼠也会表现出免疫力抑制的征兆,即一种免疫力减弱的反应。

也就是说,条件反射的应用面比我们想象要广很多。

所以打仗时吹号角可能是有一定科学依据的,条件反射战斗力加成有木有。

研究11 敲敲木头

迷信从心理学角度看是不健康的吗?绝大部分心理学家相信,尽管从定义上讲,迷信行为并不会导致你想要的结果,但它们还是有积极的功能的。当一个人身处困境时,迷信行为经常能产生一种力量感和控制感。有趣的是,从事危险职业的人比其他人更加迷信。有时候,由迷信行为带来的力量感和控制感能降低人们的焦虑,增强其信心和勇气,进而提高成绩。

我曾经迷信科学。

研究13 期望导致结果

当这种期望效应出现在实验室以外、人与人之间的自然交往中时,罗森塔尔称之为“皮格马利翁效应”(pygmalion effect)。在希腊神话中,雕塑家皮格马利翁爱上了他创作的女雕像。

研究者怀疑:在小学教师得到学生的某种信息(例如IQ分数)时,他们或多或少地会对学生的潜能产生某种期望。这种期望会使他们无意识地对那些可能会成功的学生的行为表现给予一些鼓励和鞭策,使这些学生产生自我实现的预期,变得更加出色。

研究结论:

  1. 低年级儿童的可塑性一般较高年级儿童更强。如果事实的确如此,那么研究中低年级儿童变化更大也许仅仅是由于他们比高年级儿童更易变化。与此相关的另一种可能性就是,即使低年级儿童并不具有很强的可塑性,但教师也会认为他们是有这种特性的。可能仅仅是这种想法,就足以让教师对学生采取不同的处理方式,从而产生不同的结果。
  2. 小学低年级学生还未能在老师的心目中形成牢固的印象。换言之,如果教师没有对学生的能力形成某种认识,那么该研究提出的期望就会产生更重要的影响。
  3. 低年级的学生可能更容易受到教师将期望传递给他们时的微妙过程的影响。
    根据这种解释,如果教师相信某些学生能获得智力上的提高,那么她对待各年级的这类学生的方式可能是相同的。但也许只有低年级儿童的成绩会受到教师对待他们的特殊方式的影响,这些方式包括她对他们所说的一些话,说话时特殊的语气,她的眼神、姿势和与学生的身体接触等(Rosenthal & Jacobson,1968,P.83)。
  4. 低年级教师向学生传递期望的方式与高年级教师不同。如果确实存在这种情况,那这些差异可能会怎样?罗森塔尔和雅各布森没有对此作出推测

皮格马利翁效应又被称为自我实现预言,一切鸡血成功学的基础,朋友圈公众号的常客。

这里很重要的一点:在儿童教育中鼓励可能非常重要——你觉的孩子蠢,孩子大概率真的会变蠢,而且以后很难掰过来。

研究16 感谢记忆

华盛顿大学的 Elizabeth Loftus 是记忆研究领域中的卓越研究者之一。她发现,当人们回忆一件事情时,并不是准确地再现它;相反,回忆是一种对实际发生事件的一种重构。罗夫特斯的研究证明,重构记忆就是用新信息和现有信息去填补在回忆某种经历时被遗忘的内容。她认为人的记忆并不像我们通常认为的那么稳定,而是一段时间后就会被调整和改变。

在第一项实验中,150名学生分别以小组为单位观看了一个短片,短片的内容为一个司机闯过了停车路标,冲进迎面而来的车流,并引发了五辆汽车的追尾事件。事件只持续了4秒钟,而整个电影也不超过1分钟。

电影结束后,要求被试做一份包含10个问题的问卷。对于其中的一半被试,问卷中的第一个问题是这样问的:“轿车A(闯过停车路标的那辆车)闯过停车路标时,速度有多快?”而另一半被试的第一个问题是:“轿车A右转弯时的速度有多快?”接下来的一些问题对研究者而言都是无关紧要的,他们真正感兴趣的是最后一个问题。该问题对两组被试的提法完全相同,即“轿车A前面是否有停车路标?”

对在第一个问题中提到停车路标的那组被试,有40名(53%)说他们看到轿车A前有停车路标,但在“右转弯”组中,只有26名被试(35%)声称他们看到了停车路标。这种差异在统计上达到显著。

我们可能认为记忆是一串静态数据,但记忆更像一个函数——它会随着时间和输入产生不同的输出。

研究17 爱的发现

弗洛伊德主义者相信,在生命开始的第一年里,亲密接触主要集中在乳房和本能的口唇需要(著名的口唇期)。后来,行为主义者反对这种观念,并认为人的所有行为都与本能需要(如饥饿、干渴和回避痛苦等)有关。由于母亲可以满足这种需求,所以婴儿与母亲之间的亲密关系会在母亲喂养婴儿的过程中不断得到强化。因而,母亲就与愉快的事件联系在一起,于是爱就产生了。在这两种观点中,爱都是其他本能或生存需要的附属品。然而,亨利·哈洛却发现,与饥饿和干渴一样,爱和情感也是一种强烈的基本内在需要,甚至比前者更强烈。

在哈洛的早期研究中,幼猴在实验室接受精心的人工抚养,研究者用奶瓶悉心喂养它们,挑选食物使它们吸收均衡的营养,并使其免受疾病威胁。在这种情况下成长的幼猴比由母猴照顾的幼猴更健康。哈洛注意到这些幼猴非常依恋盖在笼子底部的布垫子(棉花垫子)。当研究者把这些垫子拿去清洗时,它们变得非常生气和焦虑。他还发现仅出生一天的幼猴便能表现出这种依恋,其程度在出生后的最初几个月中会变得越发强烈。

他们发现:无论是婴儿,还是幼猴,为了生存,他们必须抓住比稻草更多一些的东西。”如果幼猴生活在一个没有软垫覆盖的笼子里,即使它拥有非常好的营养和医疗条件,它也无法茁壮成长。把布垫放进去后,幼猴就变得更健康,看起来也更为满足快活。所以,哈洛的理论认为,幼猴除了基本的饥饿、干渴等生理需求外,它们一定还有一种要接触柔软物质的需求。

哈洛认为,随着社会经济对家庭的要求不断增长,会有越来越多的妇女进入社会,参加工作。这也是那个年代许多人对哈洛的研究给予关注的原因之一。因为,那时人们仍普遍认为,母亲亲自喂养孩子对孩子的健康成长和情感发展来说是必不可少的。他说,成功养育的关键是接触安抚,而不仅仅是妇女的哺乳能力,美国男性也能在养育婴儿方面起到相同的作用。

爱与被爱可能是写在人类基因里的。

研究19 你的品德如何

柯尔伯格指出道德形成遵循一定的发展阶段,他在使用“阶段”这一概念时是非常严谨和准确的。我们很容易想到所有的能力发展都有不同阶段,但是,心理学家还是对那些随时间逐渐发生的变化(比如一个人的身高)与在不同阶段里差别很大的变化作了区分。

因此,当柯尔伯格谈及“童年和青少年道德结构的发展阶段”时,他是指:(1)每个阶段都有一种独一无二的道德思维方式,而不是对成人道德概念理解的逐渐深化;(2)各阶段总是以固定的顺序出现,不可能跳过任何一个阶段,也绝对没有倒退的情况出现;(3)阶段具有优势性,即儿童理解所有处于他们现有道德阶段以下的道德判断,且至多只能对高于他们所处阶段以上一个阶段的道德问题有某种程度的理解。鼓励、教育和练习都不能使儿童向高于他们应有阶段的道德阶段发展。而且,儿童倾向于使用他们所达到的最高道德发展水平来对事物进行判断。隐含在这一道德发展阶段中的规则是:无论个体之间是否存在经验和文化上的差异,发展阶段是具有普遍性的,且它们以固定的顺序向前发展。

柯尔伯格把这六个发展阶段分成三种道德水平:

  • 道德观念发展的早期被柯尔伯格称为“前道德水平”,该水平的特征是以自我为中心,看重个人利益。它包括最初的两个阶段:在第一阶段,儿童认识不到他人的利益,其道德行为是出于对不良行为将要受到惩罚的恐惧;在第二阶段,儿童开始意识到别人的利益和需要,但他们的道德行为是为了别人回报以同样的道德行为。这时,良好行为的本质是儿童为了满足自身需要而对情境施行的控制。
  • 在道德发展到第二种水平时,习俗道德开始作为人际关系中个体角色认知的一部分发挥作用。在第三阶段,儿童的道德行为是为了达到他人对自己的期望并维持与他人之间的信任和忠诚的关系。按照柯尔伯格的观点,正是在此期间,黄金规则思维(golden rule thinking)开始出现,儿童开始关注其他人的感受;到了第四阶段,儿童开始意识到法律和秩序的存在,并表现出对法律和秩序的尊重。在此阶段的儿童从更大的社会系统的角度看待事物,并以行为是否遵纪守法为衡量好公民的尺度。
  • 当一个人进入第三种水平时,他的道德判断开始超越现有的法律。在第五阶段,人们开始承认某些法律比另外一些法律好。现实中有合情不合法的事,也有合法不合情的事。处于此阶段的个体仍坚信,为了维护社会和谐,人们应该遵守律法,但他们也会通过特定的程序寻求对法律的修正。柯尔伯格声称,这一阶段的人在尝试整合道德和法律时将面临冲突。
  • 最后,如果一个人达到了第六阶段,他或她的道德判断将建立在对普遍道德行为准则的信仰之上,当法律与道德准则相冲突时,个体将依据他/她的道德准则做出决策而不考虑法律。决定道德的将是个体内在的良心。柯尔伯格在本篇论文的研究以及以后的其他研究中均发现,只有极少数人能够完全达到第六阶段。

之所以会有争论,可能因为双方的道德水平不在一个阶段——他是熊孩子,我在讲法律,你在讲信仰。能讨论出个毛线(这也是为什么我非常烦 clubhouse)

研究20 让你愉快的控制力

事实上你在生活中所做的选择比你想到的要多得多,你每天都在选择或决定自己的行为。当你的控制力受到威胁的时候,你就会出现负面情绪(生气、狂怒、愤慨),并会以某种行为来反抗,以此来恢复你的个性自由。

如果有人告诉你,你必须做某件事,你很有可能就会拒绝他,或是朝相反的方向去做,这已是太平常的事了。或者,反过来讲,如果我们禁止某人做某些事,他们反倒会觉得被禁止的活动比以前更有吸引力(还记得罗密欧和朱丽叶吗),这种反对任何限制我们的自由、阻止我们的愿望的倾向被称为“阻抗”(reactance)。

不幸的是,在我们的社会中,许多人都会经历这样一个阶段,他们丧失了这种控制力量,连对自己的生活做出最简单的选择也会受到限制,这个生活阶段就叫作“老年”。我们许多人都曾听说过或直接接触过健康状况突然恶化的老年人,他们对退休和疗养院都十分警惕,因为这时他已经被当作一个老年人了。许多疾病如结肠炎、心脏病以及抑郁症等都与在疾病发生之前所产生的无助感、失控感密切相关。老年人进入疗养院后,他们必须忍受的最困难的转变之一就是,放弃对自己日常生活的控制力,这便影响了个人对自己命运的选择。

选择的机会和个人的控制力能产生积极的作用。责任感提升的那组被试报告说他们觉得自己比对照组的被试更快乐,更富有活力,而且访谈者对他们机敏程度的评定也高于对照组的评定,所有这些差异在统计上都具有显著性。

你可能还记得与那些你能选择和操纵的事件相比,这些经历使你感到更加不安、更加生气、更加不愉快。在绝大多数的生活情境中,提高个人行为的选择程度的确是一个值得追求的人生目标。

看完 困在时间里的父亲 我对这个实验有了更深刻的理解——当人丧失了力量和控制力,人也就进入了老年。反过来说,抵御老化的关键,在于个人的选择权。

(未完待续)

[书评] Debugging: 9 Indispensable Rules – 调试九法

  • 崭新磁盘为何用过一次就不好使?
  • 为何屏幕上的所有文本突然不见?
  • 为何 QA 总能搞出乱码问题但开发就是测不出来?

调试(Debug)可能是计算机工程中最被忽视的领域——算法,语言和架构的书籍一抓一大把,但有关调试的书籍几乎没有——你可以在 Code Complete,The Practice of Programming,Writing Solid Code 这些上古程序设计实践书籍中找到一些调试有关的内容。但讲调试的书籍,我只知道 调试九法(英文书名 Debugging: 9 Indispensable Rules 以下简称 D9)这一本。

仔细想想,这并不合理——调试应该是软件工程中最耗时的过程,为啥没人写这方面的书呢?我觉得:

  1. 调试是一线开发技能,但书籍作者往往可能已经远离一线开发,早就忘了咋调试
  2. 调试属于脏活累活,既没有算法那么科学向,也没有架构高大上

D9 应该是唯一一本讲调试的书——它通过各种案例(五花八门,既有软件又有硬件,还有吸尘器热水器)讲述九个调试基本规则:

  1. 理解系统
  2. 制造失败
  3. 不要想,而要看
  4. 分而治之
  5. 一次只改一个地方
  6. 保持审计跟踪
  7. 检查插头
  8. 获得全新观点
  9. 如果不修复 bug,它将依然存在

以上九条规则看起来平平无奇,但经过八年实践(我在工作之前就已经读过 D9),我可以确定:所有我见过的大神都在践行这九条规则,同时,所有我见过的菜鸡都在违背这些规则。

如果查找一个bug花费了大量时间,那么原因可能是忽略了某个最基本的、最重要的规则,一旦应用了那条规则,很快就会找到问题。
擅于快速调试的人已经深刻理解并应用了这些规则,而那些很难理解或使用这些规则的人则很难找到bug。


继续阅读[书评] Debugging: 9 Indispensable Rules – 调试九法

我们能从一本 45 年历史的计算机书中学到什么

人月神话 —— 1999 年图灵奖获得者 Fred Brooks 作于 1975 年,到现在已经快半个世纪。

计算机行业的发展速度不必赘言,

这本上个世纪的书还有用吗?

有用。


第一次见到 人月神话,是在 2007 年,大连奥林匹克电子广场地下二层鹿鸣书店。

鹿鸣书店专门卖计算机/电子科技书籍,所以我当时一度以为 人月神话 摆错了地方,因为它的书名非常像武侠言情小说,比如古龙的新月传奇,或是张国荣的星月童话。

第二次见到 人月神话,是在 2010 年,当时刚刚考完研,打算把计算机经典书籍过一遍,在所有的推荐书单我都发现了这本书。

看来这本书不是武侠言情小说。


第一次阅读,过程十分痛苦:一部分,源自于这本书故作聪明但并不达意的翻译(比如把 Second System Effect 翻译成 画蛇添足 ),另一部分,源自于这本书面向项目经理和有经验的工程师,我一个在校学生,能读出个屁来。

第一遍读完我只记住了书中那句略显逗逼的话:

无论多少个母亲,孕育一个生命都需要十个月。

之后每次别人催我做什么,我都会用这句话顶回去。

所以这本书并不是给在校学生看的,甚至不是给刚入行的看的,要读懂它没个几年经验是不行的。

要是你还在读大学,有人推荐你看人月神话,那个人一定是个大忽悠,或是知乎买书刷返利。

继续阅读我们能从一本 45 年历史的计算机书中学到什么

程序员必读书单 1.0 — 六年后的回顾

年更系列(继续保持一年一次的更新频率 o_O)

六年之前,我写了 程序员必读书单 这篇文章,两万五千多字介绍了近 100 本书,覆盖基础理论,编程语言,程序设计等十余个领域。然后从中精选出 30 本书用于入门和提升。

当时写这篇文章的初衷是想写一个不会过时的书单。书单写于 2015,现在 2021,是否还适用呢?

必读书单

先放下 2015 年的书单:

入门书籍

程序设计:

  1. 基础理论 : 编码:隐匿在计算机软硬件背后的语言
  2. 编程语言 :
    • C : C 和指针
    • C++ : C++ 程序设计原理与实践
    • Java : Java 核心技术(第9版)
    • C# : 精通 C#(第6版)
    • JavaScript : JavaScript DOM编程艺术(第2版)
    • Python : Python 基础教程(第二版)
  3. 编程语言理论 : 编程语言实现模式
  4. 程序设计 : 程序设计方法
  5. 算法与数据结构 : 算法(第4版)
  6. 程序调试 : 调试九法——软硬件错误的排查之道

软件开发:

  1. 编程实践 : 程序设计实践
  2. 面向对象程序设计 : Head First设计模式
  3. 重构 : 重构
  4. 软件测试 : How to Break Software
  5. 项目管理 : 极客与团队
  6. 专业开发 : 程序员修炼之道:从小工到专家
  7. 大师之言 : 奇思妙想:15 位计算机天才及其重大发现
  8. 界面设计 : 写给大家看的设计书
  9. 交互设计 : 通用设计法则
继续阅读程序员必读书单 1.0 — 六年后的回顾

程序员必读书单 1.0

本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及延伸阅读。旨在成为最好最全面的程序员必读书单。

前言

Reading makes a full man; conference a ready man; and writing an exact man.

Francis Bacon

优秀的程序员应该具备两方面能力:

  • 良好的 程序设计 能力:
    • 掌握常用的数据结构和算法(例如链表,栈,堆,队列,排序和散列);
    • 理解计算机科学的核心概念(例如计算机系统结构、操作系统、编译原理和计算机网络);
    • 熟悉至少两门以上编程语言(例如 C++,Java,C#,和 Python);
  • 专业的 软件开发 素养:
    • 具备良好的编程实践,能够编写可测试(Testable),可扩展(Extensible),可维护(Maintainable)的代码;
    • 把握客户需求,按时交付客户所需要的软件产品;
    • 理解现代软件开发过程中的核心概念(例如面向对象程序设计,测试驱动开发,持续集成,和持续交付等等)。

和其它能力一样, 程序设计 能力和 软件开发 素养源自项目经验和书本知识。项目经验因人而异(来自不同领域的程序员,项目差异会很大);但书本知识是相通的——尤其是经典图书,它们都能够拓宽程序员的视野,提高程序员的成长速度。

在过去几年的学习和工作中,我阅读了大量的程序设计/软件开发书籍。随着阅读量的增长,我意识到:

  • 经典书籍需要不断被重读——每一次重读都会有新的体会;
  • 书籍并非读的越多越好——大多数书籍只是经典书籍中的概念延伸(有时甚至是照搬);

意识到这两点之后,我开始思考一个很 功利 的问题:如何从尽可能少的书中,获取尽可能多的关键知识?换句话说:

  • 优秀的程序员应该掌握哪些关键概念?
  • 哪些书籍来可以帮助程序员掌握这些关键概念?

这即是这篇文章的出发点——我试图通过 程序员必读书单 这篇文章来回答上面两个问题。

标准

进入必读书单之前,我先介绍下书单里的书籍选择标准和领域选择标准。

继续阅读程序员必读书单 1.0

我的算法学习之路

关于

严格来说,本文题目应该是 我的数据结构和算法学习之路,但这个写法实在太绕口——况且CS中的算法往往暗指数据结构和算法(例如 算法导论 指的实际上是 数据结构和算法导论),所以我认为本文题目是合理的。

这篇文章讲了什么?

  • 我这些年学习数据结构和算法的总结。
  • 一些不错的算法书籍和教程。
  • 算法的重要性。

初学

第一次接触数据结构是在大二下学期的数据结构课程。然而这门课程并没有让我入门——当时自己正忙于倒卖各种MP3和耳机,对于这些课程根本就不屑一顾——反正最后考试划个重点也能过,于是这门整个计算机专业本科最重要的课程就被傻逼的我直接忽略过去了。

直到大三我才反应过来以后还要找工作——而且大二的折腾证明了我并没有什么商业才能,以后还是得靠码代码混饭吃,我当时惊恐的发现自己对编程序几乎一无所知,于是我给自己制订了一个类似于建国初期五年计划的读书成长计划,其中包括C语言基础、数据结构以及计算机网络等方面的书籍。

读书计划的第一步是选择书籍,我曾向当时我觉得很牛的 “学长” 和 “大神” 请教应该读哪些算法书籍,”学长”们均推荐算法导论,还有几个”大神”推荐计算机程序设计艺术(现在我疑心他们是否翻过这些书),草草的翻了下这两本书发现实在看不懂,但幸运的是我在无意中发现了 豆瓣 这个神奇的网站,里面有很多质量不错的书评,于是我就把评价很高而且看上去不那么吓人的计算机书籍都买了下来——事实证明豆瓣要比这些”学长”或是”大神”靠谱的多得多。

继续阅读我的算法学习之路