智商110适合当软件工程师考试吗

> 摘 软件工程师都知道:绝大多数编程中的问 题
摘 软件工程师都知道:绝大多数编程中的问 题
ileelsai & &
发布时间: & &
浏览:7 & &
回复:0 & &
悬赏:0.0希赛币
摘 程序员都知道:绝大多数编程中的问 题,
程序员都知道:绝大多数编程中的问 题,最终都是自己的人品问题。当遇到奇怪的问题时,我们总是喜欢怀疑系统、怀疑编译器、怀疑网络、怀疑硬件……就是不愿意怀疑自己的人品。熬过几个不眠之 夜后,最终还是发现自己的代码存在人品问题。只有极少数的情况才是系统的问题。同样,一些程序员在职业发展中遇到问 题时,也总是喜欢怀疑公司不好,怀疑战略有问题,怀疑流程制度不合理,怀疑老板和同事……就是不愿意怀疑自己的人品。在大大小小的IT企业中,总能看到一 些技术并非最顶尖的程序员做成大事的例子,也总看到一些技术牛人被埋没而不能一展才华的现象。我想,除了机遇之外,还有一个很重要的因素,那就是:程序员 的人品问题!当然,这所说的“人品”,依然是调侃 的说法,并非指道德问题。其实,人品问题指的是程序员的软实力。如果将程序员的编程技能称为硬实力,那么编程技能之外的东西统统可以称为软实力。不容置 疑,编程技能是一个优秀程序员必须具有的硬实力,对程序员的职业发展起着最直接的作用,但程序员的软实力同样不可忽视。如何修炼自己的人品呢?我想谈谈自己 的一些经验和教训。程序员相轻在长期与程序员打交道的过程中,发现 大多数程序员和我一样,喜欢以自我为中心,特别是年轻的程序员。也许我的观察可能不完全正确,但从许多程序员的言谈举止中,确实可以感受到我曾经的浮躁心 态。喜欢以自我为中心的人,往往会自以为 是,并按自己的思路和想法行事,不太愿意听取别人的想法和意见。同时,这样的人,性格相对内向,喜欢沉浸在自恋和自负的虚幻空间里,其他人的思想都看不 上。当两个都很自我的程序员相遇时,他们不是互相倾听和学习对方的优点,而更喜欢找对方的缺点,从而显摆自己的优势。这就是所谓“程序员相轻”现象!不知道各位程序员是否存在程序员相轻 的心态,反正以前的我经常看不起别的程序员,甚至还看不起那些德高望重的老前辈。能被我欣赏的程序员更是寥寥无几。同事编写的代码在我眼里就是小儿科,或 者干脆就是垃圾。我认识许多过来的程序员,那些曾经很自我,但现已放下,从而潇洒编程的程序员。他们现在都在一些公司的团队里担当重要角色,但据他们反 映,“程序员相轻”的现象在IT企业里是普遍存在的。现在的软件开发,大都需要团队协同来完成的。团队作战是需要团队每一个程序员相互信任和尊重,将分散的力聚在一起形成合力,从而攻克一个又一个的项目工 程。如果一个团队中的程序员相轻现象严重,团队中的成员就会从相互争论演变成相互指责,逐渐失去成员间的相互信任和尊重,内耗日渐严重。最终,团队的力量 就四分五裂,大家并不向同一个方向使力,整个团队将变得毫无战斗力。我想,对于程序员的职业发展来说,要 过的第一个坎就是克服“程序员相轻”的心态。只有修正了这一人品问题,才能将自己的思想从狭隘封闭的自我空间中解放出来,才能踏上一条宽广的职业发展之 路。那么,克服程序员相轻的心态很难吗?其实不难!很简单:放下自我!世界上最难战胜的对手就是“自我”, 而世界上最重的包袱也是“自我”。因为自我,人必自恋,心必自私,行必自负,荣必自欺,败必自卑。程序员相轻这一最大的人品问题,就是因为太自我。如果敢 说“我的人品没问题”,那就得先放下自我。自我放下啦,人品问题也就放下啦。既然这样,我们何不将这沉重的包袱放下,让心灵轻松自由起来的呢?沟通交流大多数程序员是比较含蓄的。比起复杂 的人际交往,我们更喜欢单纯的技术工作。因此,在与人交流的时候,程序员会表现出两方面的不适应:一是不善于倾听;二是不善于表达。其实,我以前也是这 样。在听别人讲话时喜欢默不作声,而心里总盘算自己的思路。轮到我讲话的时候,却不能有效地表达自己的思想,讲的话很难让人理解。有时候,又喜欢打断别人 讲话,将自己的观点强加于人,也不管是否听懂对方的意思,就大加指责,甚至出言不逊。沟通交流障碍是大多数程序员普遍存在 的另一个人品问题。而在团队协作中免不了相互沟通,如果一个程序员在沟通方面存在障碍,是很难融入团队开发工作的。因此,程序员应该努力提升自己的沟通能 力,修炼沟通交流方面的人品。当然,提升自己的沟通能力,并不是要求我们练成辩论家的口才,只要能做到有效地倾听和有效地表达就已经足够了。其实,做到有效的倾听还是比较容易 的,特别是当对方的表达能力很强的时候,我们只需要静下心来认真倾听即可。即使不是很容易听懂别人的话,就多问问,请对方再讲讲。反正,一定要先理解别人 的意思,才表达自己的意见。或许在你看来别人的想法是错的,不妨先让人家把话说完。没准等人家说完之后,你会发现原来自己错啦;即使自己没错,也能可能理 解错了人家这样想的原委。理解是从倾听开始的,认真倾听体现了对人的尊重。设身处地想想,如果是你在发言时,是否希望人家都能认真倾听你的心声,理解你的 思想呢?那么,在别人发言时,我们为什么就做不到认真倾听呢?然而,倾听的目的是为了理解别人的想 法。一些人默不作声,貌似在听人家讲话,实际上想着别的事情;而一些人却是不懂装懂,假装点头,让人家误以为听懂了。对于有效的沟通来说,这些现象不但没 有好处,反而会带来更多坏处。问题得不到解决,隐患埋藏得更深。因此,倾听就要认真仔细的听,努力从讲述者的思绪去理解问题,真正理解别人的想法。懂就 懂,不懂就不懂,千万别不懂装懂。不管你是菜鸟还是大牛,多问问,没人会瞧不起你!相对来说,做到有效地表达会难些。很 多程序员会有这种感觉,让我写代码容易,让我说出来就难。只可惜,代码是写给机器的,沟通交流面对的却是人。因此,提升语言表达能力也是非常重要的,除非 你不打算与人打交道。其实,在语言表达方面还是有一些简单 的原则可以借鉴的。首先,要记住,不管怎样讲,要把握得住讲话的逻辑线索;其次,先讲背景,建立起沟通的上下文,再讲具体的细节;然后,在讲解中穿插关键 词语的简短解释。相信这样讲解是可以让许多人理解的。这就好像编程,得有完整的逻辑主线,得有上下文,还得有变量定义,等等。另外,在讲话时尽量少用指代词,就是 少用“这个”、“那个”、“它”等词语。不妨直接说出这些指代词背后的真正名词,不过是多说几个字而已,但听者更容易准确地知道你指的什么。比如,你向别 人请教时说“这个东西有问题,你知道原因吗”,人家一定会反问“什么东西”。但如果你说“Memcached命中率有问题,你知道什么原因吗”,人家就可 以立即开始思考问题的原因啦。尽管在你的头脑里“这个东西”指的就是“Memcached命中率”,但人家并不清楚。这就好像编程时对变量命名一样,相信 编程经验丰富的你基本上不用a、b、c这样的通用名字,一定会用bufferSize、totalAmount、lastChild等等让人一眼就能明白 的单词。那么,既然你能在编程中可以养成良好的命名习惯,为什么不能在语言表达中也养成良好的命名习惯呢?程序员如果把沟通交流的人品修炼好 了,保证你的职业发展会驶上快车道。协作能力我以前喜以欢单打独斗。如果我不能掌 控全部代码,我宁愿不做;或者动不动就把本该人家写的代码也写一份,搞得别人很没面子。后来我知道,就算我是千里码,日编千行,夜编八百,也很难独自完成 现代的大型系统开发。在现代的软件企业里,协作能力也是对程序员人品的重要考验,我们应该努力提高在协作方面的人品。首先,提高协作能力要善于分清责任和 义务。其实,这个很简单,就是根据大家约定的分工做事情,该谁做的就由谁做,该谁担责任的就谁担责任。不要盲目做事,更不要随意插手人家的事情。程序员应 该牢记自己的责任,切实履行自己承担的义务。只有这样,才能赢得同事们的尊重和信任。其实,对一个有战斗力的团队来说,不但需要忠实履行义务的成员,更需 要敢于承担责任的成员!其次,就是要随时了解和关心别人在做什么。我以前喜欢闷头做事情,守好自己的一亩三分地,其他的都不闻不问。这对于协作开发来说是非常不好的。在一个协作 的团队中,不了解别人在做什么,自己的事情也肯定做不好。分清责任和义务,并不是说可以不了解和关心他人的事情,千万别为了分清责任和义务而走极端。最后,就是做事要积极和灵活。在这一 点上,可以说是仁者见仁,智者见智,修炼起来确实需要些悟性的。做事积极主动相对比较容易,看到团队的问题主动提出来,并从自我做起加以解决;对于没人承 担或谁都不愿做的事情,试着去做做;自己取得了成果,主动与大家分享一下;别人的工作有了进展,多多鼓励和支持一下。不过,做事灵活就更不容易把握,这要 求既能成事,又不失原则。这种人品只有在摸爬滚打中才能修炼出来,就看大家的悟性啦。职业修养毋庸置疑,程序员是一种职业。一些人 是因为生存而选择了做程序员,一些人是因为兴趣爱好而选择了做程序员。可能大多数程序员和我一样,既是为了生存,也是喜欢编程,所以选择了做程序员。不管 怎样,吃了程序员这碗饭,就得对得起程序员这一职业。既然程序员是一种职业,那就有职业化的要求。一名程序员是否具有职业化的修养,可能是企业老板最关注 的人品指标。职业化与专业化有很大不同。我们常常 会称赞某人很专业,说的是这个人有某方面的专长。某方面的事情他是专家,他也很愿意去做那些事情。这叫着专业化。职业化首先要求我们要有专业的技能, 除此之外,还要求我们有职业的态度、职业的意识和职业的道德。工作中的事情,并不每一件都是你喜欢和擅长的,但你也得去做。简而言之,专业化就是“将喜欢 的事情做得很好”,而职业化就是“将交给你的事情当作喜欢的事情,并将事情做好”!我承认,和大多数程序员一样,我也想 加入核心技术团队,也喜欢做创新性的工作,喜新厌旧,不想干编程中的体力活。但在一个企业里,不可能人人都参加核心技术开发,修建软件大厦总要有一些人会 去做施工队,去干搬砖头的体力活。于是,当有工作交代下来的时候,如果不是我喜欢和擅长的,也只好硬着头皮去做,不情愿的牢骚只能暂时憋在心头。当然,既 然接了这单子的买卖,也就想尽办法努力去做好,一来是要面子,二来是怕将来留下麻烦。多年下来,也逐渐在一些不喜欢和不擅长的工作中找到快乐和成就感。后 来才明白,这就叫职业化。另外,项目开发团队中最怕出现情绪化的程序员。尤其是在核心开发工作中,情绪化的程序员无疑就是整个项目的定时炸¥弹。尽管这样的程序员可能有着极高的专业 化造诣,一旦项目客观要求发生变化,与其原来的喜好和理想不符的时候,他们就可能就会产生抵触情绪,甚至干脆撂挑子不干啦。其实,情绪化是不成熟的表现, 更是缺乏基本的职业修养。想想自己过去也曾有过类似的表现,如今想来真是可笑啊。其实,做到职业化也没那么难,只需要 乐观的心态和那么一点点牺牲精神。既然工作和纳税一样是无法避免的,我们何不快乐面对工作。既然这件事情总得有人做,牺牲一下又何妨,权当行善嘛。当然, 要做就得做好,得有那么一股劲。让我干体力活,我就权当锻炼,即使让我扫地,我也要比别人扫得干净!这样才能在工作中找到快乐和成就感。在职业生涯中,也 许会失去某些东西,但也会得到某些东西。有职业化修养的程序员在企业和团队里 是值得信赖和让人放心的,将这样的人放到重要和核心的技术项目中将是项目成功的有力保障。因为,不管项目需求如何变化,不管技术方案如何调整,有职业化修 养的程序员都会认真做好需要的每一件事情,这可以有效地保证企业和团队的整体利益和目标。因此,想要你的职业发展一帆风顺,一定要修炼职业化人品!尾声是否能认识到人品问题,关键看自己, 是否打算修炼人品,关键也要看自己,外人是帮不了的。哲学家说,外因对事物发展的影响有限,而内因才是推动事物发展的根本因素。所以,如果程序员自己不愿 意修炼自己的人品,无论外人如何苦口婆心都是没用的,反而会让他觉得你讨厌。人必须要自己经历了一些事情,才会有 切身的体会。面对问题,如果开始从自身找原因啦,也就是缘份的开始。当苦苦求索,而不得其解时,也就是机缘到啦。某一天,自己突然想明白啦,或者偶遇高人 点化,心中突然豁然开朗,就是顿悟。顿悟之后才发觉原来一切都很简单,以前纯粹是自寻烦恼。程序员不就是那么回事儿嘛!从此,我们就可以轻松潇洒地做程序 员啦。但要记住,程序员还是程序员!别修炼 了半天人品,修成了专家,成了辩论家,成了哲学家,成了思想家,就是不会编程啦。如果大家都得道成仙了,谁来干活呢?当然,因为你的道行高,大家希望把你 供起来,但千万别自己把自己供起来。真的,程序员修炼人品,不是为了摆脱编程工作,而是为了找到编程的快乐。有一位大和尚曾对我说:真正的快乐不 在于你拥有多少,而在于你付出了多少!如果你将每一件事都当善事来做,心就会快乐。所以我想,行善从编程开始好啦……自西方文艺复兴以来,中国在自然科学方面落后西方很多,软件领域也不例外。当然现在中国的许多程序员们对此可能有许多不同的意见,有些人认为中国的 程序员水平远落后于西方,有些则认为中国的程序员个人能力并不比西方的程序员差,只是整个软件产业落后而已。那么,到底中国的程序员水平 比西方程序员水平差,还是中国有许多优秀的程序员达到或超过了西方程序员同等水平呢?要解决这个问题,必须先知道程序员有多少种技术层级,每个层级需要什 么样的技术水平,然后再比较中国和西方在各个技术层级的人数,就可以知道到底有没有差距,差距有多大。当然,对于如何划分程序员的技术层 级,不同公司或不同人会有不同的划分标准,下面的划分仅代表个人的观点,如有不当之处,还请砸板砖予以纠正。第1层 菜鸟第 1层楼属于地板层,迈进这层楼的门槛是很低的。基本上懂计算机的基本操作,了解计算机专业的一些基础知识,掌握一门基本的编程语言如C/C++,或者 Java,或者JavaScript,...,均可入门迈进这层。在这层上,中国有着绝对的优势,除了从计算机专业毕业的众多人数外,还 有大量的通信、自动化、数学等相关专业的人士进入这一行,此外还有众多的其他专业转行的人士,人数绝对比西方多出甚多。并且还有一个优势就是我们这层人员 的平均智商比西方肯定高。没有多少人愿意一辈子做菜鸟,因为做"菜鸟"的滋味实在是不咋的,整天被老大们吆喝着去装装机器,搭建一下测试 环境,或者对照着别人写好的测试用例做一些黑盒测试,好一点的可以被安排去写一点测试代码。当然如果运气"好"的话,碰到了国内的一些作坊式的公司,也有 机会去写一些正式的代码。所以,菜鸟们总是在努力学习,希望爬更高的一层楼去。第2层 大虾从第1层爬 到第2层相对容易一些,以C/C++程序员为例,只要熟练掌握C/C++编程语言,掌握C标准库和常用的各种数据结构算法,掌握STL的基本实现和使用方 法,掌握多线程编程基础知识,掌握一种开发环境,再对各种操作系统的API都去使用一下,搞网络编程的当然对socket编程要好好掌握一下,然后再学习 一些面向对象的设计知识和设计模式等,学习一些测试、软件工程和质量控制的基本知识,大部分人经过2~3年的努力,都可以爬到第2层,晋升为"大虾"。中 国的"大虾"数量和"菜鸟"数量估计不会少多少,所以这层上仍然远领先于西方。大虾们通常还是有些自知之明,知道自己只能实现一些简单的 功能,做不了大的东西,有时候还会遇到一些疑难问题给卡住,所以他们对那些大牛级的人物通常是非常崇拜的,国外的如Robert C. Martin、Linus Torvalds,国内的如求伯君、王志东等通常是他们崇拜的对象。其中的有些人希望有一天也能达到这些大牛级人物的水平,所以他们继续往楼上爬去。第 3层 牛人由于"大虾"们经常被一些疑难问题给卡住,所以有了"大虾"们只好继续学习,他们需要将原来所学的知识进一步熟练掌握,比如以 熟练掌握C++编程语言为例,除了学一些基础性的C++书籍如《C++ Primer》,《Effective C++》,《Think in C++》,《Exception C++》等之外,更重要的是需要了解C++编译器的原理和实现机制,了解操作系统中的内部机制如内存管理、进程和线程的管理机制,了解处理器的基础知识和 代码优化的方法,此外还需要更深入地学习更多的数据结构与算法,掌握更深入的测试和调试知识以及质量管理和控制方法,对各种设计方法有更好的理解等。学 习上面说的这些知识不是一挥而就的,不看个三五十本书并掌握它是做不到的。以数据结构算法来说,至少要看个5~10本这方面的著作;以软件设计来说,光懂 结构化设计、面向对象设计和一些设计模式是不够的,还要了解软件架构设计、交互设计、面向方面的设计、面向使用的设计、面向数据结构算法的设计、情感化设 计等,否则是很难进到这个楼层的。当然除了上面说的知识外,大虾们还需要去学习各种经验和技巧。当然这点难不倒他们,现在出版的书籍众 多,网络上的技术文章更是不胜数,然后再去各种专业论坛里泡一泡,把这些书籍和文章中的各种经验、技能、技巧掌握下来,再去学习一些知名的开源项目如 Apache或Linux操作系统的源代码实现等。此时对付一般的疑难问题通常都不在话下,菜鸟和大虾们会觉得你很"牛",你也就爬到了第3层,晋升为" 牛人"了。看了上面所讲的要求,可能有些大虾要晕过去了,成为牛人要学这么多东西啊!要求是不是太高了?其实要求一点也不高,这么点东西 都掌握不了的话,怎么能让别人觉得你"牛"呢?需要提一下的是,进入多核时代后,从第2层爬到第3层增加了一道多核编程的门槛。当然要迈 过这道门槛并不难,已经有很多前辈高人迈进了这道门槛,只要循着他们的足迹前进就可以了。想迈进这道门槛者不妨去学习一下TBB开源项目的源代码(链 接:),然后上Intel的博客()和多核论坛()去看看相关文章,再买上几本相关的书籍学习一下。在国内,一旦成为"牛人",通常可以到许多知名的 公司里去,运气好者可以挂上一个架构师的头衔,甚至挂上一个"首席架构师"或者"首席xx学家"的头衔也不足为奇。有不少爬到这层的人就以为到了楼顶了, 可以眼睛往天上看了,开始目空一切起来,以为自己什么都可以做了,什么都懂了,经常在网络上乱砸板砖是这个群体的最好写照。由此也看出,国内的牛人数量仍 然众多,远多于西方的牛人数量,在这层上仍然是领先的。也有不少谦虚的"牛人",知道自己现在还不到半桶水阶段。他们深知爬楼的游戏就像 猴子上树一样,往下看是笑脸,往上看是屁股。为了多看笑脸,少看屁股,他们并没有在此停步不前,而是继续寻找到更上一层的楼梯,以便继续往上爬。第 4层 大牛从第3层爬到第4层可不像上面说过的那几层一样容易,要成为大牛的话,你必须要能做牛人们做不了的事情,解决牛人们解决不了问 题。比如牛人们通常都不懂写操作系统,不会写编译器,不懂得TCP/IP协议的底层实现,如果你有能力将其中的任何一个实现得象模象样的话,那么你就从牛 人升级为"大牛"了。当然,由于各个专业领域的差别,这里举操作系统、编译器、TCP/IP协议只是作为例子,并不代表成为"大牛"一定 需要掌握这些知识,以时下热门的多核编程来说,如果你能比牛人们更深入地掌握其中的各种思想原理,能更加自如的运用,并有能力去实现一个象开源项目TBB 库一样的东西,也可以成为"大牛",又或者你能写出一个类似Apache一样的服务器,或者写出一个数据库,都可以成为"大牛"。要成 为"大牛"并不是一件简单的事情,需要付出比牛人们多得多的努力,一般来说,至少要看过200~400本左右的专业书籍并好好掌握它,除此之外,还得经常 关注网络和期刊杂志上的各种最新信息。当"牛人"晋升为"大牛",让"牛人们"发现有比他们更牛的人时,对"牛人"们的心灵的震撼是可想 而知的。由于牛人们的数量庞大,并且牛人对大虾和菜鸟阶层有言传身教的影响,所以大牛们通常能获得非常高的社会知名度,几乎可以用"引无数菜鸟、大虾、牛 人竞折腰"来形容,看看前面提过的Linus Torvalds等大牛,应该知道此言不虚。虽然成为"大牛"的条件看起来似乎很高似的, 但是这层楼并不是很难爬的一层,只要通过一定的努力,素质不是很差,还是有许多"牛人"可以爬到这一层的。由此可知,"大牛"这个楼层的人数其实并不像想 像的那么少,例如比尔·盖茨之类的人好像也是属于这一层的。由于"大牛"这层的人数不少,所以也很难统计除到底是中国的"大牛"数量多还 是西方的大牛数量多?我估计应该是个旗鼓相当的数量,或者中国的"大牛"们会更多一些。看到这里,可能会有很多人会以为我在这里说瞎 话,Linus Torvalds写出了著名的Linux操作系统,我国并没有人写出过类似的东西啊,我国的"大牛"怎么能和西方的比呢
不知大家注意到没有,Linus Torvalds只是写出了一个"象模象样"的操作系统雏形,Linux后来真正发展成闻名全球的开源操作系统期间,完全是因为许多支持开源的商业公司如 IBM等,派出了许多比Linus Torvalds更高楼层的幕后英雄在里面把它开发出来的。可能有些菜鸟认为Linus Torvalds是程序员中的上帝,不妨说个小故事:Linus,Richard Stallman和Don Knuth(高德纳)一同参加一个会议。Linus 说:"上帝说我创造了世界上最优秀的操作系统。"Richard Stallman自然不甘示弱地说:"上帝说我创造了世界上最好用的编译器。"Don Knuth一脸疑惑的说:"等等,等等,我什么时候说过这些话?"由此可以看出,Linus Torvalds的技术水平并不像想像中那么高,只是"牛人"和"大虾"觉得"大牛"比他们更牛吧了。在我国,有一些当时还处于"大虾"层的人物,也能写 出介绍如何写操作系统的书,并且书写得非常出色,而且写出了一个有那么一点点象模象样的操作系统来。我想中国的"大牛"们是不会比西方差的,之所以没有人 写出类似的商业产品来,完全是社会环境的原因,并不是技术能力达不到的原因。"大牛"们之所以成为大牛,主要的原因是因为把"牛人"给盖 了下去,并不是他们自己觉得如何牛。也许有很多菜鸟、大虾甚至牛人觉得"大牛"这层已经到顶了,但大多数"大牛"估计应该是有自知之明的,他们知道自己现 在还没有爬到半山腰,也就勉强能算个半桶水的水平,其中有些爬到这层没有累趴下,仍然能量充沛,并且又有志者,还是会继续往更上一层楼爬的。看 到这里,也许有些菜鸟、大虾、牛人想不明白了,还有比"大牛"们更高的楼层,那会是什么样的楼层?下面就来看看第5层楼的奥妙。第5层 专家当大牛们真正动手做一个操作系统或者类似的其他软件时,他们就会发现自己的基本功仍然有很多的不足。以内存管理为例,如果直接抄袭 Linux或者其他开源操作系统的内存管理算法,会被人看不起的,如果自动动手实现一个内存管理算法,他会发现现在有关内存管理方法的算法数量众多,自己 并没有全部学过和实践过,不知道到底该用那种内存管理算法。看到这里,可能有些人已经明白第5层楼的奥妙了,那就是需要做基础研究,当然 在计算机里,最重要的就是"计算"二字,程序员要做基础研究,主要的内容就是研究非数值"计算"。非数值计算可是一个非常庞大的领域,不 仅时下热门的"多核计算"与"云计算"属于非数值计算范畴,就是软件需求、设计、测试、调试、评估、质量控制、软件工程等本质上也属于非数值计算的范畴, 甚至芯片硬件设计也同样牵涉到非数值计算。如果你还没有真正领悟"计算"二字的含义,那么你就没有机会进到这层楼来。可能有人仍然没有明 白为什么比尔·盖茨被划在了大牛层,没有进到这层来。虽然比尔·盖茨大学未毕业,学历不够,但是家有藏书2万余册,进入软件这个行业比绝大部分人都早,撇 开他的商业才能不谈,即使只看他的技术水平,也可以算得上是学富五车,顶上几个普通的计算机软件博士之和是没有问题的,比起 Linus Torvalds之类的"大牛"们应该技高一筹才对,怎么还进不了这层楼呢?非常遗憾的是,从Windows操作系统的实现来看,其对计 算的理解是很肤浅的,如果把Google对计算方面的理解比做大学生,比尔·盖茨只能算做一个初中生,所以比尔·盖茨永远只能做个大牛人,成不了"专 家"。看到这里,也许国内的大牛们要高兴起来了,原来比尔·盖茨也只和我等在同一个层次,只要再升一层就可以超越比尔·盖茨了。不过爬到 这层可没有从"牛人"升为"大牛"那么简单,人家比尔·盖茨都家有2万多册书,让你看个500~1000本以上的专业书籍并掌握好它应该要求不高吧。当 然,这并不是主要的条件,更重要的是,需要到专业的学术站点去学习了,到ACM,IEEE,Elsevier,SpringerLink,SIAM等地方 去下载论文应该成为你的定期功课,使用Google搜索引擎中的学术搜索更是应该成为你的日常必修课。此外,你还得经常关注是否有与你研究相关的开源项目 冒出来,例如当听到有TBB这样针对多核的开源项目时,你应该第一时间到Google里输入"TBB"搜索一下,将其源代码下载下来好好研究一番,这样也 许你的一只脚已经快迈进了这层楼的门槛。当你象我上面说的那样去做了以后,随着时间的推移,总会有某天,你发现,在很多小的领域里,你已 经学不到什么新东西了,所有最新出来的研究成果你几乎都知道。此时你会发现你比在做"牛人"和"大牛"时的水平不知高出了多少,但是你一点也"牛"不起 来,因为你学的知识和思想都是别人提出来的,你自己并没有多少自己的知识和思想分享给别人,所以你还得继续往楼上爬才行。我不知道国内 的"专家"到底有多少,不过有一点可以肯定的是,如果把那些专门蒙大家的"砖家"也算上的话,我们的砖家比西方的要多得多。第6层 学者当"专家"们想继续往上一层楼爬时,他们几乎一眼就可以看到楼梯的入口,不过令他们吃惊的是,楼梯入口处竖了一道高高 的门槛,上面写着"创新"二字。不幸的是,大多数人在爬到第5层楼时已经体能消耗过度,无力翻过这道门槛。有少数体能充足者,可以轻易翻 越这道门槛,但是并不意味着体力消耗过度者就无法翻越,因为你只是暂时还没有掌握恢复体能的方法而已,当掌握了恢复体能的方法,将体能恢复后,你就可以轻 易地翻越这道门槛了。怎么才能将体能恢复呢?我们的老祖宗"孔子"早就教导过我们"温故而知新",在英文里,研究的单词 是"research",其前缀"re" 和"search"分别是什么意思不用我解释吧。或许有些人觉得"温故而知新"和"research"有些抽象,不好理解,我再给打个简单的比方,比如你 在爬一座高山,爬了半天,中途体力不支,怎么恢复体力呢?自然是休息一下,重新进食一些食物,体力很快就可以得到恢复。由此可知,对体能 消耗过度者,休息+重新进食通常是恢复体能的最佳选择。可惜的是,国内的老板们并不懂得这点,他们的公司里不仅连正常国家规定的休息时间都不给足,有些公 司甚至有员工"过劳死"出现。所以国内能翻越"创新"这道门槛的人是"少之又少",和西方比起来估计是数量级的差别。再说说重新进食的问 题,这个重新进食是有讲究的,需要进食一些基础性易消化的简单食物,不能进食山珍海味级的复杂食物,否则很难快速吸收。以查找为例,并不是去天天盯着那些 复杂的查找结构和算法进行研究,你需要做的是将二分查找、哈希查找、普通二叉树查找等基础性的知识好好地复习几遍。以哈希查找为例,首先 你需要去将各种冲突解决方法如链式结构、二次哈希等编写一遍,再试试不同种类的哈希函数,然后还需要试试在硬盘中如何实现哈希查找,并考虑数据从硬盘读到 内存后,如何组织硬盘中的数据才能快速地在内存中构建出哈希表来,...,这样你可能需要将一个哈希表写上十几个不同的版本,并比较各个版本的性能、功能 方面的区别和适用范围。总之,对任何一种简单的东西,你需要考虑各种各样的需求,以需求来驱动研究。最后你将各种最基础性的查找结构和算 法都了然于胸后,或许某天你再看其他更复杂的查找算法,或者你在散步时,脑袋里灵光一现,突然间就发现了更好的方法,也就从专家晋升为"学者"了。学 者所做的事情,通常都是在前人的基础上,进行一些小的优化和改进,例如别人发明了链式基数排序的方法,你第1个发现使用一定的方法,可以用数组替代链表进 行基数排序,性能还能得到进一步提高。由于学者需要的只是一些小的优化改进,因此中国还是有一定数量的学者。不过和国外的数量比起来,估 计少了一个数量级而已。也许有人会觉得现在中国许多公司申请专利的数量达到甚至超过西方发达国家了,我们的学者数量应该不会比他们少多 少。因此,有必要把专利和这里说的创新的区别解释一下。所谓专利者,只要是以前没有的,新的东西,都可以申请专利;甚至是以前有的东西, 你把他用到了一个新的领域的产品里去,也可以申请专利。比如你在房子里造一个水泥柱子,只要以前没有人就这件事申请专利,那么你就可以申请专利,并且下次 你把水泥柱子挪一个位置,又可以申请一个新的专利;或者你在一个柜子上打上几个孔,下次又把孔的位置改一改,...,均可申请专利。这层 楼里所说的创新,是指学术层面的创新,是基础研究方面的创新,和专利的概念是完全不同的,难度也是完全不同的。你即使申请了一万个象那种打孔一类的专利, 加起来也够不到这层楼里的一个创新。当你爬到第6层楼时,你也许会有一种突破极限的快感,因为你终于把那道高高的写着"创新"二字的门槛 给翻过去了,实现了"0"的突破。这时,你也许有一种"独上高楼,欲望尽天涯路"的感觉,但是很快你会发现看到的都是比较近的路,远处的路根本看不清楚。 如果你还有足够的体力的话,你会想爬到更高一层的楼层去。第7层 大师从第6层楼爬到第7层楼,并没有多少捷径可走,主 要看你有没有足够的能量。你如果能象Hoare一样设计出一个快速排序的算法;或者象Eugene W. Myers一样设计出了一个用编辑图的最短路径模型来解决diff问题的算法;或者象M.J.D. Powell一样提出了一个能够处理非线性规划问题的SQP方法;或者你发现基于比较的排序算法,它的复杂度下界为O(NLogN);或者你发现用栈可以 将递归的算法变成非递归的;或者你设计出一个红黑树或者AVL树之类的查找结构;或者你设计出一个象C++或Java一样的语言;或者你发明了 UML;...,你就爬到了第7层,晋升为"大师"了。上面举的这些例子中,其中有些人站的楼层比这层高,这里只是为了形象说明而举例他 们的某个成就。从上面列出的一些大师的贡献可以看出,成为大师必须要有较大的贡献。首先解决问题必须是比较重要的,其次你要比前辈们在某方面有一个较大的 提高,或者你解决的是一个全新的以前没有解决过的问题;最重要的是,主要的思路和方法必须是你自己提供的,不再是在别人的思路基础上进行的优化和改进。看 了上面这些要求,如果能量不够的话,你也许会觉得有些困难,所以不是每个人都能成为"大师"的。中国软件业里能称得上是"大师"的人,用屈指可数来形容, 估计是绰绰有余。值得一提得是,国外的"大师"就象我们的"大牛"一样满天飞的多。我把我猜测本国有可能进到这层楼的大师列一下,以起个 抛砖引玉的作用。汉王的"手写识别"技术由于是完全保密的,不知道它里面用了什么思想,原创思想占的比重有多少,因此不知道该把它划到这层楼还是更高一层 楼去。原山东大学王小云教授破解DES和MD5算法时,用到的方法不知道是不是完全原创的,如果是的话也可进到这层楼来。陈景润虽然没有 彻底解决哥德巴赫猜想,但他在解决问题时所用的方法是创新的,因此也可以进到这层楼来。当然,如果能彻底解决哥德巴赫猜想,那么可以算到更高的楼层去。求 伯君和王志东等大牛们,他们在做WPS和表格处理之类的软件时,不知是否有较大的原创算法在里面,如果有的话就算我错把他们划到了大牛层。由于所学有限, 不知道国内还有那些人能够得上"大师"的级别,或许有少量做研究的教授、院士们,可以达到这个级别,有知道的不妨回个帖子晾一晾。鉴于" 大师"这个称号的光环效应,相信有不少人梦想着成为"大师"。或许你看了前面举的一些大师的例子,你会觉得要成为大师非常困难。不妨说一下,现在有一条通 往"大师"之路的捷径打开了,那就是多核计算领域,有大量的处女地等待大家去挖掘。以前在单核时代开发的各种算法,现在都需要改写成并行 的。数据结构与算法、图像处理、数值计算、操作系统、编译器、测试调试等各个领域,都存在大量的机会,可以让你进到这层楼来,甚至有可能让你进到更高一层 楼去。第8层 科学家科学家向来都是一个神圣的称号,因此我把他放在了“大师”之上。要成为科学家,你的贡献必须超越大 师,不妨随便举一些例子。如果你象Dijkstra一样设计了ALGOL语言,提出了程序设计的三种基本结构:顺序、选择、循环,那么你 可以爬到第8层楼来。顺便说一下,即使抛开这个成果,Dijkstra凭他的PV操作和信号量概念的提出,同样可以进到这层楼。如果你象 Don Knuth一样,是数据结构与算法这门学科的重要奠基者,你也可以进到这层楼来。当然,数据结构和算法这门学科不是某个人开创的,是许多大师和科学家集体 开创的。如果你象巴科斯一样发明了Fortran语言,并提出了巴科斯范式,对高级程序语言的发展起了重要作用,你也可以进到这层楼来。或 者你象Ken Thompson、Dennis Ritchie一样发明了Unix操作系统和功能强大、高效、灵活、表达力强的C语言,对操作系统理论和高级编程语言均作出重大贡献,那么你也可以进到这 层楼来。或者你有Frederick P. Brooks一样机会,可以去领导开发IBM的大型计算机System/360和OS/360操作系统,并在失败后反思总结,写出《人月神话》,对软件工 程作出里程碑式的贡献,你也可以进到这层来。或者你提出了面向对象设计的基本思想,或者你设计了互联网的TCP/IP协议,或者你象 Steven A.Cook一样奠定NP完全性的理论基础,或者你象Frances Allen一样专注于并行计算来实现编译技术,在编译优化理论和技术取得基础性的成就,…,均可进入这层。当然,如果你发明了C++语言 或者Java语言,你进不到这层来,因为你用到的主要思想都是这层楼中的科学家提出的,你自己并没有没有多少原创思想在里面。看了上面列 出的科学家的成就,你会发现,要成为“科学家”,通常要开创一门分支学科,或者是这个分支学科的奠基者,或者在某个分支学科里作出里程碑式的重大贡献。如 果做不到这些的话,那么你能象Andrew C. Yao(姚期智)一样在对计算理论的多个方向如伪随机数生成,密码学与通信复杂度等各个方向上作出重要贡献,成为集大成者,也可以进入这层楼。成 为“科学家”后,如果你有幸象Dijkstra一样,出现在一个非常重视科学的国度。当你去世时,你家乡满城的人都会自动地去为你送葬。不过如果不幸生错 地方的话,能不挨“板砖”估计就算万幸了。从上面随便举的一些例子中,你可能能猜到,西方科学家的数量是非常多的,于是你会想中国应该也 有少量的科学家吧?我可以很负责任地告诉你一个不幸的结果,中国本土产生的科学家的数量为0。目前在国内,软件领域的唯一的科学家就是上面提过的姚期智, 还是国外请回来的,并不是本土产生的。可能你不同意我说的本土科学家数量为0的结论,因为你经常看到有许多公司里都有所谓“首席XX科学 家”的头衔。我想说的是,这些所谓的“首席XX科学家”都是远远够不到这层楼的级别的,有些人的水平估计也就是一个“牛人”或“大牛”的级别,好一点的最 多也就一个“学者”的级别。尤其是那些被称作“首席经X学家”的,基本上可以把称号改为“首席坑大家”。虽然我国没有人能爬到这层楼上 来,但是西方国家仍然有许多人爬到了比这层更高的楼上。如果要问我们比西方落后多少?那么可以简单地回答为:“落后了三层楼”。下面就来看看我们做梦都没 有到过的更高一层楼的秘密。第9层 大科学家进入这层楼的门槛通常需要一些运气,比如某天有个苹果砸到你头上时,你碰巧 发现了万有引力,那么你可以进到这层楼来。当然,万有引力几百年前就被人发现了,如果你现在到处嚷嚷着说你发现了万有引力,恐怕马上会有人打110,然后 警察会把你送到不正常人类的聚集地去。因此,这里举万有引力的例子,只是说你要有类似的成就才能进到这层楼来。牛顿发现万有引力定律开创 了经典物理运动力学这门学科,如果你也能开创一门大的学科,那么你就从科学家晋升为“大科学家”。比如爱因斯坦创建了相对论,从一个小职员变成了大科学 家。当然大科学家可远不止这两人,数学界里比物理学界更是多得多,如欧几里得创建了平面几何,笛卡尔开创解析几何,还有欧拉、高斯、莱布尼茨等数不清的人 物,跟计算相关的大科学家则有图灵等人。从上面列出的一些大科学家可以发现,他们的成就不仅是开创了一个大的学科,更重要的是他们的成就 上升到了“公理”的层面。发现公理通常是需要一点运气的,如果你的运气不够好的话,另外还有一个笨办法也可以进到这层楼来,那就是成为集大成者。例如冯· 诺伊曼,对数学的所有分支都非常了解,许多领域都有较大的贡献,即使撇开他对计算机的开创贡献,成为大科学家照样绰绰有余。当然,程序员 们最关心的是自己有没有机会变成大科学家。既然计算机这门大学科的开创性成果早就被冯·诺伊曼、图灵等人摘走了,那么程序员们是不是没有机会变成大科学家 了呢?我们的古人说得好:“江山代有才人出,各领风骚数百年”,现在在计算机这门学科下面诞生了许多非常重要的大的分支,所以你还是有足够的机会进到这层 楼的。如果你能够彻底解决自然语言理解(机器翻译)这门学科中的核心问题, 或者你在人工智能或者机器视觉(图像识别)方面有突破性的发现,那么你同样可以轻易地晋升为“大科学家”。这样当某天你老了去世时,或许那天国人已经觉 醒,你也能享受到如Dijkstra一样的待遇,有满城甚至全国的人去为你送葬。现在还剩下另外一个大家感兴趣的问题没有讨论,那就是这 层中已经出现了牛顿、爱因斯坦、高斯等我们平常人都认为是顶级的科学家,是不是这层已经是楼顶了呢?相信还记得本文标题的人应该知道现在仅仅是第9层,还 有第10层没有到达呢。可能不少人现在要感到困惑了,难道还有人站在比牛顿、爱因斯坦、高斯等人更高的楼层上?这个世界上确实存在可以用 一只手的手指数得清的那么几个人,他们爬到了第10层楼上。因此,第10层楼不是虚构的,而是确实存在的。如果对此有疑惑或者认为我在胡诌一番的话,那么 不妨继续往下看下去,窥一下第10层楼的秘密。第10层 大哲看了这层楼的名字“大哲”,可能不少人已经猜到了这层楼的秘密,那就是你的成果必须要上升到哲学的高度,你才有机会能进到这 层来。当然,上升到哲学高度只是一个必要条件,牛顿的万有引力似乎也上升到了哲学的高度,因为不知道引力到底是怎么来的,但是牛顿没有被 划到这一层,因为进到这层还有另外的条件,那就是你的成果必须引起了哲学上的深度思考,并能让人们的世界观向前跨进一大步。窃以为牛顿、爱因斯坦等人的成 就还达不到让人们世界观向前跨进一大步的程度。所以,这层楼中的人的成就对我们普通人认识世界非常重要,你可以不学相对论,但是你不可以 不对这层楼的人所作出的成就不了解,否则你的世界观就是极其不完整的,会犯许多认识上的错误。不幸的是,中国的科普知识普及还不够到位,知道这层楼成就的 人好像并不多,程序员中恐怕更少。下面就来看看这些用一只手的手指数得清的大哲们,到底有什么成就,能比万有引力定律和相对论还重要。1、 希尔伯特 ()第1位进到此楼层是一位名叫“希尔伯特”的大数学家,如果你学过《泛函分析》,那么你在学习希尔伯特空 间时可能已经对这位大数学家有所了解;如果你不是学数学出身的,又对数学史不感兴趣的话,恐怕你从来没有听说过这个名字。不过如果我问一下,知不知道二次 世界大战前世界数学中心在那里,你肯定会有兴趣想知道。不妨说一下,二战前整个世界的数学中心就在德国的哥廷根,而我们这位大数学家希尔 伯特便是它的统帅和灵魂人物。即使在二战期间,希特勒和丘吉尔也有协定,德国不轰炸牛津和剑桥,作为回报,英国不轰炸海德堡和哥廷根。整 个二十世纪上半期的超一流数学家,几乎都出自其门下。这里不妨举几个我们熟悉的人物,例如冯·诺伊曼就曾受到他和他的学生施密特和外尔的思想影响,还到哥 廷根大学任过希尔伯特的助手,钱学森的老师冯·卡门是在哥廷根取得博士学位的。顺便提一下,这位大数学家发现当时物理学上出了很多大的成果如相对论和量子 力学,但是这些物理学家的数学功力明显不足,因此有一段时间带领他的学生们研究过物理学,并独立发现了广义相对论,只是不好意思和物理学家争功劳,将广义 相对论的功劳全部让给了爱因斯坦。广义相对论相对于这位大数学家在数学上的贡献,其实是算不了什么的,只是由此可看出这位大数学家品格的 高尚之处。如果再去看看牛顿之流的人物的品行,整天和莱布尼茨、虎克等人争功劳,利用自己的优势地位打压他人,甚至闹得上法庭,和这位希尔伯特先生比起 来,简直就是个小丑。说到这里,你可能对这位大数学家“希尔伯特”有了一些初步映象,感觉到了他的重要性,不过他在数学上的主要成就可不 是几句话说得清楚的。首先,他是一位集大成者,精通当时数学所有分支领域,在数学的各个领域都有较大的贡献,当然这些成就只能让他成为一个大科学家,不能 带他进入这层楼。事实上这位“ 希尔伯特”解决的任何一个数学问题都够不到这层楼的高度,那么他怎么混到这层楼来了呢?话得从1900年 说起,当时还很年轻的希尔伯特在当时的世界数学大会上做了一个报告,高屋建瓯地提出了著名的23个未解决的数学问题,然后整个二十世纪上半期,全世界的数 学家们都在这23个问题的指导下展开研究,直到现在仍然有许多数学家受这23个问题的指导在进行研究。例如我们熟知的哥德巴赫猜想,就属于其中第8个问题 素数分布的一个子问题。如果用“高瞻远瞩”来形容这位大数学家的话,那么这个世界上恐怕没有第二个人再配得上“高瞻远瞩”这四个字,不论 是欧拉、高斯、牛顿、爱因斯坦还是被誉为最有才华的数学家伽罗华,概不例外。虽然那23个问题是归纳总结出来的,并不全是原创,但是其中 有不少问题是可以上升到哲学的高度,引起深度思考的。可能大多数人都会觉得希尔伯特是进不到这层楼的,我们知道提出问题的人和解决问题的人是一样伟大的, 何况他提出的问题是如此之多,基于这点,个人觉得应该让希尔伯特跨进这层楼的门槛里。 看完这位希尔伯特的成就,你可能会觉得 对你的世界观并没有产生任何影响。确实如此,他提出的问题不是用来影响你的,而是用来影响其他大科学家和大哲的,下面再来说说另一位对他提出的23个问题 中的第2个问题有杰出贡献的大哲,你就会感觉到大哲们的成果的威力了。2、哥德尔 ()这位大哲的名 字叫“哥德尔 (G del) ”,你可能从来也没有听说过这个名字,即使你读了一个数学系的博士学位,如果你的研究方向不和这位大哲对口的话,你也不一定了解这位大哲的成就,更不知道 他的成果对我们这个世界有何意义。简单地说,这位大哲20多岁时就证明了两个定理,一个叫做“哥德尔完全性定理”,另一个更重要的叫做 “哥德尔不完全性定理”。你也许会觉得奇怪,第9层楼的成就就已经上升到了公理的高度,这种证明定理的事情不是学者和大师们做的事情吗?怎么能比第9层楼 的成就还高呢?下面就来简单说一下这两个定理的含义,你就会明白这属于系统级的定理,绝不是普通的定理和公理所能比拟的。“哥德尔完全性 定理”证明了逻辑学的几条公理是完备的,即任何一个由这些公理所产生出的问题,在这个公理系统内可以判定它是真的还是假的,这个结论表明了我们人类所拥有 的逻辑思维能力是完备的。这条定理并不能将其带入这层楼来,带其进入这层楼的是另一条定理。“哥德尔不完全性定理”是在1930年证明 的,它证明了现有数学的几条公理(ZF公理系统)是不完备的,即由这些公理产生出的问题,无法由这几条公理判断它是真的还是假的。例如希尔伯特23个问题 中的第1个问题,也就是著名的康托尔连续统假设,哥德尔在1938年证明了现有公理系统中不能证明它是 “假”的,科恩(Cohen,或许也可以称得上是“半”个大哲)在1963年证明了现有公理系统不能证明它是“真”的。最有趣的是,即使你将某个不可判定 的问题,作为一条新的公理加入进去,所组成的新的公理系统仍然是不完备的,即你无法构造一个有限条公理的系统,让这个公理系统是完备的。也 许你仍然无法理解上面这段话的含义,不妨先说一下它对我们现实世界的影响。你可能知道1936年出现的图灵机是现代计算机的理论模型,如果没有哥德尔不完 全性定理的思想,图灵机什么时候能出来是很难说的,所以这位哥德尔可以算作计算机理论的奠基者的奠基者。计算机对我们这个世界产生的影响比原子弹大了多 少,我想不用我说大家也都清楚。当然,对现实世界的影响只能把哥德尔同图灵等人一样划到大科学家那一层去,能进入这层乃是另有原因。可能 你看过《未来战士》、《黑客帝国》、《I,Robot》之类的科幻电影,于是你产生制造一个和人一样或者比人更高一级的智能机器人的想法,这就引入了一个 达到哲学高度的问题,“人到底能不能制造出具有和人一样的思维能力的机器来?”。我只能告诉你,“你的愿望是良好的,但现实是残酷的”。 如果你仔细思考一下不完全性定理的含义,并结合现代计算机所具有的能力分析一下,你会发现这个问题的答案暂时是否定的。如果你想造出和人一样思维能力的机 器,那么你需要去好好学习这位大哲及其后续研究者的成果,并在他们的基础上有新的突破才行。为了说明这位大哲所研究领域的重要性,这里顺 便再讨论一个我们日常争议不休的问题,那就是孔夫子的“人之初、性本善”以及西方认为“人之初、性本恶”的观点孰优孰劣的问题。可能有许多人发现西方社会 现在领先我们,于是就认为“性本恶”是对的,“性本善”是错的,中国应该抛弃以前的旧思想,改用西方的思想。当然也有一些老学究们,认为中国的人文思想是 领先于西方的,自然而然地认为“性本善”是对的,“性本恶”是错的。如果你学过大哲用过的公理化的分析方法,你就知道一套系统的多条公理 间只要不会推导出矛盾的地方,即可以自圆其说,那么它可以看作是对的。这样你可以很轻易地给这个问题下一个结论,即“性本善”和“性本恶”是对等的,不存 在孰优孰劣的问题,更不存在谁对谁错的问题。只要你不同时将“性本善”和“性本恶”放入一个系统内,那么是不会有问题的,甚至你也可以认为“人之初、既无 善、亦无恶”,或者认为“人之初、部分善、部分恶”,都是可以自圆其说的,所以我们的老祖宗提出的思想并没有问题,之所以落后乃是其他原因造成的。这个问 题其实在高斯所处的时代就有了结论,那时有人提出了非欧几何,即平行线公理问题,有人认为过一点可以作多条平行线,还有人认为平行线在无穷远点是相交的, 和欧氏几何关于过一点只能作一条平行线的公理都是矛盾的,但是他们各自的系统内推导出的结论都是正确的。上面说的只是对哥德尔不完全性定 理的一些粗浅解析,实际上如果深入思考一下它的含义的话,你会发现它对物理学等许多学科有重大影响,包含的道理实在是深刻,远非一般的思想所能比拟,有兴 趣者不妨“google”或“百度”一下“哥德尔”。或许只有我们的老祖宗“老子”提出的哲学思想,深度可以有得一比。哥德尔不完全性定 理也给那些认为科学是严谨的人当头一棒,原来连数学这样的纯理论学科都是不严谨的,其他学科就更不用说了。
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&增值电信业务经营许可证湘B2-}

我要回帖

更多关于 女生适合学软件工程吗 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信