存档

‘9其他’ 分类的存档

为什么我们烧香拜佛却没有宗教信仰

2014年1月14日 没有评论

2014-01-10 知乎精选

冷哲的回答(341票)】:

一直以来,中国都有宗教,但是没有“信仰”。当然,这里的“信仰”是一个很狭义的概念。只是指对那种全知全能的唯一神的信仰。这个问题其实很有意思。

从西方宗教史来说,其发展轨迹是从原始的自然崇拜发展到对自然现象的拟人化,亦即多神崇拜。比方说古希腊神话中,每一个神都多半能看出其原型出自哪些自然现象或人类活动。之后,多神崇拜又被组织严密的一神崇拜取代。

而中国的宗教史,却如此不同。我们有最原始的自然崇拜,然后有以近乎朴素无神论为核心的道教。有短暂传入但长期未能形成实质影响的景教(基督教),有形成特定信众人群但始终是人口少数的伊斯兰教。但长期居于中国人信仰的核心,却是在西方宗教史中出现时间很早而且很快被有神宗教取代的祖先崇拜。而中国的宗教也十分的世俗,甚至于功利。为什么会这样呢?

宗教是怎么产生的

首先,为什么人们会信仰一个宗教?这个道理其实很容易理解。人与一般动物的一个重要的区别在于人可以主动地想出无数种不同的方法来解决自己的需要。其他的动物,即使有这方面的能力,也十分有限。可是,即便以今天人类科技的强大,还是有无数的问题,根本无法解决。每个人都会在生活中碰到根本无法依靠自己的力量来解决的事情。如果这类问题非常的紧要,人们就会希望有一个超越人类力量的东西,来为自己解决这类问题。所以大家可以注意一下什么最虔诚的主动皈依的(而不是出于家庭传统的)信徒都是因为什么原因才信教的。

我所见到的信徒中,除了出于家庭传统信教的人之外,最虔诚的信徒往往是遭遇了人生重大挫折(诸如至亲病故、在事故中重伤、不幸染上重病、遭遇恐怖袭击、长期找不到工作、理论做到极致无法获得完美解释等等),才皈依宗教。只有当一个人从心理上真的需要一个超出人类力量的实体存在的时候,才能全身心地接受宗教。另一种人,则是本身自然科学知识不足,而被宗教理论家所写的“神存在的证明”说服。当然还有一种人,出于非常现实的目的加入宗教团体,诸如找男女朋友、生活上互助、寻求人际交流的机会、融入当地社区等等。这类人往往就不那么虔诚,在此不作讨论。

从原理上讲,这也不奇怪。所有宗教都的共同特点是先验论。换句话说就是有一个超然于所有实际现象和知识之外的、固有的、绝对正确的理论。所有宗教所共有的一个先验的理论就是——(本宗教所信仰的那个)神是存在的。所有宗教哲学的推理,所有宗教典籍中自相矛盾之处的解释,都要首先基于这个理论存在。因此,一个人要全心全意地信仰一门宗教,必须首先相信这个先验的理论。要相信这个理论,有很多的途径。它可以来源于

1)自儿童起的家庭或社区教育灌输

2)出于对基督教地区先进文明的仰慕而主动皈依。

3)遭受重大人生挫折时,对超人力量的内心需要。

4)因科学素养不足而被一些似是而非的实证派宗教理论说服。(近代以来,宗教理论家总是试图用实证的方法来证明“神是存在的”,使之不再是一个先验的空中楼阁,但是这都在科学方法论面前遭遇失败。换句话说就是,科学讲究实证论,宗教讲究先验论,本来就是两种截然不同的思想体系,用一个去证明另一个完全是缘木求鱼。通过实证论来证明的宗教理论,只有科学素养不足的人才会相信。)

但是如果我们细致地考察这四者,就会发现,1、2和4都是由宗教力量本身产生的。而只有3,是自发的。那么有理由认为,宗教最早的起源,就在于此。远古的人们面临的挑战要远远多于现代的人们。而其技术能力又远远不如。因此会有更多的问题都无法通过人力解决。在这种情况下,人们有着远远超出现代的对宗教的需要。宗教的产生和进化,在古代,是必然的历史进程。

中国与欧洲的地理差异

在各个地区的传说之中都有一个关于大洪水的传说。而且也有少量相关的地质学证据出现。虽然具体成因尚无法确定,但是很多人都认为大洪水是存在的。

世界上最古老的有关大洪水的记载来源于两河流域。考古发现有公元前1700年左右的一块泥板,记录了大洪水。考古还进一步发现,苏美尔文明的很多城市遗迹中都有几十厘米厚的淤积土层。这进一步说明曾经有一场毁灭了苏美尔诸多城邦的大洪水发生。

两河流域的宗教,对犹太教影响很大(这一点甚至可以从神的名字中看出),犹太教又衍生出了基督教和伊斯兰教。另外考虑到希腊、迦南等与欧洲文明联系更紧密的地区也是坐落在沿海低海拔地区,很可能大洪水期间受到影响也很大。大概就是因为这两个原因,基督教中才会有关于毁灭人类王国的大洪水的记载。

中国也有关于很多大洪水的传说。但是,有可能是因为中华文明发源地(黄河中游)的海拔高度远远高于苏美尔文明的核心区域(两河下游),大洪水对于中华文明的杀伤力远不如对苏美尔城邦的杀伤力。(当然也有可能是两地降水量本来就有很大差异,或者是苏美尔文明同期遭遇了一次超强海啸)所以在中国的传说中,大洪水不但不能毁灭人类,反而被大禹治住了。

苏美尔文明无法抗拒如此强大的洪水,而中华文明的祖先则控制住了自己这边的洪水。这个起点的差异就使得两者对于宗教的需求大为不同。两河流域面临人力无法抗拒的天灾,就对宗教崇拜有着更高的需求。而中国,面对人力可以控制的自然灾害,人对宗教的需求就不高。

再者,考察欧洲文明早期的位置,如罗马、希腊、埃及、迦南,都坐落在地中海沿岸,这是世界主要地震带之一。地震、火山爆发、海啸,这都是可以轻易摧毁一个城邦文明的力量。而中华文明发源地的地质情况则相对稳定。所以总的来说,中华文明发源地的天灾数量与规模都应该远远小于欧洲文明发源地。比如庞贝古城的恐怖案例,在中国历史上就完全看不到。

那么就这一点来说,我们就会看到两者对信仰的强烈差异。欧洲文明由于其早期发展地区(相对)频繁发生人力无法抗拒的大灾难,人们从内心来说,就有寻求超人力量的需要。他们心理上期望一个全知全能的神来帮助自己抗拒这些人力所不能抗拒的天灾,或解释天灾存在的原因。这就衍生出强烈的宗教信仰,也就促使宗教不断地发展。而中国,即便是大洪水,也被人类降服,那么此时作为一个人,你会去崇拜某个制造了天灾的神,还是崇拜降服了天灾的人呢?我想,应该是后者。创造了奇迹的,不是神,而是曾经实际存在过的人。

所以,中国之所以传统上没有欧洲那么强烈的宗教信仰,之所以一神教在中国并不流行,就是因为历史上中国人对全能、超人的力量根本就没有那么强的心理需要。

从这个角度,我们也许可以理解中国传统信仰的各个特点。

中国传统宗教的本质:对人的崇拜

中国重视对祖先的崇拜,这是因为创造了伟业的,不是神的庇护,而是人的努力。阻止了大洪水的,是人,是祖先。建造了挑战当时人类想象力的庞大防御工事——长城的,是普通到不能再普通的人,是祖先。击败了无法想象的“邪恶力量”——北方游牧民族的,是人,是祖先。每一样伟业,依靠的都是人,手段一点都不神秘。那么有什么理由不更崇拜人呢?

但是人力还是有极限的,中国人当然也有大量办不到的事情。因此中国也有宗教崇拜存在。但是中国的宗教崇拜,又与西方宗教不同。在中国的民间传说和宗教文化里,除了盘古、女娲等少数几个神之外,都是人转变而来的。道教崇拜的玉皇大帝、太上老君、七仙等等等等,全都是人。中国的月神嫦娥也是人。而其前夫后羿,更是能射下太阳的人。这种特点和中国祖先崇拜的起因应该具有共通之处,都是由于之前做出伟业的,都是人。这种看待人与世界关系的角度,就很自然地衍生出一个新的理念:任何人,只要够强/聪明/悟性高/机会好,也可以成为神。比方说,道教所宣扬的教义中,人只要修炼得法,也能成为神。

所以这也就可以理解为什么外来宗教中,只有佛教在中国传播最广,甚至成为中国文化的一部分。佛教的最高神,原来是个印度的王子,是人。佛教中,人是可以成佛的。而基督教也好,伊斯兰教也好,神与人之间有着不可逾越的鸿沟,神不是人,神甚至不是人可以理解的。所以,主要的外来宗教之中,只有佛教和中国传统文化是最合拍的。

既然中国文化里的神,其实都是人,而中国人对神的需要并不十分强烈,这就衍生出了中国宗教文化的第二个特征:宗教的世俗化。

中国宗教的世俗化

既然中国的神都是一个个的人,那么中国传统文化的人神关系,其实就是人际关系,只不过是有地位差异的人际关系。当一个人需要的时候,就会去求高人帮忙,如果这个高人帮不了忙,他就会去求另一个高人帮忙。这是很自然的思维。

因此中国平民传统上对神的崇拜都是十分世俗而功利的,有需要就去拜,没有需要就不去拜。有需要的时候哪个灵验拜哪个,管他是如来佛还是吕洞宾,亦或是妈祖或者本地的山神,只要灵验就行。求神的事情成功了,就去上个香、还个愿,如果求神的事情获得巨大成功,就给神修座庙,塑个像。这种在中国极度繁荣的交易式的拜神观念,在欧洲亚伯拉罕三教中就属于近乎亵渎神灵的想法,因为欧洲的人神关系根本不是人际关系。

对于亚伯拉罕三教来说,人根本没有资格与神做交易。人对与神,只能有一种态度,那就是虔诚的信服。你的成功是神的保佑,你的挫折是神的考验。不要去质疑为什么一些虔诚的教徒也会遭受巨大的灾祸,因为神是人无法揣测的。无论神做了什么,人对神都只能单方面的服从。

此外,两者还有一个非常大的差异,就是对天堂与地狱的态度。

在中国宗教中,信教与否,和是否上天堂毫无关系。你做了很多善事,不管你信不信佛、信不信太上老君,都就能上天堂/投个好胎/位列仙班,而你做了坏事就要下地狱。而在基督教中,如果你不信教,就算你好事做尽,都一样要下地狱。这是因为一神教与其他宗教是永远不相容的。一神教的哲学里,有且只有一个神。因此你不信这个神,在一个一神教来看就是不承认“这个全知全能的唯一神是存在的”,也就否定了这个一神教的先验常识,这是在挑战一神教的存在根基,因此是一神教哲学所最无法容忍的“罪”。所以任凭你好事做尽,一旦犯了这个“罪”,一神教都是没办法容忍的,所以你必须下地狱。(当然,各个一神教对这个问题的解释都比我这里说的要好听得多,但是本质是不变的)

而多神教则没有这个问题。你崇拜别的神和我这几个神没什么大矛盾。已经有这么多神了,多加几个也不奇怪,大家各司其职就是了。甚至来说,搞两块牌子一套班子也未尝不可。阎王爷转个身就变成地藏菩萨,大家和谐的很。《西游记》这种道教元首遭了秧,要去请佛教的元首来解难的故事,如果换了两个一神教那搞不好引发宗教战争。因此,多神教看待这种问题非常宽容。你不信我这个神或者信别的神,并不代表你这是要否定我这个神的存在,也不代表你这就是否定我的根本教义。因此你不信我这里的神,对多神教来说,并没有根本的冲突,所以这并不是一种“罪”。那么不信我这里的神,也就没有必要下地狱了。信道教的儒生也可以与和尚相谈甚欢,讨论佛教哲学,这种场面在欧洲是几乎不可能存在的。欧洲新教改革时同一个民族同一个大的宗教背景之下,一个教派可以对另一个教派进行大屠杀,这在中国世俗化多神宗教之中也是不可想象的。

当然,在中国宗教中,虽然不信神不会下地狱甚至会上天堂,但是信我这边的神,会方便你上天堂。这显然也是有宗教本身实利的考量。

宗教世俗化相对来说是有一定好处的。比方说中国的多神教背景下就几乎见不到宗教屠杀,见不到宗教迫害。像欧洲那种狩猎女巫的无厘头的事情,在中国就没有发生过。宗教哲学全都是唯心主义哲学,其先验假定未必符合客观世界的规律。高度发达的一神教容易把自己的宗教哲学应用在对客观世界的改造上,这样就会产生出大量的灾难。因此,欧美后来就确立了政教分离的概念。而今天看来,欧美宗教的界限划的还不够,很多宗教人士还在试图把宗教哲学应用在科学研究(比如阻止干细胞研究)、社会伦理(反堕胎)等等方面。恐怕还需要有一个比较长的时间,才能做到让宗教信仰与各种实际工作彻底分离开来。而中国这种世俗化的宗教,就没有这方面的问题。中国的宗教,是用来服务人的,而不是用来引领人的。因此几乎不存在把宗教哲学强加于实际工作上的危险。

世俗化的宗教对崇拜行为的其他影响

那么,继续上面的话题,中国传统的宗教崇拜是一种非常世俗化功利化的崇拜。

因此,与欧洲相比,中国的宗教建筑更多地是一种功能建筑。这一点与欧洲的宗教建筑就有不同。欧洲宗教为了展现教徒对神的无条件服从与崇拜,对宗教建筑就寄予了超越功能的意义。因此欧洲对大教堂的建造总是追求持久、宏伟,他们对工期并不看重,因为建造教堂的过程,就是展现自己对神崇敬的过程。建造行为本身就是宗教崇拜的一部分。一个宏伟的教堂,建造几十年上百年是司空见惯的事情。而在中国,崇拜就是崇拜,建造就是建造,这两者关系不大。尽管建造宏伟的宗教建筑也算是“功德”,但那不是崇拜的一部分。赶快修漂亮修好,让人进来朝拜,这才是正题。

欧洲宗教说,一座宏大的教堂彰显着神的荣耀。在中国,大家顶多赞叹一下能工巧匠的厉害,很少听人说“哦哟,这座大佛寺建的真宏伟,这个佛真伟大”。大家很清楚,真正创造伟业的,仍然是人。一座宏伟的寺庙,表现得不是神的强大,而是人神交易的成功率。整个思维都是世俗的。所以常见的说法是“哦哟,这座大佛寺建的真宏伟,看起来很灵验啊,这肯定是好多人捐了钱才能造得出来。”

基于中国人对人神关系的看法,中国宗教发展的过程也就十分容易理解了。

分类: 9其他 标签:

到底怎么样才叫看书

2014年1月14日 没有评论

到底怎么样才叫看书?——上篇

目录:

一、引入

二、经历了就能理解

三、读书要分级

四、只读经典

五、别吝惜你动笔的那点时间

一、引入

   看到这个题目的时候你可能会感到有点好笑:“这还用问,看书就是把书看了一遍呗..” 没错,我们从小到大就是这样想的,也是这样看书的,信手拈来一本叫作”书”的东西,从头到尾就开看了!随时年龄的增长,我们的“阅历”也多了起来了,但你是不是也有和我一样的感觉——书是读了不少,真正入脑的,能融入自己思想的内容却少之又少,而且随着年头的增加,你越来越不记得自己读过这些书,更不用提书里到底大概是些什么内容了!这就是我们的长久以来的读书方式。。。 你会不会也这样想,如果我能把我从小到大读过的书都能记下来形成自己的思想,那我现在得多牛啊!是呢,我也常常这样想!于是为了让自己更有思想,就去读更多的书,然后在短短的几年,或者只是几个月,甚至仅仅是几天以后,生活的琐事会渐渐把你关于那些书的缓存挤掉,你的大脑又变成了一块被重新格式化的硬盘,那些书又与你无关了。

  说实话,我曾经就是这种情况,并且被其深深的困扰过,花了大量的时间去阅读,但是在脑子里留下的却是星星点点的零碎的内容,于是很快这些零星的内容也会悄悄的跑掉,剩下的只有一个好笑的自欺欺人的解释——这本书我读过。。。。就这样,我骗了自己二十几年,这二十几年里,不管是教科书,还是小人书,不管是专业书,还是小说,真是读了不少书啊!我花了多少时间在这件事上面呢,少说也有二十年吧,可是,要问我对哪本书的内容真的印象最深的,真的很难回答的出来,更别说去吸取书的精华了。估计和我一样有这样困扰的人肯定很多。你是吗?

二、经历了就能理解

  我经常会想难道我就真的没有从读书中受益过吗?当然有!“咳,咳。。”我要写条sql去数据库里查一下,数据库里垃圾有点多,估计得花点时间,“select * from lifecycle where benefit from reading ——>execute!” (一分钟。。。二分钟。。。五分钟。。十五分钟过去了,数据终于出来了,垃圾数据把系统性能拖的太慢了,是需要作作调优的时候了),好了,你很幸运,系统没有宕掉,下面这些数据留给你们参考:

  1、我自认为英语水平还凑合,几次重要的升学考试和就业面试中,都没有在英语这块栽过跟头,由于后来集中学习日语的原因,英语过了CET-6后就很少碰,这个原因我下面会解释。现在很多学生中为英语发愁的不在少数,往往其他各科成绩都很好偏偏英语不能达标,错失了好的升学机会。我回顾自己从小学英语的经历,总有一个点在那闪光,那是我学习英语的转折点。那时是小学四年级,学校刚刚开设英语课,那时和其他的孩子一样,我的英语成绩不怎么样,很吃力。我老爸对我的学习比较严格,当他发现我的英语不行的时候,他开始跟我急了,那时我也真怕他,当老子就是威武啊~ 我爸是高中毕业,他那时的外语水平差不多也就是我四五年级的那个水平的,但是他还是选择了硬顶上来!他拿出课本让我逐句的翻译对话,我还大概记得那对话的内容:

A:what’s this?

B: it’s a pen.

A: what’s that?

B: it’s a pencile.

A: and what’s this?

B: it’s a pencilebox.

A: can you spell it ?

B: yes.p-e-n-c-i-l-e-b-o-x,pencilebox.

A:thank you.

B:your welcome.

  熟悉吧?后来还有很多学者指责我国小学英语教材的落俗套,以致学生跟人对话只会说“what’s this” “How are you? fine, thank you. and you?” 之类的,这些我们都暂且不谈。就说我那段时间是怎么被老爸蹂躏的吧。。。

当时有好多的对话内容我翻译不出来,于是就被无情的鄙视了,并且死规定,以后每天晚上都要默写课文、单词!我那时是真怕他呀,为了应付这一关我是想出了一堆的作蔽手段,小抄、写手上、写桌面上。。都用过了,每天像过堂一样的接受蹂躏,给我幼小的心灵带来沉重的压力,就这么坚持了有多半年。于是,后面的事情你们都猜到了,我的英语成绩上来了,随便找出来一篇课文来我都能熟悉的背出来,得到了来自各方面的肯定和鼓励,回头想想,这都是对心理体验非常好的正能量,直到今天,我都能对英语有信心。现在回想起来,那些小抄的作用就相当于笔记,让我对英语的印象从陌生变熟悉。

  2、高考的经历。对于都经历过高考的人们,这个艰辛的过程我就不再多多描绘了,地球人都知道的。我在这想说的是,在这个备考的过程中对我进步影响最大的一个方面,这也是我高考制胜的法宝。那时我有幸和一名来自山东的转校生(也叫高考移民)同桌,他是我高中时期最好的朋友之一,就是他的学习习惯深深的影响了我,他后来考上了中国公安大学,现在是国家保密机构的人员了,国家机密不多说。他有一个什么习惯呢?作笔记!

  你看到这可能在笑,“原来就是作笔记啊,这谁不知道,谁不作笔记啊”,没错,我们从小都会要求作笔记,有时候我们也会假意的去作一些笔记,但很多的时候是东记一笔,西记一笔,记完就忘了,也找不见了。我说的记笔记不是这种情况。

  在高考那个大环境下,每天我们都会被大量的习题淹没,多的时候每天要作十几张卷子,那时真是麻木了。我的这个朋友就习惯把每次作完的试卷都从头到尾作个总结,把自己不知道的盲点记在一个本子上,随时翻看。我尝试了这个学习方法后,收效非常大,通过自己的实践也对作笔记有了更深的理解,下面说说我的理解:

(1)作笔记一定要找个厚点的本子,品质要好,但不要过于花哨的,简约的最好。因为你要能预见,当你养成这个好习惯以后,你遇到什么新的东西都想往上面记几笔,如果页数太少了,你又要换个新本,这样就会对你的知识系统产生分隔,你会更偏向于经常翻看新的本子,旧的本子就被你束之高阁起来了,渐渐那些你曾经领悟的东西又会变的模糊。

(2)请勿分门别类的记笔记。拿高考这几门课举例,那时我有很多同学的作法是数学一个本,语文一个本,英语一个本,化学一个本。。。 基本上是一门课一个笔记本,分门别类,互不干扰。这样并不是最佳的解决方案。我们俩当时的作法就是所有的内容都记到一个本子上,不分科,新的内容就直接追加到旧的内容的后面,形式上也不要记的太整齐,形式可以多样,圈圈点点,勾勾叉叉,这样更容易在你的大脑里形成再深的印象,我称之为“草稿式笔记”,比条理清晰的“流水式”笔记效果好的多。

  (3)经常翻看。记笔记其实是对大脑缓存的一个整理,就好比你存在计算机内存里的内容永远是不稳定的,而你一旦写入硬盘,这个安全性就提高了几个数量级(对于程序员的你,道理不解释),同样的道理,你今天对一个问题理解了,但不表明你两天后返回来还能理解到那个程度,最好的办法就是把这个你理解的问题用自己说话的方式记录下来,并且随时翻看,可以说,只要你的这个本子不丢,你就永远能保持对这个问题的新鲜的理解。以至后来,每每月考、期中、期末、摸底的所有考试中,我都只需要拿出笔记本来从头到尾翻看几遍,不再需要看书和资料了,很大程度上增强了我的信心,因为没有记在本子上的对我来说都是“常识”了,所有平时的要点都囊括在了笔记本里面了。如果你身边有面临高考的考生的话,请推荐给他们,这个方法会在高考中给他们很大的帮助。

  3、学日语的经历。说来比较幸运,有机会能在大学里系统的学习一门二外。能在大学里学习一门外语确实是很有意义的一件事情,因为我们学习英语的战线已经有十几年了,但成果不是太显著,而二外作为一门你有选择的有主动性的去学习的一门语言,如果你肯花心思,进步是很快的。我是从大三开始系统学习日语的,那时刚考完六级,算是完成了阶段性的目标,于是转向日语的学习,洽好赶上学校与某一日企有合作的项目,很幸运的和同专业的几十名同学一起开始学日语,当时是一个中教讲语法,一个日本外教讲口语,因为学时较紧,所以基本上日语课占用了所有专业课之外的所有课时,一周要上20几个课时的日语。这个过程持续了一年多。在这一过程中对我来说受益最大的仍然是大量的笔记。“草稿式笔记”又一次发挥了它的神奇效果,我记了两个厚本子,记录了我整个学习语言的过程,从浅到深,翻翻笔记就能清晰地回忆起自己是怎么一路走过来的。当我有一段时间没有接触日语的时候,如果我想找回一些日语的感觉,我第一选择就是从头到尾的把笔记本看一遍,一遍看完后我仿佛就回到了以前学习日语时的状态,就像计算机一键还原一样,只有笔记能起到这个作用。

  P.S 顺便说明一下我为什么学日语的时候就很少去碰英语的东西。语言这东西学的多了真的是容易混,能精通好几国语言的人真的是值得敬佩,这种敬佩不仅仅是语言学习本身。学了两年的日语以后,口语之类的都练的比较熟悉,因为有外教环境,所以大家平时聊天沟通都得到了很好的锻炼,但是有点作英语面试的时候,我发现了一个很严重的问题,我竟然不能说出一整句表达清楚的英文介绍,每句话都不自觉的往外蹦日语,呵呵,英语的思维完全被日语给抑制住了,于是我发现,这两种语言冲突了,不过为了更好的学日语我就把英语放下了,直接最近的工作需要才再次捡起来,不过还好,把日语先放一放,英语自然就不受影响了。

  4、目前的工作。几个月前换工作到了现在这家外企,外企的宽松的环境和人性化的制度让我很快喜欢上了这里,于是我抱定决心要在这里稳定下来,干出一番事业。从第一天入职我就领到了一个印有公司LOGO的笔记本,现在三个月时间吧,这个本子已经基本用完了。在这个本子上不仅有工作上的事情,meeting,需求讨论,还有大量的读书笔记,内容十分丰富,但都充实的记录了我的每天的轨迹。这本笔记同样比较“草稿”,但我能真正理解它,它就像我的一部分大脑一样,我现在走到哪里都会带着这个本子,班车上、轻轨上有大量的时间,拿出本子就好像和自己在对话一样,无比的踏实与充实。

三、读书要分级

古人早就说过“开卷有益”,在信息大爆炸的现代社会里,获取知识和信息的方式变的越来越多元化,网络的兴起让知识变的廉价,理想的说一根网线可以得到这个地球上你想知道的一切。请大家和我一起思考一个问题,不论是以什么样的形式,游戏也好,电影也好,看新闻,刷微博也好,我们的最终目的到底是想干什么。我的观点是,所有的这些行为总结起来,终极目的只有一个——获取信息。

  回想在还没有Internet的时代里,人们主要获取信息的途径就是读书,这是那时的人们能想到的最直接的选择。而今天的我们选择就多了起来,读书看起来好像是最慢的一种获取知识的方式了。但是,选择多了就一定是好事吗?科学家证实(我也不知道哪个科学家),选择越多效率越差,因为这增加了你决策的时间和后悔的理由。先说上网吧,很简单的道理,大家都会经常体验到的,如果你想在网上集中作一件事情,往往是很难的,你会受到来自各个方面的干扰,各种“信息噪声”向你扑面而来,你常常会被另外的“新鲜”信息中断思路,比如QQ右下角讨厌的重大新闻浮动窗。再比如,如果想在电脑上踏下心来看一本PDF版的技术书也是很难的,开始可能还好,看上十页二十页以后,眼酸,想睡,看过什么没太深的印象,想干别的,效率很差,我就是这种情况,对需要用电脑阅读的大段的内容都有抵触的情绪。所以我避免用电脑看一些需要系统理解的东西,因为人有一种心理,就是对于我感到过抵触或厌倦的东西都不想再碰,所以我尽量不用这种方式去触及那些本身应该对我有很大意义的内容,我怕因为一时的不耐烦导致与这些经典失之交臂。 我的习惯作法还是去阅读实体的书,这给人的感觉是完全不一样的,书的厚度是你可以真切感觉到的,而且,看实体书更容易深入内容,这可能因为人类一直以来的习惯都是以书为载体来学习,这促成了人脑的进化,人脑也更习惯这种传统的方式。

  这部分的标题叫“读书要分级”,什么叫分级呢,就是读书的深度。

  走进任何一家图书馆,你可能都有冲动要把这里的书全部读掉,可是这显然不现实。

  电视剧《士兵突击》里许三多在团部的知识问答竞赛时,团长问他是怎么知道这么多知识的,许三多说“我这人笨,不知道应该看什么,我就跑到图书馆,从A开始看,现在才看到D”(大概是这意思,是不是D记不清了)。你说这种人真有吗?有,肯定有,但是这只能是个童话,对于一个现代化的大型图书馆来说,你就是光把A看完这辈子恐怕也不够用的。所以,面对浩瀚的书海,有选择的读一些经典之作才是明智之举。并不是每一本书对于我们的成长都是至关重要的,这里有经典,也充斥着垃圾。如果你花了两年读了一堆垃圾书,这样非但无益,反而会害了你。就像老罗曾经说的,他年轻的时候金庸的武侠小说非常火,很多的个体书商不知名的武侠作者出版的武侠书都署金庸的名,因为那时没有目录嘛,什么“飞雪连天射白鹿, 笑书神侠倚碧鸳”,当时不知道,所以怎么把金庸的书挑出来,很难。

  那怎么把经典的挑出来呢?这就要借助网络了,豆瓣读书是个不错的地方,这里都是一群爱读书的人,你要看的书在这里基本都能找得到,看过的读者会留下一些感想,如果评价太烂的话,你就应该果断放弃读这本书的想法,因为这可能会浪费你的时间,并且害了你。扯远了,下面开始分级。

  第一级:经典中的经典——能奉为经典的著作不多,对于我们计算机这个领域,耳熟能详的经典也就是那一百多本吧,对于读这些书的态度就应该给予足够的重视,记笔记是必须的,因为这些思想需要与你的思想融合起来,形成你的理解,从而发挥经典的作用,因为大部分经典之所以长盛不衰就是因为它们都是授人以渔的。

  第二级:技术类专著——这部分就是指那些资深技术专家,或在某个技术领域比较有建树的行业专家写的书,你选择这类书的目的性更强一些,往往是为了更深入的学习一门技术或熟悉一个行业而选择的,这部分你当然也要细读,因为技术的难度你更应该用笔记来梳理思路,形成整个技术的框架,这里面应该包括更多的细节,以助于以后翻阅的时候能理解的更深入。当然,你可以分章节来笔记,这样可以将一个大目标分割成小目标来激励自己去逐项完成。

  第三级:技术基础类——有一些书目涉及的是你已经熟悉的技术领域但比较基础的内容,这些书的内容对你的技术水平来说比较基础,但你也不要忽视这样的基础书,这里面可能还有你没有吸收过的精髓也说不定。“温故而知新”,永远不要轻视基础,同样拿出你的本子,翻开新页,标上今天的日期,把这书中讲到的你意识模糊的内容记到你的本子里吧,可能你会发现,你要记的东西还真是不少呢。

  第四级:技术周边类——比如《程序员》杂志、技术博客,这一类的资料也不要看过就扔,不要相信你是过目不忘的大师,你大脑的缓存是有限的,你必须要保存到硬盘!所以拿出你的本!

  第五级:娱乐类——这部分与你的工作没有直接关系,属于你生活的部分,这部分的智慧更多,但是可能会和技术有冲突,所以如果你需要记笔记,请不要记到你记技术和工作的本子上。

四、只读经典

  代码真得能改变世界,当然代码也正在改变着世界。程序员的时间是很宝贵的,我们不是这个星球上最聪明的一类人,但我们绝对是最有智慧的一类人。呱唧呱唧~

  我们花了大量的时间去作需求,去Design,去Coding,去Testing,留给我们自己的时间却总是那么少,除去日常生活起居的时间,陪女朋友的时间,上下班的时间,留下读书的时间就没什么了,哦,对,忘了把你打Dota的时间算里了,这还哪有时间看书啊!!??

  当程序员的没有不勤奋的,不勤奋的干不了程序员。所以书还是要看的,怎么看,只读经典。

  关于什么是经典你自己决定咯,在这个圈里吃饭的,对技术都有很强的敏感性,坏书进不了你的眼,好书也一定逃不掉。

五、别吝惜你动笔的那点时间

  说了这么多了,你可能已经意识到作笔记的重要性了,其实事实真的是这样。

  你是否听说过某某大师一生作了几百本的读书笔记这些事,我以前一直有疑惑,他作笔记都是在干嘛呀?都记什么呀,有什么好记的?后来我真正开始作笔记以后,我才真正理解了这件事,原来大师之所以能成为大师,真的都不是一朝一夕的工夫,这需要持之以恒的坚持和坚定,这内心得多强大呀。你要知道,那几百本的笔记不只是笔记本那么简单,那些都是思想的沉淀,思想本来是抽象飘渺的,笔记这种形式让思想有了重量和形态,这种思想被组织,重构,索引,最终印到大脑里形成一座庞大的知识仓库。

  很惭愧,我们国人没有记笔记的这个好习惯,而与我们相对的日本的整体国民,基本上都有记笔记的这个习惯,这是很可怕的。我的日语老师宫竹老师,她随身都会带有一个笔记本,随时记录所有她认为应该去记的东西,在很多方面我真的非常敬佩她,比如,我们当时有三个专业的大约二百名学生都上她的课,她能记住所有这些人的姓名,包括中文的和翻译成日文假名的,还不仅如此,其他不学日语的同学,只要与她作过自我介绍的甚至只有一面之缘的,她下次见面一定能叫出那人的名字,从没出过错。你以为这是她的记性好吗?绝对不是,这源于她记录的习惯,她不当面去记这些人的名字,但她私下肯定去写进本子里。光写进去就万事大吉了吗,不回头翻看怎么能记得住?这就是笔记的力量。关于日本人的很多好习惯,希望我以后有机会能发篇博客整体谈一下。

  正所谓磨刀不误砍柴功,记笔记可能会影响你读一本书的速度,但它不会让你白读,如果你读书的目的不是想在你脑子里留下点什么的话还不如去看电视剧,读书就是为了长知识长学问长见识,就是为了将别人好的思想吸取过来,转化成自己的思想体系的一部分,当然,你应该有批判接受这些信息的能力,人云亦云的完全接受也是不合时宜的。

  我有一个心愿,我渴望能有一天在公交、地铁里看到大家翻看的全是自己的笔记本,而不是一人拿着一部手机在那看着微博还傻笑!

到底怎么样才叫看书?——下篇

目录

1、再提笔记

2、我是怎么泡图书馆的

3、大学课程之授课方法

1、再提笔记

对于《到底怎么样才叫看书——上篇》中所提到的内容,得到了各位博友们的普遍认同我感到很高兴,说实话,从小到大我也就认真作过那几次笔记,但是却都印象深刻,并且对以后的影响也很深远,在走了很多的弯路以后,渐渐才发现这其中的道理来。

正所谓“学而不思则惘”,学的目的当然不是形式上好看,当然,我们从小受应试教育的影响太深,花了太多的时间和精力去学一些根本用不到的东西,这种“形式”上的学确实也是没有办法。但庆幸的是我们都挺过来了,大学的教育毕竟也是自己完成的,自主性提高了很多,但仍然有很多的在校大学生不清楚自己以后的方向是什么,大学四年里都是迷茫的,等到工作了一年两年以后,才突然顿悟——原来我在大学里浪费这么多宝贵的时光!如果你还是在校研究生,你会发现那些工作几年再回去读研的学生中,学习的自主性和目的性有多强,因为他们已经深深的追悔过那段时光,并且看到了未来努力的方向在哪里。这些道理是一直在学校里的人很难体会的,一切都是“失去了才会珍惜”。

读书是一个很费时的过程,一本普通的书300多页很正常,软件类的书里1000多页的大部头的著作也很常见。不同于小说是纯叙事性的不需要太多的理解,计算机的书都是需要用大脑去分析和理解的,所以注定了读这些书的速度都不会很快。比如一本300页的书,你用工作之外的时间一共读了7天,实际上到第七天的时候,你对第一天和第二天所读过的东西已经印象模糊了,这时你会意识到这点并立即返回来再看一遍第一天和第二天的东西吗?很多人不会的,人只会更乐意往前看,直到看到最后一页才长嘘一口气,“终于看完了”! 于是将书放下,即使以后的几天里,书就摆在那你也想不起来再拿起来翻几下。又过了7天,上周读的内容已经完全印象模糊了。又过了一个月,只有书名还能记得。。。

所以,我们花了大量的时间读书,却效果不大,读了后面的扔了前面的,一遍一遍在重复同样的过程,整个过程里,唯独让我们理解最深的时候,就是在阅读的那个过程当中,那一瞬间的我们对大脑的记忆力保持高度的自信,偏执地认为,将来不论哪个时间,我都将理解到这个程度!事实上,恰恰相反,这只是一个短期的记忆而已,能只维持几天甚至几小时,就像是硬盘一样,你今天删除了一个文件,第二天作数据恢复仍可以找回来,但两个月以后数据恢复就再也找不回来了,因为新的文件已经覆盖了那个位置,记忆的信息被冲掉了。笔记的作用更像是一块移动硬盘,你可以在你认为这文件有用的时候,把它转移到移动硬盘里,即使本机硬盘上的文件被冲掉,你也可以随时读取移动硬盘里的内容。

你虽然花了时间去读了一本书,但对于这本书可能是你的,也可能不是你的,但如果你对它作了笔记,这本书就百分之百会是你的了。有效读书的过程应该是这样的:

读书的目的其实最终目的就是形成自己的理解并长期驻存在大脑中,而笔记这个环节是达到这个最终目的最关键的一步。

2、大学课程之授课方法

大家都经历过大学,我对大学的感悟最大的就是,每一门课学的最明白的时候就是考试之前的那一周。因为有一个考试的期限在那,就逼着自己在那天之前必须得把课本啃完,把内容梳理出来,这大约只需要一周或更少的几天时间,取决于老师哪天通知考试。

后来我就常常这样想,大学的课程如果是先考试后上课是不是效率会高很多呢?大学生都有很强的自学能力,突击考试的能力都非常强,几天时间把一门从未学过的课考个及格应该问题都不大,这就造成了大家平时上课不用功,只等考试突击的号角吹响才进入学习状态。 如果先考试呢,给大家定个及格线,不及格的算挂科,那大家就会玩命的自学一遍,把考试过掉,这时已经对课程的内容理解的比较深刻了,接下来再从头到尾上一遍课,这就很少会出现有学生因为听不懂而不去听的情况了,大家都会变得愿意听课,并且理解会更进一步,皆大欢喜!可惜啊,大学四年那些课程的价值都为应付考试而大大缩水了。。

3、我是怎么泡图书馆的

上大学时看到有人说过一句话,”在学校要好好利用图书馆的资源,等你工作以后哪有这么大的图书馆给你用啊!” 当时对这句话的印象很深刻,但遗憾的是,那时并不会泡图书馆,也没有那么深得意识到图书馆的资源是多么得难能可贵。很多真相都是工作以后才后知后觉的,这其实说明了一个道理,人的认知永远都是只局限于眼前,几年以后回头想想以前的想法只会感到当时是如此幼稚和缺乏思考。

大家都知道,计算机的书籍一般都比较贵,靠完全买书去提高技术,成本上实在太高。还有一个事实要承认,买来的很多书都想不起来看。在买书时,往往我们都会有一种冲动,并且有一种心理在作祟——我得到了这本书,就学到了这门技术! 于是,在这样的冲动之下,花了很多冤枉钱买了很多书成了摆设,而技术却没有半点长进。

所以关于买书,我有两点心得和大家分享:

1、能不买就不买。 这不是说鼓劲大家不读书,反而是为了更有效的读书。古人早就给我们总结了“书非借不能读”,已经是自己的书往往不想读,自认为书就一直在那,我什么时候想读都能读啊,于是一直没有读。而借来的书,因为有期限要还给人家,你就不得不抽出点时间来把它读完,这样才是真的去读了。并且,如果你是按照上面的流程图中画的那样作了笔记的话,这本书你虽然形式上是还了,但你却真正的拥有了这本书,永远的拥有了。

2、三思而后买。 如果这本书你周围借不到,你又想读的话,请在买书之前给自己几天时间的准备。准备什么呢?你应该从各个方面了解一下这书的内容,质量,评价等等,并且能列出这书非买不可的几个理由,计划一下你拿到这书后的阅读计划等等。为什么要作这些准备呢,这其实是在强化你读书的动机,动机越强你读书的动力越大,效果也越好,那这本书才不会白读,更不会白买。我给自己的硬性规定是,从我有买书想法的那天起,往后推一周的时间,如果我还是很想买,那就毫不犹豫的出手了!

对我们程序员来说,图书馆仍然是最好的资源,不但全面而且免费,还能既定一个期限督促自己完成学习,一举N得。我是爱泡图书馆的,而且经常是从早泡到晚上关门,有时是去图书馆的书,有时候也只是看自己的书,因为图书馆里环境最能让人心静下来,学习看书的效率都很高。不过,我也常常碰到很多过来看书但是明显是瞎看的读者,这很大程度上还是在浪费时间。举几例:

1、没有看书的重点,从书架上一取就是五六本,甚至十几本,这时的心理好像是“我拿的多,看的多,学的多,知道的就多”,其实这是完全自欺欺人的。《上篇》中提到了,一个现代化的图书馆里,你是不可能把每本书都看过来的,你的生命太有限了。像这些取书的人,最后只能是翻翻这个,再翻翻那个,每一本书都不会看超过五分钟,最后原原本本又抱回来了,白白浪费了生命中的几十分钟,却还感到莫名的充实。。。。 我的方式是只取一本,并且这一本一定是我之前在豆瓣上查看过相关评论的,我认为这本书值得去读才去拿来读的,并且,如果这本书真的是好书,是一定要一口气看完的,绝不中途去抓另一本书来看,这会严重的影响理解的连续性。

2、小情侣一起来看书的,完全是浪费时间,并且也影响他人。因为两个人一起来的就会有一种“说话有底气”的心理,所以坐在那就会不自觉的聊天说话,而不顾周围人的感受,这样的读者我也很不喜欢。

3、到图书馆来玩手机的。这部分人很多,抱一堆书过去,然后拿出手机来上网发短信听歌的,也许是把书当成了一种心理安慰。这种人也是不应该出现在图书馆的。

这其实就是一个动机的问题,动机不纯永远也不可能作到专注。当然,也不能要求人人都有这种专注的性格,也许人家就是来休闲消遣的,没有太多的想法,这也没错。 对于我来说,因为图书馆离住处不是很近,需要花一定的时间成本到达那个地方,所以,我会对在那的每一分钟都比较珍惜,都是自己选择的嘛,总得为自己负点责嘛。

最后,《到底怎么样才叫看书》的两篇总算写完了,谢谢各位的支持!对文中偏颇的地方,纯属个人见解,请大家批判接受。

分类: 9其他 标签:

译言网 | 面向对象设计

2013年12月20日 没有评论

Object Oriented Design

面向对象设计

How to Approach

如何应对

Object oriented design questions are very important, as they demonstrate the quality of a candidate’s code A poor performance on this type of question raises serious red flags.

面向对象设计的问题非常重要,它能反映出面试者的代码质量。若是对此类问题支支吾吾,面试多半就凶多吉少了。

Handling Ambiguity in an Interview

应付面试中的含糊不清

OOD questions are often intentionally vague to test if you’ll make assumptions, or if you’ll ask clarifying questions How do you design a class if the constraints are vague? Ask questions to eliminate ambiguity, then design the classes to handle any remaining ambiguity

面向对象设计的问题经常是有意含糊的,以此测试你是否会做假设,或者考验你是否会进一步地询问,以明确需求。否则当面对模棱两可的约束时,你又如何设计一个类呢?抛出你的问题来消除这些含糊,然后再设计类来处理剩余的含糊之处。

Object Oriented Design for Software

面向对象设计

Imagine we’re designing the objects for a deck of cards. Consider the following approach: 1 What are you trying to do with the deck of cards? Ask your interviewer Let’s assume we want a general purpose deck of cards to implement many different types of card games

2 What are the core objects—and what “sub types” are there? For example, the core items might be: Card, Deck, Number, Suit, PointValue

3 Have you missed anything? Think about how you’ll use that deck of cards to imple- ment different types of games, changing the class design as necessary

4 Now, get a little deeper: how will the methods work? If you have a method like Card Deck: getCard(Suit s, Number n), think about how it will retrieve the card

假定要为一副扑克牌做设计,考虑下面的问题:

1. 这副牌是用来干嘛?请询问你的面官。先不妨让我们假定这副牌是通用的,可以用来玩各种不同的扑克牌游戏

2.核心对象是什么?— 其中的子类型又是什么? 比如,核心对象可能是:扑克牌,一副扑克牌,数字,花色,点值(PointValue:不知道是指什么)

3. 有遗漏的地方吗?想想看,你如何使用这副牌来实现各种不同类型的游戏?如有必要可以对类的设计做更改

4. 思考一个更深入些的问题:如何实践你的方法?如果有一个方法叫CardDeck:getCard(Suit s,Number n),实现时你又如何去获取想要的牌呢?

Object Oriented Design for Real World

现实世界的面向对象设计

Object Real world objects are handled very similarly to software object oriented design Suppose you are designing an object oriented design for a parking lot:

现实世界的面向对象设计与软件行业的面向对象设计很类似,假设有一个停车场,你要对此做面向对象的设计:

1 What are your goals? For example: figure out if a parking spot is taken, figure out how many cars of each type are in the parking lot, look up handicapped spots, etc 2 Now, think about the core objects (Car, ParkingSpot, ParkingLot, ParkingMeter, etc— Car has different subclasses, and ParkingSpot is also subclassed for handicapped spot) 3 Have we missed anything? How will we represent parking restrictions based on time or payment? Perhaps, we’ll add a class called Permission which handles different pay- ment systems Permission will be sub-classed into classes PaidPermission (fee to park) and FreeParking (open parking) ParkingLot will have a method called GetPermission which will return the current Permission object based on the time 4 How will we know whether or not a car is in a spot? Think about how to represent the data so that the methods are most efficient

1.目标是什么?比如:查看停车点是否可用,查看在停车站内,每种车型的数量,查看有障碍的停车点,等等。
2.思考其中的核心对象是什么(车,停车点,停车场,计时器等—车有不同的类型,停车点也分好几种,比如有障碍的停车点)
3.有所遗漏吗?我们如何表示停车的时间和付费限制?也许我们可以添加一个Permission(许可)类,该类用于处理各种不同的付费系统。
许可类也可有多个子类,比如PaidPermission(付费停车)以及FreeParking(免费停车)。停车场会有一个GetPermission函数,可以按照时间
来返回当前的许可对象。
4.我们如何得知车辆是否在停车点?思考一下数据采取哪种表示形式,可以使得该方法最有效。

7.1 Design the data structures for a generic deck of cards Explain how you would sub- class it to implement particular card games

7.1 请设计一个数据结构,用于一副通用的扑克。为了实现特定的扑克牌游戏,你又如何设计它的子类?

答案:

如果要实现21点游戏,我们需要知道牌的点数。JQK都是十点,A是11点(大部分情况是是这样的,但这是Hand类的工作,而不是
下面类的职责)

7.2 Imagine you have a call center with three levels of employees: fresher, technical lead (TL), product manager (PM) There can be multiple employees, but only one TL or PM An incoming telephone call must be allocated to a fresher who is free If a fresher can’t handle the call, he or she must escalate the call to technical lead If the TL is not free or not able to handle it, then the call should be escalated to PM Design the classes and data structures for this problem Implement a method getCallHandler()

7.2 假设有一个呼叫中心,其中有三类员工:新人,技术领导(TL),产品经理(PM)。可能会有多个员工,但只有一个TL或PM。每个打进来的电话都先分配给有空的新人,当该新人无法处理电话中的事务时,他将此会叫转给技术领导,如果技术领导没空或不能处理,则电话应该分配给产品经理。请设计类和数据结构来解决此问题,实现的方法为getCallHandler()。

这三种员工都有自己的职责所在,所以这些特定的功能都跟具体的职位相关。在对应的类中,我们应该保持这种特性。

但这三种员工也有一些共性,比如他们都有家庭地址,姓名,职称,年龄等。这些属性可放在一个单独的类中,并作为父类被继承。

最后,应该有一个CallHander类,它将呼叫转移到相应的员工。

注意:对于面向对象设计的问题,可能会有很多种设计对象的方式。你应该和你的面官讨论各种方法的利弊,设计时,应该尽量考虑代码的长期灵活性和可维护性。

7.3 Design a musical juke box using object oriented principles

7.3 请使用面向对象的方法,设计一个音乐播放机。

首先,让我们看看一套基本的系统有哪些部分
1.CD播放器
2.CD
3.Display()(歌曲的播放长度,剩余时间和播放列表)

接下来,我们进行更细的分解
1.播放列表的创建(包括添加,删除,打乱等子功能)
2.CD选择
3.音道选择
4.将歌曲放入队列
5.从播放列表中获取下一首
用户也可被引导做下面的事情:
1.添加
2.删除
3.创建和编辑信息
我们如何基于对象将这些功能分类呢(哪些数据和功能结合在一起)?
面向对象设计的思路是,将数据和其相关的操作功能打包在一个单独的实体类中。

7.4 Design a chess game using object oriented principles

7.4 请使用面向对象的方法,设计一个象棋游戏。

7.5 Design the data structures for an online book reader system

7.5 请设计在线读书系统的数据结构

问题中没有太多功能描述,所以我们假定需要实现一个基本的在线读书系统,它具有以下功能:
1.用户创建和延续
2.寻书
3.读书
为了实现这些功能,我们可能需要其他的函数,比如获取,设置和更新等。所需的对象包括User,Book和Library.

下面的代码和面向对象设计描述了这些功能:

对于此类系统,我们做的设计是一种简化实现。我们有一个User类,用于维护所有用户相关的信息,并有一个标识符保证用户的唯一性。我们可以添加一些功能,比如用户注册,收取用户费用和设置月日的看书限额,等等

接下来,我们创建了book类,其中维护了所有书的信息。可以加入诸如add/delete/update等函数。

最后,我们创建了一个管理类,用来管理在线读书系统,它有一个监听接口,以监听任何登录请求。它也提供了图书搜索功能和展示功能。由于用户和该类会发生交互,所以搜索必须在此类中实现。

7.6 Implement a jigsaw puzzle Design the data structures and explain an algorithm to solve the puzzle

7.6 实现一个拼图游戏,请设计用到的数据结构,并解释拼图算法

概述:
1.我们根据边的类型来将其分组。因为内边和外边相伴,反之亦然,这样我们可以直接去寻找潜在匹配。
当我们向内走时,我们记下拼图问题的内边周长(exposed_edges),该变量初始化为角落处的边。

7.7 Explain how you would design a chat server In particular, provide details about the various backend components, classes, and methods What would be the hardest problems to solve?

  

7.7在提供了后台的各种部件,类和方法的细节后,你 如何设计一个聊天服务程序?最难解决的问题是什么?

我们的聊天服务器是什么?

这是你和面官需要讨论的问题,不过先让我们做几个假设:设想我们实现的是一个基本的聊天服务,只支持少数几个人。
用户拥有联系人列表,可以看到朋友在线与否,它们可以发送文本信息给好友。我们不必设计群聊,语音聊天等功能。另外,需要注意到联系人列表是双向的:互为好友才能联系。一切都简化了。

那么,这个系统需要支持哪些功能呢?
1.用户A上线
2.根据当前状态,用户A请求其联系人列表
3.A的好友看到A上线了
4.A添加B到联系人列表
5.A向B发送文本消息
6.A更改状态信息或状态类型
7.A移除B
8.A下线

从这些需求中我们了解了什么?
我们必须有用户,添加请求状态,在线状态和消息等概念。

核心组件是什么?
我们需要一个存储条目的数据库,以及一个总是在线的服务程序。在服务端和客户端,我们推荐使用XML作为传输格式,因为它对于人和机器都是易读的。

核心对象和方法是什么?
下面列出了核心对象和方法,注意到我们隐藏了很多细节,比如如何将数据实际推送给客户端。

最难解决的问题是什么(或者最有趣的问题)?
1.如何获取某人是否在线—意思是,真实的获取?
用户下线时,我们希望能知道其状态,但实际上情况并非如此。用户的连接可能会断。为了确保其下线,我们通常会尝试使用ping来连接客户端。

2.如何处理不一致的信息?
内存和数据库中的信息有可能不一致,发生信息同步问题时会有什么表现?到底以那个数据为准?

3.如何使服务器可升级?
虽然我们设计的系统没有太考虑可升级性,但在实际开发中,这是一个重要的问题。我们需要将数据分布到多台服务器,如此,数据不同步的问题又会凸显出来。

4.如何防止服务器被攻击?
客户端会向我们推送数据—–如果它们向我们发动DOS系统怎么办?如何防止呢?

7.8 Othello is played as follows: Each Othello piece is white on one side and black on the other When a piece is surrounded by its opponents on both the left and right sides, or both the top and bottom, it is said to be captured and its color is flipped On your turn, you must capture at least one of your opponent’s pieces The game ends when either user has no more valid moves, and the win is assigned to the person with the most pieces Implement the object oriented design for Othello

7.8 奥赛罗的玩法如下:每个奥赛罗一面是白色,一面是黑色。当某个奥赛罗的左右或上下被其反色的奥赛罗包围时,称它被捕获了,它需要翻过来。
在轮到你玩时,你必须捕获至少一个你对手的奥赛罗。当玩家都不能再下子时,游戏结束,赢家为拥有奥赛罗最多的一方。请使用面向对象设计来
实现奥赛罗游戏。

奥赛罗有如下主要步骤:
1. Game()为主函数,来管理游戏中的所有活动
2.构造函数对游戏进行初始化
3.获取第一个玩家的输入
4.验证输入
5.更改棋盘格局
6.检验是否有人获胜了
7.获取第二个玩家的输入

注意:奥赛罗的完整代码参见代码附件

7.9 Explain the data structures and algorithms that you would use to design an in-mem- ory file system Illustrate with an example in code where possible

7.9 请为一个内存文件系统设计数据结构和算法,尽量结合代码讲解。

对与数据块的分配,我们可以使用位掩码数组和线性查找(参见“实际文件系统设计”)或B+树(参见维基百科)

7.10 Describe the data structures and algorithms that you would use to implement a gar- bage collector in C++

7.10 使用C++,实现一个垃圾回收器,并描述用到的数据结构和算法。

在C++中,使用引用技术实现垃圾回收的,基本上总是以智能指针的形式出现,它执行的就是引用计数。使用智能指针而非一般指针的原因是,
概念上的实现简洁和易于使用。

使用智能指针后,所有的垃圾回收都在后台完成—通常是在构造函数,析构函数,赋值运算符,显式对象管理函数等中出现。

有两类函数,每类都有简单:

C++的引用计数有几种实现:

1.简单引用计数

优势:性能
缺点:内存开销大,因为使用了两个指针

2.二选一的引用计数

优势:没有因为两个指针造成的内存开销
缺点:由于外加了一层,性能会有损耗

3.侵入式引用计数

优势:没有上一个的劣势
缺点:使用侵入式引用计数的类需要修改

3.所有权列表引用计数。这种方法可取代第1到第3种方法。前三种方法中,只有检验计数是否为0才是重要的—实际上具体为多少并不重要。方案4的主要思想正在于此。

给定对象的所有智能指针都存放在双链表中。智能指针的构造函数将节点添到链表,而析构函数负责从链表中移除节点,并检验链表是否为空。如果为空,则删除对象。

分类: 9其他 标签:

饥饿是很好的锻炼

2013年12月4日 没有评论

柏邦妮

在我二十岁出头的那几年,胃口好得出奇。

每天深夜,我们都聚集在烤串摊前。哪怕是积雪的冬天,冻得浑身发抖,围坐在火光面前,烤得脸颊微微发烫。我们扯淡,喝酒,满嘴黄段子,肆无忌惮。鸡脖子,肉筋,大腰子,烤得外皮焦酥里侧嫩滑。夏夜的时候,在隔壁摊上叫上一打啤酒半个西瓜。毛豆,花生,兔头,鸭爪。附送的还有下班的小姐,刷夜的宅男,打架的酒鬼,奔跑的城管。整夜在浓烟滚滚中度过。烤串其实并不好吃,鲎咸刷酱,但是当时我爱得要命,以及那人间烟火的味道。有一次,一个发达了的装逼艺术家来找我们,问:“在这种乌七糟八的地方,你怎么能安心创作?”我微笑着说:“去你大爷的!”

不吃串的日子里,我们自己做饭。我的手艺锤炼得相当不赖。口水鸡,糖醋排骨,啤酒鸭,香辣虾,干锅肥肠,腐乳肉,酸汤鱼,都是我的拿手菜。冬天的时候,我们自己腌酸菜。一口巨大的酸菜桶,一百斤白菜。晒得表皮微干,一层一层码实,洒上大粒盐,压上一块大石头,放水浸泡。最冷的日子,酸菜白肉粉丝豆腐锅。酸菜猪肉饺子,搁大量的油。油多肉满,酸浓可口。满屋子的朋友,欢声笑语,面粉飞舞。

我们自己做肉皮冻,肘子花,自己做贵州酸汤,用啤酒瓶捶打牛排。晒豇豆,茄子,晒辣椒,萝卜条。我们搞了一个私房菜,在家里宴请陌生人。有人邀请我写食谱,我为此咨询了我的父母,菜名浩浩荡荡写满了几页纸。那时候我们热衷吃自助,二十二块一位的重庆火锅,四两一盘的羊肉轻轻松松干掉八盘。后来这家火锅店倒了,大家都说是被我们吃倒的,我深以为然。

那时候,我的一个姐们和我一起吃肯德基。她看着我吃鸡翅的样子不寒而栗。她对我说:“我不知道什么样的男人会爱上你。你吃东西的样子太可怕了,完全不懂节制自己的欲望。”节制?那个时候,我连“饱”是什么都不知道,只知道“撑”。对我来说,“恰好”就意味着没劲,只有过度才有吸引力。生活是一个盛宴,它应该是一个盛宴,如果它不是,那么我就用食物塞满它。

饥饿是什么?我想,饥饿是一种生活状态。二十岁的饥饿,是全身心的饥饿。对爱情,对生活,对所有一切。我吃得下一个超市,一群牲口,吃得下一群梦想和野心,一口袋奇迹,吃得下许许多多的爱情。啃咬嚼咽,与嘴沾边的动词就是全部。

那时候我的体重暴增到一百三十多斤。对我的身高来说是一个灾难。全世界的男人都对我视而不见,只有一个人忧心忡忡。那就是我的父亲。在一个盛夏的中午,他从外面回来,拿着一叠减肥中心的促销单。他跟我说:“你必须减肥,这是你现在最重要的事。你可以不工作,但是得减肥。”我看着眼前这个年近六十的老男人,汗水湿透了他的衬衫,粘在了他的背脊上。我想象他骑着车,满大街寻找减肥店,挨家挨户走进去索要传单的样子。妈妈背着他跟我说:“你爸爸说,我们的女儿是块玉啊,但是她以为自己是块石头。”然后我很肯定的跟他们说:“我不会去减肥中心的。我不吃药,也不用什么仪器。我自己减。”

饿是一种什么样的感觉?这感觉我很熟悉,因为这三年中,它一直没有离开过我,我想,还会跟随我一辈子。村上春树曾经在一篇短篇小说里非常文艺的形容过。他把饥饿描绘成一幅画:“乘一叶小舟,漂浮在湖面上。朝下一看,可以窥见水中火山的倒影。”坦白说,我觉得他饿得不狠。饥饿本身没有诗意,没有尊严。饥饿类似于疼痛。在长久持续的饥饿中,胃液烧灼,胃壁摩擦,你会感到真真切切的疼痛。人退化成动物,只想大口大口的吃东西。除此之外,什么都不想。节食之所以很难,是因为这是在与人最基本最原始的欲望对抗,在与身体最自然最直接的机能对抗。对抗的结果往往是焦虑,沮丧,崩溃和疯狂。但是我赢了。当然,不是每次都赢,但是赢的时候居多。

我想说,人最可怕的是习惯。我们能习惯一切事物,包括饥饿。慢慢的,我追求的不再是“饱”,而是“不太饿。”我开始喜欢“微饿”的状态。在这种状态中神志特别清醒,看画,看书,看电影,印象格外鲜明。写东西的时候条理似乎也清爽一些。以往写文章,冗余臃肿,整个人在一个煽情的状态,后来慢慢的要沉实简单多了。

我当然瘦了,前后瘦了将近四十斤。那种感觉很好,好得超过了挨饿。我的旧身体,每天都是新大陆。我爱那种感觉——有了可能性的感觉。变成更美的自己,是有可能的;变成更好的自己,是有可能的。生活,是有可能的,遇见一个人,他愿意喂饱你喂好你,你们有最好的爱和最好的性,你们呆在一起,天然就很好。你值得拥有那么好的生活,因为你也那么好。

我不想背叛过去的自己,但是我想说,饥饿像一把刻刀,慢慢的雕刻出一个真实的轮廓。所有的胖子都长得很像,都有类似的表情和体态,那个瘦下来的你,才是隐藏其中的自己。我喜欢过去的自己,像一枚醒目的黄色灯泡,张牙舞爪欢乐热情,但是我知道,我不愿意回去了,再也不愿意。

有人问我:减肥之后,你有变得更快乐吗?我认真的思考了这个问题。我想我并没有。但是,我无法分辨,到底是岁月,是越来越沉重的生活,是这把年纪让我变得更不快乐,还是仅仅是节食本身?也许都有。但是我知道,发自内心的,我更欣赏现在的这个我,更接纳全新的这个我。不再是看似自傲其实自卑的结合体,不再以奇装异服香艳性感来释放自己,我知道,也许我会追求的已经不再是强烈饱足的喜悦,而是某种深沉快慰的宁静。

到了三十岁,我开始觉得“节制”不是一件坏事。吃一点点,反而觉得滋味更好。饕餮的舌头味觉会麻木吧?而我那清心寡欲的舌头,简直就像小寡妇一样饥渴,一点点美味都会令我感动得幸福流涕。一碗玉米面茬子粥,我能喝出谷物丰盛的香气;一碗热气腾腾的大米饭,再浇上一点点肉酱,那就是天堂。我戒了自助,我不再那么爱吃肉,咸和辣也开始觉得腻。不吃的时候真不吃,吃的时候那就是真吃。我相信我吃得出每样食物真正的味道,每种味道都余音袅袅,绕梁三日。

我不知道这两者之间是不是有联系。在此之前,我一直过着极其繁忙焦虑的生活。我接很多很多的工作,一方面是因为确实生活所迫,一方面是因为我内心不安。如果不接这一单,就不会有人找我了。即便接了这一单,如果黄了,那我就会落空,生活就会青黄不接。我们行内管这叫“狗揽八泡屎”,很难听。揽了这么多,姿态当然不可能从容,东西也不可能精细,但是没办法,就是疯狂的接,疯狂的做,疯狂的转。其实,我们需要的不是钱,是安全感。就像我们需要的不是食物,是爱。去年我停止了这种生活。只接自己想写的,只做自己想做的。钱并不多,但是生活得很好。掌控了生活的节奏,消化了内心的不安,我很满意,在我这个年纪。

抱歉这篇文章里我没有写爱和性。爱并没有变得更多,变得更多的是爱的可能性。这本身是喜剧还是悲剧呢?

很久以前,我们都听说了那句著名的名言:STAY HUNGRY,STAY FOOLISH。保持愚蠢对我来说很容易,我一直都是一个热情的蠢货。保持饥饿,是什么意思?我想,在现代社会,吃饱变得很容易。人到中年,就是一个物质日益饱足的过程。消化变慢,代谢变慢,容易变得迟钝安稳,也容易变得沾沾自喜。保持饥饿,是为了让自己保持敏锐,保持清醒。不是要变得贪婪,不断的追求满足,相反,我觉得,是要保持一种状态,一种青春的姿态。在饥饿的年纪饿,是一种常态。在不饿的年纪,要让自己有点饿。STAY HUNGRY,是要珍惜真诚的感官,磨淬出发的欲望。

饥饿是很好的锻炼,我相信。

如何正确减肥,时尚大帝Karl Lagerfeld这么说{转}

St.HarryPotter

来自: St.HarryPotter(努力成为在豆瓣上只标记读过的人) 2010-02-02 13:33:32

分类: 9其他 标签:

男人保持精力旺盛的15招

2013年12月4日 没有评论

1、养成喝水习惯

处于缺水状态的你,会时常感觉衰惫。清早起来先喝一杯水,做一下内清洁,也为五脏六腑加些“润滑剂”;每天至少喝进去一升水,不过也不是多多益善。

2、晨起锻炼5分钟

起床后锻炼5分钟,不仅为身体充电,而且能加倍燃烧卡路里。很多人误认为晨练必须5点钟爬起来跑上几公里,其实是不必要,也不太现实的。你只消花5分钟,做做俯卧撑和跳跃运动,使心率加快,就能达到理想的效果;要么对着镜子冲拳100下,感受那种能量积蓄的过程。

3、讲究吃早餐

美国有研究发现,不吃早餐的人身高体重比(BMI)偏高,也就是体重超标,还爱犯困,做事无精打采;讲究吃早餐的人则精力充沛得多,身形也相对匀称。最营养健康的西式早餐是:两片全麦面包、一块熏三文鱼和一个西红柿。全麦面包含有丰富的碳水化合物和纤维;西红柿的番茄红素有利于骨骼的生长和保健,并且对前列腺疾病的预防很有好处;三文鱼中丰富的omega-3脂肪酸和蛋白质对身体更加有益。

4、坐有坐相

坐姿不良,走路踢里踏拉,耸肩腆肚,这些通常是你能量已耗干的表现。在办公室一坐就是七八个小时,如果不能保持正确的姿势,反而会觉得更疲劳。不管是站还是坐着,应当收腹立腰,放松双肩,脖子有稍稍伸展的感觉。

5、张驰结合

工作中碰到难题,一时半会儿又没法解决,不如稍事休息,如去倒杯茶,换换脑筋,然后接着干。累得快透不过气来时,深吸一口气(数3下),然后呼出来(数6下);或者翻翻体育杂志,上网浏览娱乐八卦,找谁聊几句,说不定灵感在不经意间就来了。

6、站起来接电话

站着打电话借机舒展舒展筋骨,一边深呼吸,使富含氧气的血液流进大脑。这个简单的变化能让你几个小时都精两倍旺。

7、午睡20分钟

20分钟左右的小憩是最理想的,它其实跟午睡一小时的作用没什么两样。一个小时对大多数人来说有点长了,睡得太沉,晚上可能睡不好。

8、交乐观的朋友

乐观、精力旺的朋友或同事人见人爱,他们积极的情绪总能感染周围的人。不仅要和聪明有才华的人交往,更要和那些充满热情,积极向上的人交朋友;跟一个悲观、喜欢抱怨的人一起呆上30分钟,你的能量就会被间接耗尽。

9、每天运动

哪怕你再忙,也要坚持锻炼,或跑步或键步走或游泳。你要是对自己体力过于自信,以为年轻就是本钱,不会那么轻易倒下,有人也许会跟你急。

10、补铁

如果你体内铁的储存太低,身体就不能制造血液中运载氧气的血红蛋白,人就容易觉得累。最好的补铁办法是通过饮食,采用食物疗法:含铁质丰富发热有动物肝脏、肾脏;其次是瘦肉、蛋黄、鸡、鱼、虾和豆类。

11、开车多吃纤维食物

男人很少吃零食,你可以在车里放些花生和葡萄干,这些东西含有大量的钾,你的身体需要钾将血液中的糖转化为能量;坚果也不错,它富含碳酸镁,缺乏碳酸镁会使身体产生大量乳酸,而乳酸易使人产生疲劳感。

12、边沐浴边唱歌

淋浴时大声唱歌促进身体释放内啡呔,从而产生一种快乐与幸福的感觉,减轻压力。你越是心情不好的时候,越要唱出来,至于好不好听,跑没跑调,你管它呢!

13、提前1小时上床

多睡60分钟的提神功效等于喝两杯咖啡。这是指你每天早睡一小时,而不是周末拼命睡懒觉。否则生物钟被打乱,总感觉晕乎乎的。

14、控制酒量

酒精让你产生蒙蒙睡意,但是睡前喝酒反而会因兴奋影响睡眠,虽然闭着眼,眼球却在不停地转。你得牢记睡前两小时不喝酒,晚餐啤酒最多只喝一两杯。

15、多看喜剧

笑一笑,十年少。笑能锻炼面部肌肉,改变你的面部循环,从而提高注意力。尽管快乐不像俗语形容的那样能挽留青春,但每天保持愉悦心情的人确实更健康,罹患心血管病、糖尿病的风险更低。

分类: 9其他 标签:

无觅相关文章插件,快速提升流量