从大一下班学期第一次接触计算机语言,到现在已经快2年了。两年的大学生活里,我不仅仅是在学习我的专业课,还有学习怎么做人。我不停地变化着自己,适应着社会、环境的规则,找到自己喜欢的方式活着。但是我从来没有想过去改变我身边的人和事,只会选择去融入,或者远离。
这跟编程序真的很像的,我只能决定我用那种语言去编程,选择一种编译环境去编译,但是我永远不能改变那个编译环境,也不能对我使用的语言进行修改。我必须按照语法规则去实现我想要的目的。
不过其实做人和做程序不只有这一点点相似之处。
记得我学的第一种语言是C语言。这是我掌握编程的第一个工具,也是我懂的第一个“规则”(Turb C 算是我“生活”的第一个“环境”吧)。我还清楚的记得在书的最后几页有一个附录是关于运算符优先级的。
当我一遍遍地看着他们时,我笑了,带点无奈的笑。因为在这个运算符的优先级里,已经是一个社会潜规则的缩影了。
我不知道别人怎么记忆他们(可能只有我傻傻地要去记他们)。根据他的规则是这样的:
一、单目的优先级高于双目的,高于三目(其实三目的就条件运算符一个,下边还要讲到它)
这跟生活不是很像吗?就像“三个和尚的故事”。一个人你想做什么就可以立刻行动起来,两个人会很拖一下,三个人的时候就要等每一个人都准备好了才能开始。
二、对于二目运算符的优先级,算术>关系>逻辑>赋值>条件
这个也很容易记的,它蕴含着社会的一种潜规则。
首先算术运算符(+ – * / 等)是我们小学就会的,后边几个是长大以后才知道的,所以算术最前面没有问题。
接下来的就好玩了,我以“请人帮忙”这一社会现象来举例(当然,我没有批判的意思,只是觉得好玩而已)。
在请人帮忙的时候,我们一般先看两人“关系”怎么样,关系亲事情自然好办。之后,我们才看“逻辑”上行不行的通,要是要帮的忙超出了逻辑(没本事帮)自然就不会帮了。接着咱们得看看开出的“条件”(好处)怎么样啦,在前面几项都一样的情况下,自然是帮条件开得高的那个喽,这也就是为什么条件运算符(? :)涉及了三项,而且直接由第一项决定是否被用的命运。
“赋值”其实是最低的,因为条件谈妥了,一切都可行了,我就把你要的赋给你,你把你说好给我的条件给我。不过因为要遵循第一条规则,所以才被放在了条件之前。
呵呵,多么有趣啊(我是这样觉得啦)
到了大二,我从南汇校区搬到了军工路校区,而我的C语言编程也找到了新的环境——VC++。这是一个用起来比TC强不知多少倍,方便多少倍的编译环境。于是我很坚决地离开了TC,进入了一个我喜欢的感觉舒适融洽的新环境。就像我离开原来的寝室进入了一个的新的寝室一样。
这个学期,我开始尝试学习几种新的语言:Java,HTML,ASP。
用这些语言讲的话在我已经很熟悉的环境里都“说不通”,它听不懂我在说什么,所以也不会给我我想得到的。
所以我必须在合适的环境下用讲相应的话,而且在那个环境下,我只能讲“那样的话”。
这在生活中有一个很鲜明的对照——“打官腔”。
当然,也不只有那一种情况下啦。
就像我自己,跟Don他们一起的时候,我说话就带上不地道的“台湾腔”,跟爸妈就会用方言;跟室友们一起我就会疯疯癫癫痴痴呆呆,跟老师交流我又变得恭恭敬敬畏畏缩缩……
Angele还说我在家像个小孩子一样一点都不上进就知道吃玩,离开家又变得像大人一样照顾她,保护她,安慰她,支持她,鼓励她。
我想这都是跟计算机编程一样吧:在什么环境下讲什么样的话。
不过也不是在一个环境不能讲多种不同话的,比如C++和C都可以在中用——这就好比我们的寝室里就可以充斥着“普通话”和“上海话”
呵呵,做人跟做程序很像哦,我是这样觉得的。
学过Java的都知道,对于类的方法和域有四种修饰符来决定可见性。它们分别是:
- public 全局可见
- protect 子类和包可见
- (默认)包可见
- private 本类可见
刚学JAVA的时候我一直不懂他们到底是什么意思,但是在了解了什么是“包”(子类在C++中学会了)以后才觉得很好理解。
“包”是朋友,“子类”是亲人。
有些东西我们可以让任何人知道,这些就是public
的;但是每个人都有自己不被人知道的秘密,那些就是private
的;很多情况下,亲人知道的东西,朋友也知道(protect
);更多情况下,我们宁愿跟朋友讲,也不愿意向父母讲……
我不喜欢“默认”的可见方式,因为我觉得亲人才是最亲,什么事情都可以跟家人讲,他们会帮助我们支持我们,甚至替我们承担。
但是,就算我再不喜欢,它也是“默认”的了,因为太多的人都是那样做的,所以就默认了。
不跟父母讲有很多原因,重要的原因大概是由于父母与我们存在着不同的认知水平吧~
比如买电脑,我们跟父母讲我们想买电脑(我们也会告诉朋友,因为这是“默认”的),但是我们不会再去跟父母讨论要花多少钱、什么配置、拿来做什么用的,而是将这些与朋友讲(因为跟父母讲他们也不懂),只要父母最后掏钱就好了。
不过也没有什么好多说的,毕竟以前的我也是这种“默认”状态……
但是转念一想,在JAVA中,只要子类和基类在同一个包里,就可以访问包可见的基类的方法和域了。
所以在现实中也是一样的,就看我们是否把父母当朋友喽 o(∩_∩)o…
(本文原载于博主的人人网)
good! Very nice.