程序员眼中的《盗梦空间》

转载 2011年01月07日 21:29:00

越来越觉得《盗梦空间》是给程序员们拍的了。那么进入一层梦境到底怎么映射到编程?是递归?是循环?还是简单的函数调用?   对于一个进入梦境中的人来说是递归,一层层push进了再一层层pop出来,对于很多进入梦境中的人来说,是函数调用,因为停在某一层梦境中的人与其他进入更深梦境中的人是同时工作的。更加确切的说,进入梦境中的人算是程序中设定的全局变量,梦境中虚拟出来的人算是局部变量,而一个程序中一般不会只有一个全局变量,所以进入梦境不是递归操作而是函数调用了。每一个虚拟出来的梦境都是一个函数,可以由任何其他梦境任何时候调用(进入),进入此函数(梦境)的变量(人),一般还是要返回的,就是函数返回的参数了,此变量返回时作为人并非没有任何变化,比如Cobb给Ariadne在梦境中注入了一个思想,那么Ariadne作为变量返回时就是经过处理的了。一般来说编程中函数最好是返回参数的,要么是直接处理后得到的最终值,要么是得到的一个标志变量,但也可以不返回参数,也就是void型的,对应到电影中就是:进入此梦境中的人可以返回,可以不返回,永远留在梦境中。   为什么进入一个梦境中比前一个梦境(或许是现实)时间要变慢了?或许可以这么理解:如果我们把现实世界看作主函数(main函数)的话,那么我们一般不喜欢在一条主线中写太长的代码,那么我们希望写一个函数来调用,写好函数之后,在此流程中直接写一个函数调用语句就行了,具体的过程就由此函数来完成,我们默认允许此函数用长一些的时间去完成逻辑功能,当然很多情况下处理时间越短越好。   进入梦境的时候会选择进入谁的梦境,被选定的这个人在程序中就对应一个最主要的变量,这个人在梦境中如果被杀掉,就对应此函数中的主要变量有问题,不符合此函数(梦境)对此变量(人)的要求。此时就要throw exception并且return回到上层梦境(函数)。   设计梦境的人就是编写此程序的程序员。此人也可以进入他设计的梦境,而程序员面对自己的程序也要不断深入,因为要找各种bug.如果此程序员留在了梦境中没有出来,我们可以这样理解,这个程序员出了问题或者说这个程序员写的程序出了问题。所以说选择一个好的造梦师(程序员)至关重要,所以cobb才会回到巴黎找他老师(也是父亲?没太弄清楚)要一个很聪明的学生,并把她培养成一个优秀的造梦师。cobb作为一个造梦师,自身条件是很好的,可是有一个致命的缺点:总是抛不掉自己过去的或是生活中或是梦境中做的不好的场景,并且这些场景会经常出现在新的梦境中。对应地,一个程序员,如果总是沿用自己过去写过的程序,那些代码段自己以前写的时候或出现了问题或者问题没有表现出来,但是在新的要求下并不符合要求了,或者写新的程序时候总是沿用自己过去的编程思想,或许那些思想并不适用于新的情况。所以一个程序员很重要的一点是要打破自己的惯性思维,遇到问题即使跟以前遇到过的很像也要仔细地重新审视。打破常规,发散思维,这样一个程序员才会有长足的发展。 摘自:http://www.williamlong.info/archives/2346.html

相关文章推荐

程序员眼中的《盗梦空间》

程序员眼中的《盗梦空间》 作者:alexzhan,作者电子邮件:alexzhan12@gmail.com 越来越觉得《盗梦空间》是给程序员们拍的了。那么进入一层梦境到底怎么映射到编程?是...

程序员的角度看《盗梦空间》

全文如下:看完Christopher Nolan的《盗梦空间》,我还以为这哥们是Java程序员出身的。能够把电影搞的像java架构一样的分层,的确有做业务系统架构的天赋,建议联合国网银系统的架构就交给...

程序员眼中的用户是这样的

我曾经说过,程序员不是一般的人,是具有某种超能力的人。但问题是,程序员往往意识不到自己的这种特异功能,在他们的眼里,会认为自己很普通,跟常人一样,所以,程序员能做到的事情,其他人——比如他们的客户/软...

我眼中的“程序员”!

我们如何定义程序员         我们改如何定义程序员,第一次这个单词源自于我们大学同学,他们说:学了这个专业(计算机科学与技术),以后就是“码农”,就是“程序猿”!起初,没一点概念,我从高中开始...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)