在读Scott Hanselman推荐的Eric Lippert针对新手写的Cargo Cultists系列,很有感触。In my last life,曾读过物理学家费因曼(Richard Feynman)写的“Cargo Cult Science”,在其中他讲了这个故事(转抄自新语丝论坛一个帖子):
南太平洋一些小岛上住著一些未开化的土人。二战期间,盟军的飞机在这些小岛周转物资。这些土人看到飞机降落到地面,卸下来一包包的好东西,其中有一些是给他们的。战后,飞机自然不再来了,土人们很怀念旧日的好时光,有聪明人就发明了让飞机再次降临的办法:他们在原来飞机著陆的地方铺跑道,两边还点上火,盖了间小茅屋,派人坐在那里,头上还绑了两块木头(假装是耳机),插了根竹子(假装是天线),以为这就等于控制塔里的领航员了– 然后他们等待、等待飞机降落。
费曼称这类东西为“草包族科学”(cargo cult science),称这伙人为“草包族”(cargo cult)。 他们每件事都做对了,一切都非常神似,看来 跟战时没什么两样;但这行不通,因为没有飞机降落下来。这就是为什么它们被称为“草包族科学”,因为它们完全学足了科学研究的外表,一切都十分神似,但是事实上它们缺乏了最重要的部分–因为飞机始终没有降落下来。
Eric Lippert也提到了授渔与授鱼问题,定义“cargo cult programmers“为”programmers who understand what the code does, but not how it does it”(草包族程序员是那些知其然不知其所以然的人)
在四篇帖子(1,2,3,4)里,他给了不少好的建议,很值得一读。
记得以前在论坛上,曾建议初学者一开始时别用VS.NET,而应该用NOTEPAD或TEXTPAD来学写.NET程序,却遭人大骂,更有人嘲笑我“为什么不用汇编”….
参考 Steve McConnell 写的 Cargo Cult Software Engineering