網生@誌 | zEUS.'Blog

首页 » 与我有关 » 2007-07-28 »

浅谈编程和推理

字体大小:T | T

学生时期一直觉得程序员是一个神秘的职业——因为在程序员的手里有一个世界,一个非常有创造性的虚拟世界!
由于电脑游戏的关系,我一度对这个职业非常向往。让人高兴的是,如今我已经有机会可以成为一名程序员了。但当我慢慢踏进程序员大门的时候,我才发现在这神秘面纱后面的真实世界。此时我才明白毕业之前参加各种笔试时为什么会遇到那些变态的推理题了…

在参加工作的3周里,我一个非常强烈的感受就是,强悍的逻辑推理能力能帮助你更快的成为一个优秀的程序员。
所有程序都有它自己的表达方式和组成结构,特别是复杂的大型程序,它的结构都是层层嵌套的,如果没有很强的逻辑推理能力的话是很难分析出程序所表达的意思,那就更不用谈写出这样的程序了。程序的这种特性让我联想到了《金田一事件簿》,编写程序和推理断案其实本质上是差不多的。

首先,它们都是先有结果,而后才产生过程。
矩阵我们为什么要写程序,因为我们需要它,我们需要由各种程序所编写出的具有不同功能的软件来为人们更好的服务。打2个简单的比方,当人们发现大脑的计算效率已经跟不上时代发展的速率了,那么就应该借助机器来帮助人们运算。这其中的结果就是计算器,过程是使用非常原始的编程语言在机器上实现计算的功能。在无论什么都信息化的今天,优化企业的资源和企业资源的一体化管理能更好的推动企业发展,于是就有人想到了用软件来帮助企业实现这样的管理——这就是程序编写的一个结果,其过程就是无数的软件企业利用当今的技术编写各自的ERP(Enterprise Resources Plannig)软件。简单的说就是,软件的功能是结果,如何编写软件是一个过程。我们是因为需要一些功能而去编写软件。
推理断案我就不用多说了,想必大家都知道。案件是结果,推理是过程。先有了嫌疑犯制造的案件,之后才有侦探们一步步的推理。

其次,它们具有类似的组成结构。
程序的结构流程是非常复杂的,它由无数的函数构成,各个函数里又包含了不同类型的数据,数据的结构又多种多样…. 很多时候我们一段段的解读程序尚能弄懂其意,但想把它们整合起来理解却不那么容易。
福尔摩斯推理断案也如此,一桩悬案,刚开始时侦探们往往只掌握到一些支离破碎的小线索,很多时候他们都无法把自己手上的线索联系起来。但随着调查的一步步深入,他们会慢慢的发现另一些线索,前后线索的结合将有助于案情的侦破。
程序的结构就是推理的线索,当我们把整个程序的结构解析联系起来的时候就是推断出“真凶”的时候!

最后,它们都需要耐心和细心。
编写程序其实是一件比较枯燥的事情,整日对着显示器,看着数以万计的代码,很难不让人生厌。再加上编写时所遇到的逻辑思维上的死角,搞得我经常“头都是麻的,恨不得用头去撞显示器”…. 耐心在这里的重要性就不言而喻了。细心是程序正确率的保证,也是程序员需要具备的一个良好习惯。
耐心同样是保证推理顺利完成的前提,无论是金田一还是柯南我们可以发现细心是他们最大的优点。

当短暂的程序员生涯结束之后,我是否可以考虑下去做一位名侦探呢? 🙂
现在的首要任务就是要尽快成为一名合格的程序员,留给我做程序员的时间不多了……….

zEUS.

« »

已经有10人发表了评论

  1. 如果说计算机语言也是一种语言,那看来我们是一个专业的~

  2. interjc on 2007年, 八月 1日 at 6:37 下午 said:

    郁闷..

    对你现在的状况深表同情,希望你能早些回来~

  3. @Yorick:写程序这种事情一不小心就会投入大量的时间,生命在程序中得到升华….
    @EaSy:呵呵,我在学校也没好好学 :-p
    @dogorgod:我的分析能力和同事们比起来还差一大节… 现在是急需提高啊..
    @Cynthia妮:贴人游戏?!完了,我都忘记怎么玩了…

  4. 汗啊,我都一直没注意金田一滴。。。不过今天早上突然想起了小时候常玩的贴人游戏,很久没运动过了。

  5. 呵呵,真够复杂的“当短暂的程序员生涯结束之后,我是否可以考虑下去做一位名侦探呢?”侦探都不一定有这么好的分析能力

  6. 呵呵.后悔在学校的时候没好好的学!

  7. 确实很深奥哦,以前也对编程很感兴趣,但捧着C++的书,看了第一页却再也翻不到第2页了,因为我知道如果要继续深入,那需要非常多的时间和精力,而作为一个医生,我缺少的就是时间。很羡慕你能做自己喜欢的事情。

  8. 貌似女生都比较喜欢柯南…
    我更喜欢金田一 🙂

  9. 哎呀,真是深奥的文章啊,哈哈.不过我是超级柯南迷滴.顶哈子.

发表您的看法

TOP COMMENTS BOTTOM