2006年1月20日
#
声明:本博客已搬至http://blog.csdn.net/pan_tian
高明的程序员善于通过阅读程序来发现有价值的东西,并不断地提高自已的水平。
我们很多的学习都是从阅读开始,学一门语言,学一门技术,一般都会先选择好的老帅或好的教材,去听,去阅读,然后慢慢地理解并掌握,阅读在我们的学习与生活可以说无处不在,阅读是我们学习知识增长见识扩大视野的关键环节。
在大四之时,我开始感觉到课本知识的局限性,特别是在我领悟到自已不得不干技术这行当时,我就更加迫不急待地去学习很多的编程技术,我开始不断地阅读各种各样的编程书籍,也开始被一行又一行的代码所吸引,每当理解到一段代码的作用时,心里就特别的愉悦与富有成就感,当我用DELPHI写出第一个象样的程序时,激动与兴奋了好几天,同学们都在兴高采烈地描绘着毕业后到某某政府机关或金融机构大显身手的宏伟蓝图,我是羡慕的,也是无奈的,我不得不零时抱佛脚,疯狂地阅读,努力学好一门技术,为的是能找到工作混口饭吃,先生存再谈发展。
温伯格大师在《程序开发心理学》里认为程序开发也是写作的一种形式,它与其它的写作形式没有什么两样。众所周知,作家能写出好书,大都博览群书,可以说阅读是提高写作水平的一条重要途径,同样的,程序员学习程序开发,阅读程序对水平的提高也有很大的促进作用,程序员通过阅读程序,可以发现与总结出有价值的东西,比如一段代码之所以如此编写,是由各种因素决定的,有的是因为计算机的局限,有的是因为程序语言的局限,有的是因为程序员本身的水平,而有的则可能是因为标准规范的约束,通过仔细地阅读程序,你会发现并理解到这些因素,并从中受益匪浅。
那么,我们应如何来阅读程序呢?
温伯格不愧为大师级的人物,不仅知识渊博,而且字里行间还非常地幽默风趣,他认为“阅读程序与阅读小说是不一样的,阅读程序的最好方法并非是依次从头到尾。程序不像迷语,我们无法从末尾几页找到答案,也不像一本引人入胜的书籍,只需直接翻到褶皱最多的那几页,我们就能找到最精彩的片断。”简而言之,程序中最好的部分所出现的位置是不确定的,因此我们在阅读程序时,最好逐一考察研究每一段代码,搞清楚每一段代码的来龙去脉,理解每一段代码在程序中所起的作用,“进而形成一个虚拟的程序结构,并以此为基础来进行阅读”。
我开始学习VC++的时候,每学到一个知识点,先从理解概念开始,然后找一段别人已写好的程序来阅读,理解每一行代码在整个程序中的作用,如果这行代码错了会有什么样的结果,如果没有这行代码又会怎么样,阅读后再去上机操作,验证自已的理解是否正确,这样学习虽然较花时间,但有所收获,有的初学者很急躁,不到一个月的时间,就吹牛自已看了多少本书,但学到的只是一些表皮的知识,没有什么用的,还不如认真地钻研一本书,效果可能更加显著,其实你也会慢慢发现,书店里的书虽然多如牛毛,但都大同小异,这很是悲哀!
综上所述,我们需要理解点:一是程序被编写成什么样子,取决于众多的因素;二是阅读程序不能象阅读小说,程序中精彩的部分出现的位置是不确定。另外,阿蒙建议同行们善于通过阅读程序来学习程序开发,每学一个知识点,先去阅读与分析现有的程序,相信对你的学习是有促进作用的。
纯真的双眼已被世俗掩埋
眼里的纯洁已蒙上了尘埃
长大了的我们
懂得了更多的是无奈
快乐的心情已很少再来
岁月似流水一去不再回来
好怀念童年那个天真的小孩
一个玩具就能乐得开怀
受了委曲 流下眼泪就云散雾开
忙碌的人们忽略了平凡的精彩
每个人心里都在轻轻 轻轻的问
幸福在哪里
朋友哇告诉你
它不在月光下
也不在温室里
幸福在那里
朋友哇告诉你
它在你的理想中
它在你的汗水里
今天看了中央电视台的一个节目,叫做"幸福在那里",记者随机的采访一些人,询问他们两个问题,第一个问题:你幸福吗?第二个问题:幸福是什么?
不同的人给出了不同的答案.有的人回答的很朴实,有的人回答的很有深度.那么假如那个记者问我,我该怎么作答呢?
我幸福吗?幸福是什么?
这两个看似简单的问题,一时我竟不知道如何作答,简单的回答幸福或者不幸福都不能充分的表达我的真实感受.那么在我的人生词典里到底什么是幸福.仔细思考后我也不能给出自己一个满意的答复.索性把这个问题放在这里,也许有一天我能来解开这个谜底.....
突然想让自己换个活法.从大学到现在,对于技术的追求始终没有停止过,一直以来都希望自己在技术的道路上有所成就,但一路走来做的都非常辛苦,必须承认在一些时候自己是不快乐的.但这是为什么呢?以前始终没有思考过这个问题,总是在潜意识中认为"结果会是快乐的,过程会是痛苦的"这一道理,而且对于"台上一分钟,台下十年功","要想人前显贵,必得人后受罪"等生活中流行的俗语基本是持认可态度的,但一路走来的辛酸让自己不得不重新审视这些东西.
"过程真得非是痛苦的吗?"
"为什么我不能在过程中就享受到快乐呢?"
"为了短暂而又瞬间的快乐值吗?"
"我为什么不能享受这一过程呢?"
答案:毫不谦虚的说我是一个非常上进的人,而正是由于我对成功迫切的渴望,造成了我一些比较功利的心态---为了成功而成功.正是由于这个原因,使我不能细细的品味整个"过程".一些所谓的成功技巧充斥着我的生活,这些技巧构架起了我这个人.而我呢?依旧不断的再寻找新的技巧来取得成功.没有成功,我彷徨,于是继续再找着所谓的成功技巧....不断的恶性循环
一直一来我忽视(或者说小视)了人生中最真,最朴实的东西---爱,发自内心的真爱
别再想什么技巧了,只要爱就可以了,没有什么比这个更具有力量的了.
非常喜欢王朔得痞子文学,曾经也非常希望自己成为王朔笔下的那种痞子--一颗善良的心加上毫不讲理的痞子性格,无奈天赋有限,怎么着都学不的不像,于是索性就当起了好人...无奈...
王朔这小老儿最近也不出新书了,该不会也下海了吧,赶快出书啊
这两天精神状态不太好,工作效率非常低,一天下来做不了几件事情,而且对对老大的一些做法也有些看法,产生了一些抵触情绪.
现在最需要的是冷静下来,心平气和的想想到底发生了什么和如何解决这些问题
1.工作量过于大,搞的自己每天都是疲惫不堪,没有时间去学习自己想要学的东西
2.老大没有原则的下达任务
3.身体上很疲劳,而且经常和同事出去喝酒
4.下周的技术交流,准备的还不充分,心里不踏实
5.妹妹的学习状况还不太明了
6.感情上的一些波动
按照事情轻重缓急排序及解决方法:
1.下周的技术交流,准备的还不充分,心里不踏实
大概还有8天的时间,准备的是还有些欠缺,但老大也没有期望你在短时间内成为又一个郭文瑞,再说自己在数据库索引下的功夫是比较多的,只要把自己所掌握的东西表达出来就可以了,没必要给自己太大的压力.而且在索引调优方面,他们对于这方面的了解应该说远没有我了解的多,他们来是向我学习的,怕个什么.
2.工作量过于大,搞的自己每天都是疲惫不堪,没有时间去学习自己想要学的东西
从一个角度来看,现在的环境是一个"逆境",但是能不能把这个"逆境",变为"顺境"呢?
可以试试用另外的一种心态来工作,我现在做的是怎么样的事情?每天无休止的测试着各项性能的数据,那么如何让这些数据给你带来更大的快乐---答案:对于可能有问题的脚本进行跟踪,给予开发的我的个人建议,体现出个人价值来,成为真正的性能调优专家,而不仅仅是一个测试者
3.感情上的一些波动
感情真的是难以琢磨的东西,当你不理睬它的时候,你总是可以非常理智的看待其他人的感情生活,还经常以一种局外人的身份去教导别人应该如何如何,其实现在想想自己是多么的幼稚.不过想想也是,如果在感情世界中还能保持沉着,理智的话,那么这个感情世界就太缺少"人味"了,所以不必想的太多,跟着感觉走就行了
4.老大没有原则的下达任务
这个是你无法控制和改变的,任何抱怨只会对你不利,更不要产生抵触情绪,认认真真的做好应该做的事情才是硬道理.年轻的时候吃亏是福
5.身体上很疲劳,而且经常和同事出去喝酒
以后是得少喝点酒,少抽点烟了,现在年轻可能不觉的什么,要是年龄大了,毛病也就出来了.以后是得加强锻炼.
6.妹妹的学习状况还不太明了
明天打电话,了解一下最近的学习情况
工作的"繁忙",人际的交往,生活的压力很容易让人变得浮躁,但浮躁对于一个胸无大志的人来说可能算不了什么,但对于有些理想,有些上进的人来说是一件非常痛苦的事情,他们迫切渴望成功,但又讨厌漫长的积累过程,不断的寻找捷径,可又一次一次的失败,他们彷徨,他们失败,他们痛苦,恶性循环下不断的积压着心中的闷气,如果有幸还能够冷静下来,清晰的审视一下自己,发现自己的所谓的捷径不过都是一时的自作聪明而已,而小聪明在人生这样的大战役中,是一无是处的.
在学校的时候,环境比较的单一,人还能够比较冷静的对待人与事,还能够比较冷静的规划自己人生的路,明白成功非一日之功,只有日复一日的积累,才有最终的收获.但社会呢.......忙碌的工作和生活,让人缺少时间,去审视自我(真的是没时间吗?)
想起候捷说得一句话:能够在资讯世界里悠然自得,真令人羡慕(虽然那些人,包括我,其实也都是鸭子划水,水底下忙碌得很)。悠然自得的境界需要按部就班地训练才能到达。
B+树可以看作是B树的变形,对于存放在外存贮器上的字典,B+树比B树更为常用。
一个m阶的B+树满足下列条件∶
(1) 每个结点至多有m棵子树。
(2) 除根结点外,其它每个分支至少有 棵子树。
(3) 非叶结点的根结点至少有两棵子树。
(4) 有n棵子树的结点有n个关键码,叶结点中至少包含 个关键码。
(5) 叶结点都在同一层中,其中存放数据文件中记录的关键码及指向该记录的指针,或存放数据文件分块后每块的最大关键码及指向该块的指针。叶结点按关键码值大小顺序链接。可以把每个叶结点看成是一个基本索引块(直接指向数据文件中的记录)。
(6) 所有分支结点可看成是索引的索引。使结点中仅包含它的各个子结点中最大(或最小)关键码的分界值及指向子结点的指针。
B-树,B-树是一种非二叉的查找树。它除了要满足查找树的特性,还要满足以下结构特性:
一棵M阶的B-树,(1) 树的根或者是一片叶子(一个节点的树),或者其儿子数在2和M之间。(2) 除根外,所有的非叶子节点的孩子数在M/2和M之间。(3),所有的叶子节点都在相同的深度。
要注意的是,B-树中,所有的数据都存放在叶子节点。而在叶子节点上存放的数据量是有限的。
B-树的插入与删除,唯一要考虑的问题是,让插入或删除以后的树,依然满足B-树的特性。在某些情况下,这也是一个比较复杂的过程。说不清楚,看书中的例子。书中的方法其实也都是定式。因为计算机本身不会思考。所以当我们思考计算机要做的工作时,我们要学会像计算机一样机械的考虑问题。说白了就是if。。。then。。。else。
B-树的平均深度为logm/2N。执行查找的平均时间为O(logM)。
B-树应用在数据库系统中。具体指的是应该是索引。它加快了访问数据的速度。
书中提到这一种流行的定义B-树的方法。还有一种定义的方法是允许把数据存放在内部节点中。而没有提到B+树。而我在google上找出的B+树的定义和以上对B-树的定义很像:“A B-Tree in which keys are stored in the leaves. ”。这让我很困惑。究竟那个是B+树哪个是B-树。
今天周六,到公司把手头的工作做完,准备23号回家.也许是回家心切,工作时毛毛躁躁的,不小心把以前发布的性能测试数据删除了一些,害的老大为我的错误浪费了一些时间.事后老大也指出,工作要认真和仔细一些,尽管语气比较婉转,但我知道一向稳重的老大一般是不太喜欢说人的,一旦他要批评了谁,不管多么委婉,都会让人觉得刺耳.
半年来,不知道犯过了多少错误,我的成长和提高也是伴随着这些错误成长的.而不管我犯得是多么低级得错误,老大都没有丝毫得小看和瞧不起,他是给予了我充分得信任和足够得成长时间,这里我确实要深深得感谢我的老大,是你让我认识到一个什么叫做一个职业人应该具有的工作态度,谢谢.
我想在人生的路上有人敲打敲打,,是一件幸福的事情,尤其是年轻的时候.敲打你是因为他们爱护你,别不识好歹的拒绝.
看完了<<英雄时代>>,突然发现自己看过的小说还真不少了,一时兴起,就来罗列一下自己看过的小说和为之所花费的金钱
养成看小说习惯是从初中看金庸的射雕开始的,那些没什么名气的也就不列了.
一.武侠类:
金庸:"飞雪连天射白鹿,笑书神侠倚碧鸳"14部小说除了<白马啸西风>和<鸳鸯刀>没看外,都已看过.
古龙:<小李飞刀><陆小凤><绝代双娇><楚留香传奇>
黄易:<寻秦记><大唐双龙转>
所花金额:大约在600元
-----------------------------------------------------------------
二:历史文学
二月河:<康熙大帝><雍正皇帝><乾隆皇帝>
凌力:<少年天子>
姚雪垠:<李自成>
所花金额:大约在300元
-----------------------------------------------------------------
三:现代文学
王朔:<永失我爱><空中小姐><一半是火焰一半是海水><动物凶猛><浮出海面><过把瘾就死><懵然无知><刘慧芳><无人喝采><我是你爸爸>
路遥:<人生><平凡世界>
海岩:<永不瞑目><玉观音><拿什么拯救你,我的爱人>
钱钟书:<围城>
霍达:<穆斯林的葬礼>
陈忠实:<白鹿原>
张平:<抉择>
柳建伟:<英雄时代>
都梁:<血色浪漫>
张成功:<黑冰>
陈杰:<大染坊>
所花金额:大约在900元
-----------------------------------------------------------------
这样加起来也就大约47本小说,花掉了我大约1800元的银两.
今天看完了两个月前买的那本柳建伟写的<<英雄时代>>,如果不写些感想,就真的对不起我花的那三十块书钱了.^_^
看了这本书让我想起大学时看的那部电影--<<蝴蝶效应>>,都是说一些小小的事情往往会改变人一生的轨迹.
大学时,看完电影后,还在想小的事情真的会影响人的一生吗,那么我现在倒一杯水然后喝掉或者不喝会对我的人生有什么影响呢?一个看似无聊之极的问题,而我在今天才真正找到答案.
随便具个例子:
现在有人看到了我的贴子了,觉得我说得都是狗屁,一时愤怒打翻杯子砸死了一只蚂蚁,天啊,谁能想到我无聊发的贴子和一只蚂蚁的生命会联系在一起.我不希望地球太快毁灭,所以我们就说不发生什么,而不是发生了什么.天知道这只蚂蚁是什么家族的(或许就是这么巧),这只蚂蚁有很大的力量,一天或者和我一样无聊,或者比我更无聊,在地下啃断了一只细小的根须,结果一株可能是几十年后的栋梁之才就这么毁灭了.似乎有些无聊,但是细想一下真的很可怕,可怕的不是发生了什么,而是改变了什么
这个道理其实是时时刻刻隐藏在我们的人生历程中的:一次大胆的尝试,一个习惯性的动作,一种积极的态度都可以出发生命中意想不到的起点,它能带来的远远不止于一点点喜悦或其他什么东西
快过年了,但我却觉的像在"过难",车票的事情真够人头疼的.狠了狠心还是买飞机票了,这一来一回基本上一台电脑就搭进去了.父母的年岁也日渐大了,对于子女他们是没什么太大要求的,只希望平平安安,身体健康,常回家看看就成,作儿子的是应该多回家看看,哪怕是一个电话.
是啊,虽然现在户口是转到了深圳,但我从来没有觉得我是一个深圳人,我的根还在西安,我还深沉的热爱着我的故乡.有时候确实觉得自己像一个风筝,线的一头在西安,在父母的手中,线的这头在深圳,只要父母一收线,我就还会回去的.毕竟那里有我二十多年美丽的回忆,呓,为什么是美丽的回忆,想想自己走过的路是多么的坎坷,你不是曾经无数次的诅咒过那座古老而又沉重的城市吗,为什么现在却觉得她有时那么的美丽.现在走了过来,回头看看,才明白"为什么记忆总是美丽的"----因为记忆永远不会威胁到你的现在,哪怕那是无比痛苦的回忆.
快回家了,心里还真是有些兴奋的,马上就能见到家人和好友了,能吃到正宗的羊肉泡膜,肉丸胡拉汤...不能再写了,本来是不饿的,可现在写着写着........
书不在多,而在于精,特别是刚开始出来的时候,什么书都想买,实际上应该继续将基础打扎实,不要什么都涉猎,建议开始学习一些JAVA技术方面的东西,如J2SE的类库,JVM,数据库。等到技术比较成熟的时候,再去看软件工程的东西才会比较轻松。当然,我个人觉得,算法与数据结构要经常看,常看常有体会,知识只要用到实际上才能够应用自如,否则就是死的,东西一定要学活。虽然只学到一个原理或者公式,却能够将它变化无穷,以无招胜有招。实际上很多的问题通常都是一个很简单的问题的变化,或者几个问题的组合而已