2008年9月29日星期一

百度被强奸之后会怎样?

百度目前财大气粗,为啥呢?因为把自己最重要的部分都卖出去了.就好比一个美女,一旦决定做妓女,那一定是财源滚滚的.也一定会财大气粗,

世界上其他的搜索引擎,几乎都是将广告放在右边,与正常的结果加以区分,让网民知道:这是广告,如果你喜欢可以点,不喜欢可以不点.

但是百度不同,只要是热门的东西,那么搜索出来的第一页结果,一定基本上是广告.

网民没得选择,除非你跑到第二页去.

这好比一个小伙子爱上一个美女,而美女是个妓女.小伙子很痛苦,但是没有办法,只好拼命抚摸美女漂亮的胸脯.边摸边流泪.

其他搜索引擎大不心羡慕百度.因为,如果你羡慕它,就是想歪了,想做妓女了.这万万不可啊.一旦走错了这一步,将难有回头.

你想啊.百度每天有多少猛男在疯狂地点击它的胸脯啊.抽插它的私处么?多到你想象不到的程度.完全被搞烂了啊.

更让你想象不到的是:百度还在自摸.为什么呢?

难道这么多的人搞它,它还觉得不过瘾?

不是的.这与百度要求嫖客们付款的方式有关.

嫖客要求百度的肉体服务,百度答应了.但是规定了服务的模式.是摸一次多少钱.

我们知道.百度是同时被超级多的人在摸,这就有了浑水摸鱼的机会了.

反正人多,出了钱的嫖客在摸.其他人也在摸.百度于是自己也摸.

百度虽然被众多的人同时摸.但是摸了多少次,百度是统计得非常清楚的.但是嫖客不清楚.却无法反驳百度提出的被摸的次数.于是只好认栽.

嫖客们于是只好天天给钱,月月给钱.

会不会吵起来呢?

会的.

那怎么办呢?

好办.嫖客们在招摇大家来摸百度的时候,其实是想卖些个姻渍粉,手帕,避孕药,自慰膏之类的东西出去的.

如果嫖客不想通过百度这个美女来出售这些东西了.

可以.

但是请将您的姻渍粉,手帕,避孕药,自慰膏之类的东西从百度的胸脯上拿开吧.

不想拿开吗?

好.我百度自己把它拿开.并且永远别想沾我百度的边.放在脚边也不行.

客官,大家注意了.目前只也百度这号美女[尽管已被入得不成样了]是头号招牌,是头块牌子.大家都喜欢.你不想跟它合伙,你的东西可能要通过更贵的方式才可以卖出去.

所以,嫖客们只好情愿挨宰.

与此同时,也在呼唤另一个清纯的美女出现.

硕鼠硕鼠,勿食我粟.

淑女淑女,何时适汝!!!

淑女是谁呢?就是营销型企业网站!

什么是营销型企业网站呢?

2008年9月25日星期四

Prison Break!!!

一直以来都很喜欢Prison Break,不仅仅是喜欢里面的男主角的帅气面孔,更为我所敬仰的是里面严密的逻辑思维和给我的启发(MS我很喜欢在这在那受到启发,不知道这是不是好事。吼吼)。
Prison Break里面,处处都体现了一个道理,就是,无论你要做什么事情,都要谋而后动,考虑到种种可能发生的情况,这样才能万无一失。
还有,我可以看见,Michael博学,什么都知道。但他不是躺在床上想啊睡觉啊得到这些知识的,也是通过不停的看书,付出,虐待脑细胞得到的。这点就不得不让我佩服,我最缺乏的就是这种精神,小白也曾告诉我,要么就不看书,要么就要把书看透,一个字一个字的看。从今天开始,我将要这么做。我发誓!
不言放弃,在任何情况下,Michael都没有说放弃,哪怕到了最坏的情况也是,我呢?往往看到一点绝望的气息的时候,就支持不住了。这点,我要学习。------困难是对弱者而言是痛苦,对强者,它只是帮助自己的助手。
无论如何,谢谢prison break ,谢谢Micheal,虽然都是虚构了,但教会了我很多。

2008年9月23日星期二

复杂的社会,简单的苹果

乔布斯在旧金山的Macworld大会上发布了一款没有LCD屏幕,没有FM收音,只有一个随机播
放的功能的闪存式廉价数字音乐播放器-iPod Shuffle。有创新能力高端厂商都恨不得把
消费者能想到的功能都做到一个手表,只有苹果提出了不同的方向,以至于竞争对手嘲笑
苹果推出了一个落后于整个行业四年的产品。但深暗苹果Think Different文化的macfans
仍然对这款产品追捧至极,简约实用,做功精细,童叟无欺。苹果电脑凭借Macworld发布
的新产品一天以内股票狂涨14%。

苹果电脑84开始应用图形界面,微软5年以后才有,10年以后才真正有人用;苹果电脑99年
就有了成熟的无线网络技术并无私地努力推广其标准化,无线网卡地价格才得以从几千将
到几百,3年以后intel无耻把这项技术加到其某类芯片中无休止的抄作;01年苹果就有了
iPod,3年以后Sony和创新才推出类似产品;创新总裁在iPod Shuffle发布以后嘲笑苹果是
一靠抄作文化的公司,遗憾的他不知道iPod Shuffle内置哩电池,USB直接充电,附加多个
增值配件?. iPod Shuffle没有收音和LCD,非不能也,是不为也。

iPod Shuffle 可以容纳120首歌却不可以在LCD上进行选择,很不方便,苹果的解释是:L
ife is random,生命是随机的,我们永远不知道下一首歌是什么。真的很象美国著名阿甘
真传里面的对白。Life is iPod Shuffle, you will never know what will be next。但
是这句话苹果只讲了前面的一半,Life is random 的背后是选择;iPod Shuffle的背后是
iTunes,是网上音乐商店,是我们购买音乐,是我们收藏CD,然后我们又把音乐下载到iP
od Shuffle,我们其实一直都在选择,我们在iPod Shuffle上听到的每一首歌都是不期而
遇,又是似曾相识的。我们为什么在iPod Shuffle不需要在选择我们要听哪一首歌,因为
我们已经选择过了。

和苹果所说的一样,这样的模式非常接近生活的本质,微观上我们无法控制事情的发生,
宏观上我们却掌握着命运。一个记者不会知道明天发生什么事情,但从他决定要做记者的
那一刻起,他已经决定了要面对这一切。生命总是不太方便的,只有坚强的人才知道命运
是掌握在自己手里的,这是一个秘密,并不是所有人都知道。让人怀疑的是,是不是在发
达的国家里坚强的人会比较多。

选择苹果不是选择了一个随身听或者是一台机器,而是选择了一种态度和思维方式。遗憾
的是我们总是无法轻易的作出这样的选择,买苹果电脑担心不兼容,买iPod太贵,iPod S
huffle不能收音。和现实生活中的选择一样,我们要有所取舍。我们痛苦于精神层面的理
想要受制于现实外界强加标准,有时候我们无意识的陷入这样一种圈套当中,认为MP3一定
要有收音,认为用计算机的时候一定要点开始菜单,认为人到了一定的年龄就应该结婚??


有一天我终于知道了除了实用应付以外还有学问的道理,决定要献身学术,于是我终于体
会到在一个复杂的社会里面要生存又要有所坚守是多么的困难,我开始理解一个古老而又
年轻的IT企业是为什么在行业里面赢得尊重,而她的命运又可以因为非种族的原因牵动成
千上万人的心。我开始考虑去买一个内置哩电池而没有收音的随身听。

2008年9月12日星期五

今天我生日。。。。

又到生日啦。。。每年的这个时候都要花钱请吃饭了,都要被灌倒了。。。。
来个国际惯例吧。
1.感谢我的父母,感谢他们给予了我生命并含辛茹苦的养育了调皮的我这么多年,感谢他们的宽容和支持,谢谢你们,感谢我的爷爷奶奶,二老很疼我这个大孙子,感谢二老教给我的很出处事的道理,感谢我的小姑姑和小姑爷,小姑姑从我小的时候就对我很严厉,但遗憾的是我当时没有体会出她的苦心,感谢小姑爷对我的疼爱~~嘻嘻!感谢大姑姑和大姑爷,他们从小就很宠着我,从小就相信我一定会成大器,谢谢!感谢我的大哥哥和婶婶,你们谆谆教导我不会忘记。感谢小哥哥和婶婶,小哥哥教给了我很多为人处世的方法和成功的方法,让我少走了很多弯路。
2.感谢我在大学时光里认识的两个特比特别铁的哥们,mouse和疯子。他们在这3年里给了我很多的帮助,感谢他们无论我多困难的时候都一直陪在我身边。
3.感谢tang和yiyi,她们是我感情上的曾经和现在,但无论是曾经和现在都让我知道了什么叫做真爱。
4.感谢公司技术总监老史,他告诉我“发现问题,找出问题,查询资料,解决问题”的工作和学习方法
5.感谢老涂,在老涂身上我学到了学习编程应该怎样做,还有感谢老涂在工作的时候对我的照顾和细心的讲解!
6.感谢小翟和镜子,感谢小寨像姐姐一样的照顾我,感谢镜子在我进公司的第一天给我培训了!
7.感谢老千给我的工作机会和工资,让我知道什么是开发!

感谢所有曾经关心我的和爱我的人,感谢你们。希望你们能否永远快乐幸福!

2008年9月9日星期二

Python 八荣八耻

以动手实践为荣 , 以只看不练为耻;
以打印日志为荣 , 以单步跟踪为耻;
以空格缩进为荣 , 以制表缩进为耻;
以单元测试为荣 , 以人工测试为耻;

以模块复用为荣 , 以复制粘贴为耻;
以多态应用为荣 , 以分支判断为耻;
以Pythonic为荣 , 以冗余拖沓为耻;
以总结分享为荣 , 以跪求其解为耻;



太牛了~~~

2008年9月8日星期一

喜欢上Python

最近喜欢上Python了,太方便了这脚本语言,我喜欢这种简洁的语法形式!而且,python适合做短期开发,方便兼职一些项目!(嘿嘿!绝对不让某些人如愿以偿的。),而且,据介绍Python是用C写的哦!!我最喜欢的C语言哦!
今天很郁闷,和某某闹了点别扭,他把话说直了说死了,ok,奉陪,我david不是过了这个庙就无处容身的人,你也甭跟我说什么大道理,道理再大大不过我现在的主要任务,学习!而且我选在这个时候Python也是因为它是脚本语言,开发周期短,即使我去其他地方兼职也不会耽误我多少时间!我最不喜欢的就是,那么把责任都强调到别人身上的人,我觉得无论是作为一个员工还是一个领导(如果你想成为一个令人尊敬的领导或者受器重的员工的话),首先,出现问题,反省自己有什么地方不足,其次再去在别人身上寻找问题的要点,而不是上来就是你你你你你你不对~~!ok?

Python我给自己一个月的时间,我希望能达到自己的目标。
10月份还有考试啊。。。天啦~~~上帝我两本书都还没看完呢,数据结构这个星期是绝对能看完的而且还能看第二遍了
新thedbeina的钱凑齐了,就等支付宝把钱打到银行卡上了。各位debinaer,我们会呈现一个你想要的社区形象给你们的,相信我!

2008年9月6日星期六

一个程序员的奋斗故事,与君共勉之

这些日子我一直在写一个实时操作系统内核,已有小成了,等写完我会全部公开,希望能够为国内IT的发展尽自己一份微薄的力量。最近看到很多学生朋友和我当年一样没有方向,所以把我的经历写出来与大家共勉,希望能给刚如行的朋友们一点点帮助。

  一转眼我在IT行业学习工作已经七年多了,这期间我做过网页,写过MIS、数据库,应用程序,做过通信软件、硬件驱动、协议栈,到现在做操作系统内核和IC相关开发,这中间走了很多弯路,也吃了不少苦。

  我上的是一个三流的高校,就连同一个城市的人多数都不知道。因为学校不好也就没有指望能靠学校名气找一个好工作。所有的希望都寄托在自己的努力上了,大一开学前的假期我就开始了学习,记得我买的第一本书是《计算机基础DOS3.0》,大家别吓着了,其实当时已经普及了DOS6.22了,只是我在书店里看到了DOS4.0,5.0,6.0的书,以为像英语那样是第四、五、六册,记得当时到处找DOS1.0,现在想想也幸好我没有找到:)开学前我学完了 PASCAL,那时既没有计算机也没有人可以请教,我连程序是什么的概念都没有,只好死记硬背代码,然后拿纸写,我一直到大三才有了一台486,在这之前用纸写了多少程序我也记不清楚了,只知道最长的一个我拿A4大小的草稿纸写了30多页,我的C语言、C++、VC都是在这样的条件下入门的。所以说条件是可以克服的,希望我的经历多少给条件艰苦的同学们一点信心。第一次上机是在我姐夫的机房,我的心情激动的无与伦比,但是一上机我立刻傻了眼,他们用的是英文版的Win3.1,我的那点DOS知识都见了鬼,上机提心吊胆的一阵瞎摸,一不小心把Word弄成了全屏,怎么都还不了原,当时真是心急如焚,我以为机器被我弄坏了。第一个C语言程序,就是那个经典的HelloWorld,我调了几个星期,上机机会非常少,也没有书告诉我开发环境(TC2.0)需要设置,而且开始我都不知道有编译器,我甚至自作聪明把写好的程序扩展名从.c改成.exe,结果可想而知。大一学完了C、X86的汇编、数据结构、C++。由于精力都花在自学上了,大一下四门课挂了彩,三类学校就是这点好,挂上一二十门也照样毕业。不过扯远点说,我那么刻苦都及不了格,可见我们国家的计算机教育有多死板。

  大二准备学VC和BC,当时难以取舍,后来选了VC,不为别的,只为书店里两本书,VC那本便宜6块钱。我的努力在班上无人能及,学的日夜不分,大三有了计算机后更是如此,很多次父亲半夜教训我说我不要命了,我一直觉得自己基础差,记忆又不行,条件也不好,所以觉得只有多花点时间才能赶上别人。居然后来有许多朋友说我有学计算机的天赋,让我哭笑不得。我用的是486,16M内存,1G硬盘,当时同学们的配置都是P166MMX,我安装一个 WindowsNT4.0需要一个通宵,编译一个BC5.0向导生成的程序需要近两个小时,我的显示器是个二手的,辐射非常大,开机屏幕冒火花,看起来很酷的:),有一次程序写的太久,觉得怎么白色的编辑器背景变成了紫色,以为显示器坏了,后来才发现眼睛不行了,不过说来也奇怪,到今天我的视力还能保持 1.5,真是个奇迹。但是就是那台破机器陪伴了我两年,让我学会了VC、Delphi、SQLServer等。后来那台机器给我阿姨打字用,据她说一天她正打的开心,一股青烟夹着火苗从显示器钻出来,之后它才寿终正寝。

  大三假期找了个机会在一个计算机研究所实习,与其说实习不如说是做义工,工作了两个月一分钱没有拿。但是这两个月对我的发展帮助很大,让我早一步了解了社会,刚去的时候我当然是一窍不通,在那里我熟悉了网络,学会了Delphi和Oracle。由于工作很认真,得到了比较好的评价,在一位长者的引荐下,我开始和他们一起做项目,这使我在大三大四就有了自己的收入,大四又找了两家MIS公司兼职,虽然钱不多,但是在学生期间有1000多的收入我已经非常满足了,我终于用自己赚的钱把计算机换了。大四下开始找工作,这时我的工作经验已经比较多(当然现在想想非常幼稚),开始听父母的想去那个研究所,实习过那个部门也希望我能去,但是不知道为什么最后不了了之,这种单位就是比较官僚,我一气之下就到了我兼职的一个公司做MIS的TeamLeader。在大三到毕业一年的时间,做过了各种MIS,从煤气、烟厂、公安、铁路、饮食到高校,什么有钱做什么,工作也很辛苦,经常加班和熬通宵,从跟客户谈需求到设计、编码、测试、交付都要上。那时觉得很有成就感,觉得自己还不错,现在想想真是很肤浅。

  刚走上工作岗位的学生很容易被误导,各种开发工具让人眼花缭乱,同时也觉得很受公司器重,但这样工作永远是一个低层次的开发者。不要跟我说什么系统分析有多么多么重要,多么多么难。你以为自己跟用户谈需求做设计就是系统分析和设计了吗,国内又有几个公司能够做的很到位很规范?我是ISO9000内审员,也在Rational公司受过多次培训,拿了4个证书,还有一个公司让我去做CMM。这些我听过很多,但是很多事情到国内就变了性质,一个公司不是通过了ISO9000或者CMM就能规范了,我现在在一家有几十年历史的外企工作,里面的管理不是一般国内企业能及的。作为一个毕业不久以前没有步入过社会的学生,几乎不可能在很短的时间掌握系统分析和设计,面向对象、UML只是一个工具,关键是人本身的思想,不是说你熟悉了C++、Rose就能够做出好的设计,相反如果你具备了很高的素质,你可以用C写出比别人用C++更加模块化的程序。

  话说远一些,国内软件开发行业有一个怪圈,很多人觉得VC> Delphi> VB,真是很搞笑。这几个软件我都做过开发,说白了他们都是工具,应该根据应用的需要选择采用哪个,而不是觉得哪个上层次。如果你因为用某个开发工具很有面子而选择的话,只能说明你很浅薄。如果说层次,那么这些工具都不上层次,因为它们用来用去都是一些系统的API,微软的朋友不会因为你记住他们多少个 API或者多少个类就会觉得你很了不起,你永远只是他们的客户,他们看重的是你口袋里的银子。我也做过系统内核,我也封装过很多API,同样我也不会看重那些使用这些API做二次开发的客户,除非他能够作出自己独到的设计。

  至于有人认为C++> C那更是让人笑掉大牙,不妨你去打听一下,现在有几个操作系统内核是用C++写的,又有几个实时系统用的是C++,当然我也不是说C++不好,但是目前的内核和实时系统中C++还无法与C匹敌,至于说C++适合做应用系统的开发那是另外一回事。所以我的观点是不在于你用什么工具和语言,而在于你干什么工作。你的设计体现了你的技术层次。

  这样干了一年我觉得非常苦闷,做的大多数都是熟练工种的活,个人技术上没有太多的提高也看不到方向。所以决定离开这个城市去上海,寻求更好的发展,并且打算放弃我以前的MIS转到通信行业。

  写到这里不能不提到我女朋友,我们是在来上海前半年认识的,她大四在我公司实习,公司派她给我写文档,我们的感情发展的很快。她告诉我很多事情,她家原本是改革开放的第一批暴发户,她母亲爱打牌,输掉了几百万,还欠了很多债,她有男朋友,但是她对他没有感情,只因为他给了她母亲两万多块钱,后来还强迫她写了四万块的借条,她男朋友背叛过她并且不止一次打她,现在逼她结婚不然就要她还钱。这人居然还是一个高校的老师!她母亲把父亲给她的学费花了,因为拖欠学费她没有办法拿到毕业证。她母亲现在有病需要钱,我拿出了自己的一点积蓄并且跟朋友们接了一些,替她交了学费并给她母亲看病(后来才知道看病的钱又不知所终,就连她母亲是不是有病我都不知道,但她也是没有办法)。这个时候我家知道了一些事情,坚决反对我和她在一起,她原来的男朋友也极力破坏。无奈之下我们决定早一定离开这个伤心的城市,并且瞒着我们家。由于时间仓促,我只准备了4000块钱,她仅有的几百块钱也被她母亲要去了,我买了三张票,一张是中午的,两张是晚上的,中午我的家人把我送上船,他们一离开我就下了船,我和她乘坐晚上的船离开了这个我和她生活了很多年的城市,带走的只是一身债务。没有来过上海的我们两个性倔强,都不愿意去麻烦同学和朋友。来到上海是傍晚6点半,我们都不知道该去哪里,我们找了一个20块钱的旅馆,这个房间连窗户都没有,7月份的天气酷热难耐,房间里非常闷热。第二天我们开始租房子,因为身上的钱不多,我们基本都是步行,花了一个星期时间,不知道在浦东转了多少圈后找到了一个400块的房子,但是我们都不了解上海是付三压一,还要付半个月的中介费,买了一些锅碗瓢盆后,我们身上只有800块钱了,工作都还没有着落,这 800块钱要支持到我们拿到第一个月工资,为了省钱我们自己做饭,每天买菜只花两块钱,她非常喜欢吃(也可能她在大学经常挨饿的愿意),看到她现在这样省吃俭用我真的很不忍心。她以前的男朋友也没有放过她,经常打电话来骚扰,并且来上海看她,还说了不少恐吓她的话,她过于善良,说他以前毕竟帮助过她,叫我不要与他一般见识。以后的每天在家就是苦等面试通知,原本我想迅速找一家MIS公司解决眼前的困难,但是她坚持让我不要放弃自己的理想,终于功夫不负有心人,我找到了一家通信公司,4000块的工资虽然赶不上MIS公司给我开出的价位,但也够在上海生存。她也找到了工作,第一天上班她哭了,这是她来上海第一次流泪,我心里很难受也很感动。

  由于是全新的行业,我把自己降到了零点,我学的VC、Delphi、数据库派不上用场,摆在我面前的是嵌入式、协议、信令一些我从未接触过的知识。我知道我没有退路,于是拼命的学习,我把自己当做一个应届毕业生一样,一分努力一分收获,半年过去我终于熟悉了工作,并且得到了公司的表彰,薪水也加了一级。后面的日子里我们省吃俭用,把欠朋友的1万多块钱还了,日子终于上了正轨。这时女朋友告诉我她想考研究生,我也很支持,于是她辞职在家备考。

  另外,在这里我要感谢我的ProjectManager,他原来是一个大通信公司的产品经理,对人非常和善,我从他那里学到了很多知识,而且他也给了我许许多多无私的帮助。在工作上他给我充分的空间和信任。记得公司安排我维护一个接入服务器软件,由于代码量不算太小(5万行),资料和文档都不齐全,我维护起来非常吃力,所以想重新把它做一遍,公司领导不太支持,可能觉得工作量太大,但是他极力支持我,私下里他让我放手去做,我的维护工作他挤时间做。在他的支持下,我花了半年时间完成了接入服务器的软件,并且实现了一个相对完整的TCP/IP协议栈。在这里我学会了嵌入式系统设计、驱动开发、TCP /IP和很多通信的知识,我花了一年时间终于使自己从MIS开发转到了通信行业,并且站稳了脚跟。我的开发大量是对硬件的直接操作,不再受微软的操作系统,VC、Delhpi这些开发工具的约束,我终于看到了另外一片天空。

  我做事情喜欢追根问底,随着开发的深入,软件开发与硬件联系越来越紧密,硬件知识的匮乏又对我的发展产生了障碍,而且芯片技术基本上掌握在国外公司的手里,这对做系统级设计是一个非常大的制约,一个新产品出来,第一道利润(也往往是最丰厚的利润)常常都被IC公司如Intel、Motorola赚去了,国内的厂商只能喝点汤。所以我决心解决自己的硬件技术障碍,并打算离开通信行业,进入IC设计相关领域。

  当然我明白如果我对硬件了解的非常少,没有哪家IC公司会仁慈到招我这样一个一窍不通的人来培训。所以我必须努力打好基础,学一些相关知识为以后做准备。就像我开始从MIS转到通信一样,我看过大量通信方面的书,并且给一个ISP做过RADIUS计费分拣台,在这样的背景下这家通信公司才给了我这个机会。我在的通信公司是做系统设计的,有不少PCBLayout硬件人员,平常我就注意向他们学习,由于我做的是软件,在公司看硬件资料不好意思,所以开始只好在家看,刚来上海工作我连续一年都在加班,后来不加了,因为我要挤出时间学习,通常我12点左右睡,第二天5点半起,我上班比较早,地铁上如果人不多我也用来看书。学习当然不会是一帆风顺的,有些实在不懂的问题就积累起来问硬件人员,他们的帮助使我学习进度快了很多,因为在没有人点拨的情况下自学,我的一半时间是花在解决疑难问题上,但这种问题经常是别人的一句话就可以让我豁然开朗,我非常庆幸我有这样的学习环境。在后面的一年里,我学会了看硬件原理图,学会了简单的硬件设计(模拟电路方面还有不小的差距),事情就是这样的,当你安安份份做软件,别人永远认为你是软件开发人员,在你开始学习硬件时别人未必会认同,有位中兴通讯的朋友还对我说过,一个人不可能把所有东西都学完。我也明白这一点,但我希望自己做的更好。但当你熟悉硬件后大家又会觉得你好像原本就是软硬件都懂的,同事们也都习以为常了。这个时候我可以把硬件资料堂堂正正的拿到公司看,没有人再大惊小怪了。让我比较自豪的是我通过自己的努力做了一个IAD(软交换的终端设备)系统方案,包含软硬件的选型、设计等内容,这个方案得到了公司和同事们的认同,让我感到非常欣慰。

  技术是相辅相成的,当我的硬件有了一定的进步后,我的软件设计也有了很大的提高,我可以从更深层次理解问题,我做的接入服务器CPU是 MotorolaPowerPC860,熟悉的朋友都知道860QMC与软件的批量数据传输通常采用BD表的方式,硬件人员做驱动的时候习惯采用固定BD 表,每接收或发送数据都将数据从BD表拷贝到用户Buffer,或从用户Buffer拷贝到BD表,由于理解的比较深入,我自己重新实现了这个过程,采用动态BD表的方式,驱动从一个网口接收数据,提交给我的软件进行三层交换,直至从另外的接口发送出去,没有进行一次拷贝。这样的设计大大提高了性能,使系统的指标接近理论值。软硬件的结合使我的设计水平上了一个台阶。我现在写的这个操作系统,编译后我把程序反编译成汇编,找出其中不优化的代码,然后在C程序中进行调整。举个例子,很多CPU没有专门的乘法指令,这个大家应该都知道,在这种CPU上进行一个乘法操作常常会花费大量的指令周期,有的朋友会说这个我知道,我会尽量避免采用×号,但是事情往往不是那么简单,你知道C语言中数组的下标操作是怎么实现的吗?仔细看看反汇编的代码你就会明白,同样是通过下标的定位操作,C编译器会有时候会产生位移指令,但有时候会用乘法实现,两者效率往往是天壤之别,所以明白这些问题你才能将系统性能提升到极致。这些问题就不多说了,有兴趣的话以后可以共同探讨。

  话说远一点,我由衷的希望在软件上做的比较深入的朋友们有机会学学硬件以及其它相关知识,尤其是做底层开发和嵌入式设计的。这对软件技术的提高有非常大的帮助,否则很多事情你只知道该这样但不会明白为什么该这样。我这个观点在我现在的IC公司ProjectManager那里也得到了验证。他告诉我们公司现在的802.11芯片产品的软件经理原本是做该芯片硬件设计的,某某某原本是做软件的,现在在做IC,类似的例子还有很多,只是在国内这样的风气不是非常流行。

  我有一些心得体会与大家分享,只有当我干好本职工作后,我才会学习与工作关系不大的技术,这样公司的上司才不至于反感,在入门阶段的问题我通常不去问那些资深人士,而是问一些资历比较浅的朋友,比如刚毕业不久的学生,因为他们往往会跟你详细的讲解,而资深人士通常觉得你的问题太简单,所以回答的也很简单,我又不好意思多问。等技术上了一定的层次后我才会问他们,他们也能给你比较深入的回答。另外,有些朋友说我机会比较好,他们也希望能从事新的工作可惜没有机会,我听了只有苦笑,我的机会了解的人都应该知道,我没有出生在什么IT世家:)也没有谁一路提拔我,所有的路都是自己走出来的,我母亲去世比较早,我的后母(我叫她阿姨)看着我努力过来的,一次她看我大年30还在写程序,她说像我这样努力木头都能学出来。

  我的最终目的是IC而不是PCB,所以我下一步的准备开始学习IC设计的知识。公司的同事没有懂IC设计的,后面的路又要靠自己了,我买了不少相关的书,在网上也查了很多的资料,我花了大量的时间去学习VHDL,并且用软件进行了一些简单的设计和仿真(没有设计ASIC,只是针对FPGA),随着学习的深入,我渐渐明白了IC设计的基本流程,同时也明白了这条路的艰辛。这个时候我已经做好了跳槽的准备,我向一家业界又一定知名度的IC设计公司投了简历,并通过了漫长的面试(4个多小时)。其他的一切我都比较满意,唯独薪资差强人意,我也明白原因,因为我是这个行业的新人,我没有经验,我再一次将自己清零了。公司老板问我6000多一个月能不能接受,我知道他也是照章办事。想想我通信行业的朋友们,基本上都是年薪10万以上,月薪过万的也比比皆是,朋友们也帮我介绍了不少待遇不错的公司,我该怎么选择,当时我很犹豫,我热爱我的事业,我向往我的追求,但我也是一个普通的人,我也需要养家糊口,我也想早一点买房买车。生活给我出了一道难题。

  


----------------------------


爱因斯坦在63岁时说过“一个人没有在30岁以前达成科学上的最大成就,那他永远都不会有。”这句话给了我很大的压力和震动,我马上就26岁了,离30只有四年时间,我必须抓紧这几年宝贵的时间,努力达到我技术上的最高峰。为了这个理想,为了能离自己的梦更近一些,我选择了这家IC公司,我明白自己的薪资和公司刚进来的硕士研究生相差无几,但为了今后的发展只能忍受,一切又得重新开始。换行业是一个非常痛苦的过程,尤其从一个春风得意的位置换到一个陌生的岗位,感觉象从温暖的被子里钻出来跳进冰水中,让人难以接受。在原来那家通信公司,我是唯一两年时间涨了五次工资的员工,公司和同事都给了我极大的认可,工作上也常常被委以重任。但现在这一切都成了过去,在新的公司我只是一个新人,没有人知道也没有人在意我过去的成绩。我决定重新开始,我把自己看作新毕业的学生,我要用自己的努力得到公司的认可。进入新的行业是非常痛苦的,我告诉自己必须忍受这一切,虽然外面有很多诱惑,但是既然作出了选择我就不允许自己轻易放弃。

  我现在已经在这家新公司上了一个多月的班,开始非常艰难,现在慢慢适应了。第一个月结束时,TeamLeader找我谈话,说我是新进员工中最优秀的一个,我心里很欣慰,这也算对我努力的一个肯定吧。在这里还要感谢我的女朋友,她给了我很大的支持和鼓舞,每次在我动摇的时候她都在鼓励我,让我坚持自己的理想,刚来上海是她让我不要勉强去做MIS,这次也是她让我顶住了月薪过万的诱惑,没有她我可能不会有今天的成绩。

  现在的公司有自己的操作系统,自己的CPU、DSP和其它芯片,在这里我能学到世界上最先进的技术,我们的设计开发不再完全依赖别人的硬件和系统,这让我很开心。我打算等工作步入正轨后,全力学习新的知识,实现我的理想。

 暝诤竺娴牧侥昀镂腋约憾ㄏ铝思父瞿勘辏?nbsp;

  一.努力做好本职工作,在工作上得到公司和同事们的认同;

  二.努力学习IC硬件设计知识,多向同事请教,并利用一切机会多实践;

  三.实现我的实时操作系统的主要部分,完成TCP/IP协议栈模块,并免费发布源代码;

  四.和我女朋友结婚并买一套小房子,这是最重要的,因为我明白事业是可以重来的,但是珍贵的感情很难失而复得。

  在这里提一下我现在开发的操作系统,它是一个实时嵌入式系统,目前支持以下特性:

  a.支持时间片轮转调度和基于优先级调度,最多64个优先级;

  b.抢占式实时内核;

  c.为了便于移植,主体用标准C实现;

  d.汇编代码非常少,不到100行;

  e.支持任务管理,各任务有独立的堆栈;

  f.进程同步和通信目前完成了Semaphore,MessageQueue正在调试;

  g.实现了定时系统调用;

  h.可以在windows上仿真调试

  我还打算下一步实现优先级反转保护,EventFlag,DataPipe,内存管理(以前实现过)、驱动接口等。

  在这之后我还会努力完善它,比如加入文件系统,协议栈、调试接口等。希望朋友们提出自己的意见和建议,在此不胜感激!

  后记:

  就像有的朋友说的,我的经历或许会给一些朋友产生误导,在这里我必须说明一下。我来上海以前学习过于拼命,常常晚上只睡3个多小时,我身高1米71,那时只有108斤(我现在130多),家人也说我这样拼命活不过60岁,但是当时的我太固执,我对他们说只要能实现理想活50岁我就够了。那时的拼命使我的身体受到了影响,有一次早上突然腰肌剧痛难忍,痛的我倒在床上站不起来。虽然我现在已经比较注意,但有时候还会隐隐作痛。后来在女朋友说服了我,来上海以后我不再如此。我经常引用父亲的一句话“身体是革命的本钱”。

  而且我也发现拼命不是办法,我可以熬一两个通宵,最多的一次我连续工作了三天三夜,但是我半个月都没有恢复过来,这样是不是得不偿失?学习工作应该是一个长期的过程,像马拉松而不是百米冲刺。我现在非常注意调整学习和工作的强度,我要保证每天尽量有相对充沛的精力,一些年轻的朋友觉得自己也应该拼命努力,这让我多少有些担心,如果我的故事能让你在学习工作上多一点兴趣,我会感到很开心,但如果误导了某些朋友,让你做一些不值得的付出,我会感到很内疚。

  技术没有贵贱只分,我以前换行业是因为自己的兴趣所致,而不是对哪个行业有什么偏见。我希望我的经历不要给朋友一个错误的导向,觉得我始终向更高的技术发展。其实各行各业做到顶尖都是很困难的。话又说回来虽然技术没有贵贱,但是门槛是有高低的,无论如何,做IC的门槛要比做网页的高,这一点无可否认。国家各种人才都是需要的,但是作为个人奋发向上的想法还是应该有的,努力在自己喜欢的行业上做的更好,而不应该停留在比较肤浅的层次上。

  我是一个自己觉得比较有自知之明的人,或许我最大的优点就是知道自己有很多缺点:)。我的故事中很多的曲折和错误都是由我的缺点造成的,希望大家用审慎的眼光看待我的经历,不要被我的“花言巧语”所迷惑。我学习有些随心所欲,这给我带来了无尽的麻烦,也大大阻碍的我的发展。记得我小时候成绩比较出色,但是后来学习严重偏科,导致我中学成绩一再滑坡,也没有考上什么好的学校,小时候的一个朋友,当时的成绩和我相仿,但是没有我这个缺点,她上了清华,后来在去了美国深造,在一个著名导师手下研究理论科学,这未尝不是一条更好的出路。另外我的学习方法也是在不断改善中的,过去的学习过于讲究数量和时间,那样学习既苦而已效率不高,现在我非常注意学习的效率和技巧,这样才是学习的捷径(当然不是指投机取巧),比如说学一相对陌生的技术,如果有条件,不妨问一问有经验的人,不需要问很多,往往他不经意的几句话会给你非常大的帮助,甚至超过你看一个星期的书。带着这样的思想再去学习你会节省很多时间,这样何乐不为呢?这些年中我学了不少的东西,由于开始非常盲目,所以学的东西杂乱无章,现在回想起来让我啼笑皆非,我把大量的时间浪费在一些没有必要深入了解的知识上,毕竟一个人的精力是有限度的。很多朋友很我一样都背过五笔字形,的确它是一个不错的输入法,但是对一个研发人员它绝对不值得你去背,你的时间应该花在有价值的地方。我这样的事情还做过很多,我背过CCED、WPS的命令和快捷键,在dBase基本退出历史舞台后我还花了很多时间去学习它的使用。所以我的学习在前期缺乏规划,没有明确的短期目的、中期目标,只有一个虚无飘渺的长期的理想。这就像做设计一样,好的设计是从需求抽象到代码有很多过程,而不能得到了需求就立刻开始开始编码。

  当然这么些年的学习和工作多多少少有些收获,下面我说说我的一些学习的心得,这些方法未必正确,我也在不断探索和改进中。我的学习和工作有相对明确的目标,我不会一时心动而去学习某一技术,在下决定之前我会考虑很多,包括长期的发展,个人路线的规划,需要付出的代价、可能遇到的困难及解决的办法等等,在决定后还会制定更加明确的计划,包括短期、中期和长期的,身边可以利用到的资源(包括好的书籍、资料、软硬件环境,也包括有经验的朋友或者师长),以及每一个阶段是怎么过渡到高一阶段的计划,往往在一个学习阶段一旦上路后会走的相对顺利,但是跨阶段通常比较麻烦,比如从学习基础知识转到实践。另外我买书也有自己的方法,现在世面上高质量的书远不如低质量书多,对于一个陌生的技术,往往在第一次买书会选择错误,即使买到一本好书但是它的方向也未必适合你,所以我通常会先在网上查找一些该技术的介绍,有了一点点概念后再去买一本比较薄、相对便宜并且内容相对泛泛而谈的书,这是国内作者最善于写的书:),再把它浏览一遍后我就会基本明白这门技术的要点,后面买书和制定计划就会明确的多。否则一开始就想找本好书往往比较困难,而且买回来后努力学习,有时候学了一半才发现是本低质量的书或者是相对过时技术,让人非常懊恼。另外让有经验的人帮你介绍,通常也是一个不错的选择。

  有些朋友想学通信、嵌入式开发,但总觉得自己没有软硬件环境,我就按我的了解给大家介绍一下怎么建立这样的环境,当然我了解的只是我学习和工作的方向。通信我做的是数据网方面的工作,包括TCP/IP、二三层交换、对接入网、H.323和软交换也有一点认识。这些软硬件环境都是可以在PC上构建的。你甚至可以在一个没有网卡的PC上建立一个包含多个路由器、接入服务器、VoIP网关、网守、主机等的仿真网络环境,而且与实际的网络相当接近,当然这需要你有清晰的网络概念和一定的网络知识,我一直在努力开发一套软件将这个过程简化,目前试验已经做完,我可能会将它融入我的操作系统外围扩展软件中。这样的方法我无法用简单的语句讲的很清楚,我可以说一下大概的思想,就是在PC上实现仿真网卡,(知道Windows怎么在没有网卡的机器实现虚拟网卡技术的朋友都应该会明白),然后每一个仿真网卡对应一个虚拟设备,如路由器或者主机。你也可以借助第三方工具完成部分工作,如VmWare等。我现在就是利用一个仿真网卡做自己的开发的。

  至于嵌入式开发环境更加容易实现,PC就是一个非常大的硬件平台,现有的嵌入式操作系统通常都支持X86,你可以在上面做开发,通过软盘Boot或者使用虚拟机装载,我用VxWorks做了试验,在一台PC上跑Windows和VxWorks两个系统。另外Windows上的兼容DOS的16位仿真 X86环境也为很多操作系统提供了绝佳的试验环境,我的操作系统在Windows上就是这样实现的。Linux在嵌入式中应用也比较广泛,它在网上有大量的资料,而且也相对比较容易实践。同时很多完善的嵌入式开发环境支持软件仿真,如Tornado、WinCE等。

  前段时间处理了很多事情,一直没有写下去,花光了所有的积蓄买了一套房子,同时把户口的事情也基本办完了,这几天稍微缓口气。昨天跟我的一个老上司见面聊了半天,心里感慨万千。他从外在条件看让不少外人羡慕,二十多岁做过到了863项目的负责人,博士毕业的爱人单位也非常好。现在三十出头的他在一个通信公司做产品经理,工资虽然不算高但也有一两万,而且还持有股份。但是我们了解的人才理解他的艰辛。“白领”这个词在一些人看来是仿佛是一个动人的光环,但是在我看来是一个无奈的名字,每天行走在大街上,来来往往的车流中有多少是“白领”的?又有几个“白领”住的起高档的住宅?在上海一套别墅300万不足为奇,按揭贷款下来总额接近600万,年薪二十万在上海算是一个中高级“白领”,高额的税金去掉了你百分之几十的收入后,这样算下来不吃不喝也要四十多年,加上生活的其他开支,注定了你与这样的住宅无缘。看着外面一套套别墅,一辆辆好车,我不知道它们是谁的,但我知道其中没有什么白领。我觉得自己很渺小,在这个喧闹的都市中我如同一只蚂蚁,但我有不甘于平凡,我不愿做一个单纯的“白领”。

  其实很多朋友并不了解我,我不是一个追逐时尚技术的人,我只是不愿意做一个所谓的“白领”,更加不愿意做一个单纯的“程序员”。我不甘愿平凡的生活一辈子。我在不断的努力,我的方向非常明确,我要做多数人不做和做不到的事情,很多朋友对我这样频繁的换方向不理解,觉得一个人只要熟悉一种技术就可以了,对于这样的看法我只能说你浅薄,现在的大的系统和产品往往都是软件、硬件和应用相结合的,我要做的不是哪个方面的专家,而是希望能够成为系统设计师。我不相信一个只精通发动机的专家能够设计一辆好车,同样我也不相信对硬件一窍不通的人能做出一个操作系统,或者一个对财会没有一点概念的人能设计出一个优秀的财务软件。在工作中我发现社会上非常缺乏边缘人才,尤其是在国内。在国外一个人软硬件兼修非常普遍。如果设计产品的人只了解他的专业那么是很难有出色的设计。所以我必须趁着自己年轻学的更加广泛一些,这样才能提高自己的综合素质,这也是为什么高校那么多非专业课程。学习工作了这些年,实际上都没有脱离IT 这个行业,我现在的公司开发一个系统时,先是将最终功能列举清楚并分析可行性,然后划分哪些是用芯片实现,哪些是用硬件电路实现,哪些是用软件实现,这样的设计才能做出最好的系统。如果一个设计者单纯只懂一个方面是不可能做到这一点的。

  自负常常伴随着无知,记得我大学毕业时,论文答辩会上我和专家组组长争起来了,因为我对自己的设计非常得意,而他虽然是鸡蛋里挑骨头,但是由于知识非常有限,我无法回答他的问题,所以有些“恼羞成怒”。我原来一直喜欢用“所谓”最好的开发工具,记得做过一个愚蠢的设计,一个排课表的软件我用 VC+Oracle开发。这些经历我牢记在心,时刻提醒自己学会谦虚。我的亲身经历加上我对一些身边朋友的观察发现这样一个现象。当一个人只会他认为最好的技术,而对其他的一无所知,这样的人经常是目空一切。

  从第一个“HelloWorld”到今天的操作系统,前前后后写了很多代码,从这中间我也积累了很多心得。由于我是在没有人指导的情况下自学编码的,所以走了很多弯路,也犯了不少错误。最初我写程序全凭自己的感觉,写一个新程序对结构设计不很重视,以为学好语言,数据结构就可以写出好的程序,其实远不是这样的。没有设计的情况下,也可以写,但是程序无法写的很大、很复杂。我个人的经验是这样的系统超过8000行我就无法控制了,以前我用VC写过一个 Windows下的应用程序,大概8000行左右我对它失去了控制,整个代码一团糟,这8000行倒是可以相对稳定的运行,但是我没有能力再增加什么新的代码,动辄前后冲突,要么就是新代码与旧设计格格不入,需要调整旧的程序。最开始我写程序喜欢追求代码的精巧,别人很多行写出来的代码自己只写很少就可以实现,感觉那样比较酷。其实这样也是非常错误的,我现在写程序非常注重结构设计,为了结构清晰我愿意牺牲一点效率。

  下面一段话是我写程序的座右铭,希望与大家共勉:

  Makeitrightbeforeyoumakeitfaster.

  Keepitrightwhenyoumakeitfaster.

  Makeitclearbeforeyoumakeitfaster.

  Donotsacrificeclarityforsmallgainsinefficiency.

  BrianKernighan

  另外补充一点:我和我的女朋友现在非常好,双方的家人都认可了,我们决定在近期结婚。


------------------

这篇文章出自何处。我搜了很多,都是转载。都不知道原作者是谁??????????????????


----------------------------


怎么这么眼熟啊

在哪里见过呢


----------------------------


最讨厌就是还没做出来的东西就先废话一大堆.先为自己立传云云,来满足自己的虚荣心.真正的牛人只拿产品先说
话.归根到底还是浮躁啊.


----------------------------


楼主应该把转贴说明放在前面而不是后面。说实话我也找了这个原帖的地址很久。


----------------------------


好长,收藏了慢慢看


----------------------------


问题是,我最早看到这个帖子是6年前,为什么6年了还一直只有小成呢?



----------------------------


。。。。。。。。



----------------------------


很早就看过,不知道原贴的作者现今何处……

也许早就成名了,但是他却忘了自己的这篇文章,有这个可能


----------------------------


多年前的帖子 我估计作者限制极牛!!!

程序员修炼

程序就是一系列按步骤进行的操作序列,它有好多种级别,比如最低级的微程序、次低级的汇编程序、高级的各种编程语言程序、最高级的脚本语言程序,也许我列的不对,但没关系,我要说的是不管是那个级别的程序,其本质都是操作的逻辑序列。大多数系统和应用程序都是建立在高级编程语言上的,比如C、 C++、C#、FORTRAN、BISIC、JAVA等等,就让我们只关注这一级的编程能力吧。因此如果一个程序员的逻辑能力不高,他永远都不能成为一名具有合格职业水准的程序员,我们在下面的讨论有关编程能力的方方面面,最终都是为了最大程度地提高和实现一名程序员的逻辑能力。

一、掌握基础知识:十六年寒窗的持续积累

从7岁读小学起,经过16年的学习,你从软件专业本科毕业后,必须完成以下几门专业课程的学习:计算机组成、操作系统原理、汇编语言、数据结构、编译原理、数据库原理、软件工程、结构性设计语言(PASCAL、C)、面向对象设计语言(C++、C#)、计算机网络等,你最好还懂一些算法分析、分布式系统、计算机图形学、形式逻辑、人工智能原理、软件设计模式、软件构架/框架等研究生的课程,16年来,你积累的除了知识,更重要的是形成最适合自己的学习方法和工作方法。这些是你具备程序员职业水准的基础能力,不要受什么计算机软件怪杰之类传奇的影响,那不过是小概率事件,而且这些怪杰们就算没有读过软件本科和研究生,也往往自学了大多数专业课程,很可能比在校学习的学生对这些课程的精髓部分理解的更好,还有他们的工作方法和思维方式是特别而高效的,但普遍性差,可以借鉴,不宜模仿。好,所以现在你只需要问问自己,那些课程和知识都学会并掌握了吗?如果是,那就准备好进行实践了。

二、在实践中提高:成为一名高水平的Coder

好了,你毕业了,在校功课都不错,也找了一个专业对口的工作,你想大展鸿图了,可是别急,你的翅膀还不够硬,不信我们说来看看。

通常,你在工作中都会用到某一种单位/公司固定的操作系统和编程语言开发环境,比如Windows、UNIX、LINUX等操作系统,又比如用 VC、VB、PB、Delph、JAVA、Motif/XWindow、QT、OpenGL、OpenInventor等编程语言和开发环境,我们在后面把它们合称为开发环境。就在校学习的有关开发环境的知识而言,大概你距工作需要的差距是不小的,当某个操作系统和编程语言环境成为你的饭碗时,就不应也不能用通过课程/认证考试之类的眼光和要求来评价你的能力,即使你能考100分。你需要深入地学习该操作系统和编程语言环境的各类开发手册的所有内容,你会说大多数你都用不上,其实你既对又不对,对的是单从使用的角度而言,你确实用不上开发手册的大多数内容,比如庞大的VC开发类库和复杂的开发环境,你在实际工作中能用到的不到总数的1/10或1/5,不对的地方在于,你用到的部分不是孤立存在的,它们是整个体系中的一部分,只有对整个体系有了一个较完整的了解,才能得心应手、随心所欲地用好你用到的部分,你才算初步具备在这种开发环境下进行Coding的职业水准(还远不够程序员的职业水准呢),而这只是刚开始。如何才能真正掌握一种开发环境的全面的知识呢,最原始的办法就是读开发指南/教程、参考手册,一般来讲,学习开发指南/教程时,你如果是一个认真的人,都会完成5/10~7/10左右内容的学习和练习,如果你想成为职业选手,就应该完成9/10以上内容的学习和练习。参考手册不同,大多数所谓的“ 程序员”们只是用到了才翻翻,这差的太远了,你应该象读开发指南/教程一样,每个环节都要读,比如VC,参考手册中的每个类,类的每个函数,都要读上几遍,它们往往是一小伙一小伙地纠缠在一起使用的,开始时读得你毫无头绪、心烦意乱,不要紧,还有一手呢,如果你开发环境安装的全面,它们往往都有开发商做的demo例子可看,你就进入另一个境界了,开始时你关注demo中的具体技术,后来你发现这些demo的程序写的都还算不错,结构简单但合理,如果你真的用心,就一定能发现一些个别的demo是极品,它所展现的程序逻辑结构是你设计不出来的,你现在有点更关心它的程序设计构架,甚于对你原始目的(某种相关的技术/技巧)的关注,这时的你,开始了从一名Coder向一名Programmer的转变,你会忍不住要看看开发商提供的源程序,比如.h 和.cpp,通常你会找到include路径下所有的.h程序,你才知道,哇!好多好多东东在参考手册中都没提到,你要学的太多了,没时间顾及其它的业余爱好了,现在知道为什么程序员是年轻人的职业了吧,你要有足够多的时间才行,即使你的智商有160。如果你走到这一步,在你工作的团队中,已经是经常有人向你请教技术问题,经常有人请求你帮忙debug,你已是公认的“高手”了,别得意,因为你仍然是个Coder,为什么这么说呢,你想想,你已深入了解了这个开发环境中的各种技能,知道一名Coder如何用好这些东西,可是你能设计的出提供给Coder们用的东西吗?唔……,你想了想,可能还不太行。对了,就是这样,你还是一名小我境界的程序员呢,本质是个Coder,当然已是一名高水平的Coder了,然而你需要进一步登堂入室才能成为一名真正的程序员。

让我们继续吧,通常你都是从精通一种编程环境开始的,假设你已经较为精通在Windows下用VC开发软件了,这时在技术和技巧方面你将面临一小一大两个挑战,第一个小挑战是如果公司/单位改换了开发环境,比如用LINUX下的QT交互语言工具进行开发,你不过是把前面掌握VC的过程再来一遍,由于在主观上经历了VC工具的学习过程,在客观上各种开发环境都有太多相似的方面,这回你掌握的应该较快。要小心,在这时第一次诱惑之门打开了,因为你感觉良好,看!这回这么快,我就这么好地掌握了新的开发环境,你开始关注其它暂时还用不到的同类环境,比如VB、Delph、JAVA,如饥似渴地掌握各种开发工具,证明自己的学习能力和价值,但你忘了一点,你仍然是个Coder,只不过是一个在好多开发环境下都能编程的Coder,就像你生活在中国,因而精通了汉语,工作需要你又掌握了英语,然后你就来了劲,把俄语、日语、阿拉伯语、拉丁语,等等等等,都学习个遍,我只能说,有点BT。你忘了自己是个职业人,同一类的东西工作中用得到才需学习,太多太多的Coder们喜欢在一起比较和炫耀自己会掌握了几种开发工具,不信你看看招聘时的求职书就知道了,sigh!他们中绝大多数人永远都只能停留在这个层次上,心浮气躁,一生都再也当不成真正的程序员了。总结一下,其实你在这时需要的是对自己掌握新开发环境的能力的自信,而不是一遍遍地重复来证明自己。第二个大挑战就是你明白了只掌握VC是不够的,你发现自己有点浅薄,有很多东东你会用但你不太懂,很多方面支持VC编程的知识你都没掌握,比如操作系统的源码、网络协议知识、Windows 的注册表、进程和线程的基础知识、硬件驱动方面的知识、ActiveX、Windows 庞大的 API,又是一个等等等等,这些基础知识的学习和掌握可是要花费大量时间的,你再一次深切地感到时间太不够用了,因为这时的你大概有许多俗务缠身了,所以有点沮丧,还不用提IT业每天不知有多少新东西在发布,KAO,永远都跟不上,越拉越远了。哎!别气馁,振作一点,你还是忘记了自己是个职业人,既然好多东东在工作中你永远都没机会用,那么干嘛要学呢?用什么才学什么,最多预测到马上要用什么,先一步学什么好了,要知道没有人是真正的、无所不精的全科大夫,除非你是神,但如果你还在耐着性子看这篇文章,你肯定是个人嘛。

OK,一般工作后三五年,你经历了上述过程,经受了诱惑和考验,终于明白了一个道理:你要的是强劲的学习知识的能力,是对某种软件知识/技能的有深度的精通,一种摸到它的根的深度,而不是已掌握的技能的种类和数量。这时无论谁用他掌握了多少种你不会的技能来吓唬你都没用,你对他的层次只有蔑视。通过几年的学习和工作,要记住最重要的一点,永远最重要:对自己学习IT知识能力的自信,一个程序员一生都要不停地进行高强度的学习,用心问问自己,有没有这个自信?别用虚荣心来骗自己哦,如果没有的话,那就不必花费你宝贵的时间向下看了,作者在此感谢你有耐心看到这里,现在建议你关闭这篇文章,趁着年轻,当机立断转行吧!

三、注重逻辑:成为一名职业程序员

好,再前进一点点,你就要成为一名职业程序员了,让我们继续来完成这个任务吧!我们在前一节提到过,“你发现一些个别的demo是极品,它所展现的程序逻辑结构是你设计不出来的,你现在有点更关心它的程序设计构架,甚于对你原始目的(某种相关的技术/技巧)的关注”,其实你是在关注这个demo程序作者的思维逻辑,所有程序的本质就是逻辑。技术你已经较好地掌握了,但只有完成逻辑能力的提高,你才能成为一名职业程序员。打一个比方吧,你会十八般武艺,刀枪棍棒都很精通,但就是力气不够,所以永远都上不了战场,这个力气对程序员而言就是逻辑能力(其本质是一个人的数学修养,注意,不是数学知识)。逻辑能力也是逐步提高的,开始时你一定是用直观的逻辑能力来编程的,怎么想就怎么编,不对就再改,在改进中提高自己的逻辑能力,从直观逻辑能力提高到抽象逻辑能力,这是很正常的。提前说一句吧,到达逻辑能力的至高境界,其表现是用数学语言来描述问题和问题的解决办法,高度抽象!好,说回来吧,你要提高逻辑能力,最快的办法就是读别人写的结构优秀的程序。优秀的代码是百读不厌的(这句话是我抄来的),暂时放放对其中某种技术和技巧的关注吧,你要推导和学习的是这些好程序的逻辑结构,它们是被精心设计出来的。你可以先捂住这个demo程序,自己设计一个功能相同的程序结构,然后比较一下demo的程序结构,如果差距较大,那你就不应简单地改进一下,而是要把demo作者设计的过程在心里复原一遍,做到这一点也许有点困难,但这种事干的多了,你就会越干越快,越来越得心应手,你的逻辑能力飞速提升,你能看得上的逻辑结构优秀的程序开始不多了,下一步就是练习。从工作中开始吧,如果你有空闲,你需要做至少两类练习,一类是算法练习,所有的经典算法都是经典的逻辑,题目有的是,像个好学生一样吧,每年的国内国际编程竞赛都有逻辑要求非常高的题,你可以只选一两道难题来做做。当你可以把复杂的单递归程序(只有A调A)变成非递归程序时,已经不错了,如果你能看得懂双递归程序(A调A、A调B、B调A、B调B都有),我为你鼓掌!你不必往下看了,我有点不好意思啦――班门弄斧,你快滚蛋吧!另一类是把以前和当前你工作中你不满意的程序推倒重新设计一遍,这非常重要,省时省力,因为你熟悉需求,技术上也没问题,目的就是改进程序的逻辑结构,很划算哦,唯一要克服的就是:你对推翻以前工作中那点小小成就的心理障碍,如果你真想优秀,说句粗话:这点心理障碍算个屁,一遍遍反复地推倒已有的成果只能使自己快速进步,放手干吧,没什么好可惜的,马恩早就在《共.产.党宣言》里说过了:在这个过程中,你失去的只有锁链(禁锢你思想的锁链)。

让我们来总结一下,经过自我否定后,再生的你尽管对过去的“业绩”还有一些眷恋,但已是一个初步具备职业水准的程序员了,掌握了相应的技术和技巧,具备了较高的抽象逻辑思维能力,最主要的特征是:能自觉地自我否定,不断地追求更高水平的逻辑能力。

在这个过程中,如果你能注意以下一些小的方面,你前进的步伐也许会快一些。

l 从编译原理的角度来理解你工作中使用的高级语言,如果你做到这一点,至少有两个好处,第一个好处是避免一大堆低水平重复出现的编译错误。一名优秀的 Coder平均在一个工作日中应该完成200行以上的源码,其编译错误应该控制在5个以下,要知道这200行源码不是一次完成的,所以大多数情况下你都要追求一次编译通过,而一名职业水准的程序员,应该进一步做到即使用purify这类的工具来检查源码,也不会存在严重的内存泄露。第二个好处是可以提高源码的可读性和效率。规范地编写你的代码使你自己的逻辑清晰,因为你明白多加几个括号和空行、多换行对齐、多注释,编译器是会自动识别的,不影响程序执行的效率,反过来,控制好递归调用和循环内的if语句才是提高程序效率的关键,要全力避免递归,但要深刻理解递归,能通过自己建立堆栈来把递归程序转换成非递归程序,要求还是较高的哦!

l 避免思维陷阱,只要你是人就一定有自己的思维惯性,这一定又会表现在你的程序逻辑中,有时你就是从这个惯性中跳不出来(谁都有这个时候),但要心里有数才行,所以你需要帮助,如果你有几个水平相若或更高的职业伙伴,太好了,当遇到花30分钟还打不下的bug时,就别浪费时间了,找他们吧,最要紧的是能思路清晰明确地表述你的问题,通常你自己在这个过程中或者伙伴中就有人把问题解决了,又快又好。另外,有几个可以良性竞争的职业伙伴是人生的一件幸事,1+1>2,大家各有所长,你最好做到及时公开你的成果,技不压身嘛,IT发展的这么快,你再优秀,那点东东也没有什么值得隐藏的,所以你可以技术或水平不够高,但千万不可以让真正具有职业水准的选手鄙视你的职业品质和行为。

l 有自己debug的特点,下面的说法作者不敢太肯定,只是经验之谈。即使在VC这种高度完善的开放环境下,你仍然应该要求自己仅凭打印语句就能 debug。这也有两点好处,第一个好处是,遇到bug你会认真想问题所在,而不是用debug工具一步步简单地追踪卡在哪儿了,你定位bug范围的方式是从大到小、从粗到精,这是一种自顶向下的思维方式,而用工具追踪,容易形成自底向上的思维方式,这不算好,你应该先看到森林,再看到树木。我反复提及:程序就是逻辑过程,大多数程序从main函数开始,是由数据结构和功能子程序组成的一个树形结构的逻辑过程(要认清即使是面向对象的程序语言也是一样的),它的执行过程是深度优先的,但你定位bug应该是广度优先的,好好想想这一点,嗯?第二个好处是强迫你思考并记住而不是用工具看到调用过程,你大脑的抽象逻辑思维能力和胳膊上肌肉的力量一样,都是练出来的,如果你的bug是程序结构上的逻辑错误引起的,这一点就非常重要了,顺便说一句,最难打的 bug就是程序逻辑结构错误导致的bug。你要是真正明明白白地认识到这儿了,那我就没什么东西可以告诉你了。总之,程序员的职业水准:生产效率和程序质量,主要是取决于源码中bug的数量和debug的速度,而不是取决于编写源码的速度。给你一个我自己定义的考查一个职业程序员的指标:一个合格水准的职业程序员,编程的时间如果算一份的话,其累计debug的时间不能超过一份,真正职业高手累计debug的时间应该控制在0.5份以下,如何?你关上门悄悄问问自己,你花费在编程和debug上的时间比例是多少?如果你把程序员作为自己一生的职业,那么就永远都要牢记一点:追求做一个0 bug的优秀程序员!这是任何一个想成为职业程序员的人的理想,请相信:坚忍不拔地追求实现这个理想将让你出类拔萃!

l 做好程序的单元测试,这是另一项考查你是否是一名具有合格职业水准的程序员的一个必要指标。其实在你拿到需求的时候就要准备单元测试用例了,并且这些用例将直接影响你的详细设计(有关软件设计本来是该放在第四节讲的)。我们还是打比方吧,当你拿到一个需求时,除了分析它静态的功能外,还应明确它动态的操作 /执行过程,把这个动态过程明确地用流程图画出来,比如分为A~Z的26步,其中A又可以进一步分解为A1~A5的5步,直到不能再分解为止。又比如说 A3步不可分解了,那么你应该把A3步的正常操作和所有五花八门的异常操作都列出来,确保正常的操作肯定正确,异常的操作起码程序不退出才行。这样你就要写好多好多的测试用例,说句老实话,我也从来不写!但我一般会列一个提纲,比如A3步有正常的操作a、b、c、d、e共5项,异常的操作有f、g、h、 i、j、k、l、m、n共9项,你在进行单元测试时都应该跑一遍,这样的程序都还不敢说质量如何好,但起码可以说较稳定吧!如果要想在进行单元测试时干得快、效率高,那么在进行详细设计时,你就应该把A3步中对所有正常操作和异常操作的判断都设计好,在编程实现A3步时,使得程序的结构合理高效,对不对?所以,如果你在工作中是割裂地看待软件工程中从需求、分析、设计、编程、测试等各个环节,恐怕水平很有限喔!但如果你在分析需求时就能看到测试的问题,并改进设计和实现,为此做好相应的准备工作,嘿嘿,整个软件开发过程你的效率会高很多,通常你在一个开发团队中就会高度自信的,你已越过当一名偏颇、露骨的高手的境界,成为一个平静的高手,这可是The best in the best!,用周星星的话说:是高手之高高手,因为别人看不出你高在哪儿,没见你有什么高招或特拚命干,但反正你就是干得又快又好、又省力。关于进行单元测试还有很多复杂的方法,在此本文只提到了最基本的一点,目的是让你在工作上考虑周全、安排有序,其它的自己琢磨吧,没有人能替你吃饱饭!

l 如果你是用C++编程,我再简单谈谈有关内层释放的一个小技巧,就是对所有你编写的类,在构造和析构函数中加打印语句,统计每个类在运行程序时构造和析构的地方,如果是配对的,那么起码没有对象类一级的内层在程序运行结束时没有释放,然后你就可以把打印语句删掉了,招数虽土,但管用!

l 还有其它一些好习惯,在这里我随笔写一些,你要是有不同看法也请一笑过之吧。编程时应该对齐缩进,一个缩进用一个tab键,一般是4个空格,严格遵守开发团队的编程规范也是非常重要的。一个子程序不应超过30行(不算空行),其内多重循环不应超过3层,否则都应该分裂成两个子程序,个别算法程序可以长一些,但也不宜超过200行。通常一个类的所有成员函数总和不宜超过1500行,多了就应该考虑分解成两个类(这个工作最好在设计时就完成)。每完成一小段程序,比如15~30行,就立即编译运行,不要假装高手,先敲它一大堆程序,再编译运行,妄想一次成功,体验一种假爽的、虚荣的快感,或炫耀给别人看,这么做只能证明自己是一个不折不扣的傻瓜,装酷而已。因为只要有一次不成功,你就会花费大量的时间来调程序,别人的进度在这时就远远地超过你了,平常心是道,还是修炼真功夫吧!孙子兵法里关于这一点有明确的阐述,我就不引用了,但建议你真的不要这么干,除非你确实就是这样总是一次就成功的天才,那你还看这篇文章干什么呢?我又不是写给你们这些天才们看的。再就是有学会买好书、读好书,关于计算机和软件方面的书太多了,时间有限,比如有一个叫侯捷的家伙,几乎写的每本书都不错,张国峰的C++编程也不错,这只是我的个人意见啊,好书多着呢,列出来比这篇文章长好多倍,我就不多说了。还有一招,要是你运气好,能搞到一些著名软件系统的源码,好好读读吧,在此我只能告诉你,Linux操作系统的一些源码不错,是开放的,你可以合法地搞到,其它的不要说是我建议你侵犯知识版权啊!

四、天生神力:成为系统分析员

本来就论述如何成为一名职业程序员而言,本文已基本完成任务了,但《菜根谭》有言:竭世机枢,似一滴投于巨壑,穷诸玄辩,若一毫置于太虚。既已乘兴到此,何妨多置一毫于太虚呢,作者不才,干脆尽兴写算了。

你要是运气好,直接进入了一个严格规范生产的软件企业就业,刚开始就应该是按别人做好的软件设计来实现编程,你可以有机会直接学习软件设计,当你积累的足够多了,能够对其中的一些设计提出好的改进建议,而且干得又快又好,就会渐渐地展露头角,我相信你终有一天成为一名软件设计人员(注意,不是软件产品设计人员),步入系统分析员的行列,但这还需其它的一些条件和自我修炼。如果你在一个不规范的软件企业工作,那也不错,你很可能直接就有机会进行软件设计,然后开发、测试,甚至还不得不自己定义需求,把软件开发过程的各个环节走一个遍,当然这样对你的要求更高,而且你也不容易得到及时有益的指点,在正态分布的情况下,你应该是成长的很慢。但不管就业的单位如何,如果你决心要成为顶尖软件职业选手,通常什么客观困难都阻挡不了你,然而你个人的因素可能会阻止你的前进。下面提出的观点纯属一己之见,伤人自尊之处作者在此提前道歉,并建议你除非对本文有强烈的兴趣,否则就请直接看第五节或放下别看了。丑话已说在前头了,在各种软件开发组织的发展过程中的事实也证明,只有少数程序员能成为系统分析员,我想这一点不是我杜撰的吧,因此你要是在看接下来的部分时感到气愤难当,那也实在没着,纯属活该,因为作者只是在说明自己的观点而已,你最多可以呲之以鼻,表示一下你的轻蔑好了,但没有任何理由可以骂人!

作者自己没有到微软面试过,但身处软件行业,关于微软的许多东东当然还是有耳闻的,据说微软招聘一名程序员要过五个已经成为微软程序员的面试关,而且是一票否决制,又据说大多数面试题并非编程,而是一些有关逻辑和智力的题,作者私下也做过许多流传的微软面试题,并对此做法深以为然。程序的本质就是逻辑,所以几十年前就有人提出编程是一门艺术,而艺术是要靠天份的,这一点少有人反对。一个人的逻辑能力可以不断提高,但其能到达的终极逻辑能力的层次必定为其天生智力所限制,这一点就让人不易接受了。好笑啊!人们可以公开承认自己没有某种或全部的艺术天份,但要说自己逻辑天份不够,换句话说承认自己笨、 IQ不够高,往往是要怒发冲冠的,其实这又有什么区别呢?话都说到这儿了,再次建议你如果不够自信,就跳过这一节吧,直接看第五节,好吗?

好了,把话题说回来,你已经成为一门合格的职业程序员了,如果要想成为从事软件系统设计的职业系统分析员,第一件事就是悄悄找一个标准智商测试的网站或其它渠道,严格认真的测一测自己的智商,如果IQ低于130 (正常智商是110),就请别费劲了,打消掉成为系统分析员的念头吧!好!好!先请你冷静一下,好好想想,其实微软面试时就是在测你的智商和逻辑数学素质呢,这就是本节的标题为“天生神力”的原因,因为设计就是从无到有地进行创造,无论是软件还是其它行业都一样,可以有借鉴的,没有现成的,设计就是创造!如果你IQ在130以上,又决心要当一名职业软件系统分析员,其实你不过是要准备好吃更大的苦而已,有什么好虚荣的呢?

修炼还是从基本功开始的,过程和成为一名职业程序员差不多。必须使用设计工具这一点是不用多说的。在工作中,你基本上遇到的是两类方式的设计,一个是结构化设计,另一个是面向对象设计,就个人经验而言,面向对象的设计更好。如果你工作中不得不采用结构化的设计,你必须熟练地掌握数据流图和控制流图的分析和设计,一般来讲,如果你把一个软件中用到的数据模型设计好了,针对功能化的流程,不难设计出数据流图,但下一步设计控制流图才是挑战,如果你按照需求走不通设计好的控制流图,那么你或别人在按照这个设计编程实现时,必定也走不通,没有奇迹会发生,还是在设计阶段严格要求吧,又有一点需要牢记:返工是最慢的。当你在进行控制流图的设计时,也不要妄想得到需求人员提供给你明确的指点,通常他们要是能够把需求的功能和操作次序写完整的话,你应该就感恩戴德了,从需求中整理出功能、操作的拓扑次序和条件是你作为系统分析员的职责。看看,要是没有一点图论的基础和拓扑学的入门知识,你是当不好一个职业系统分析员的,即使你天赋不错,必要的数学和逻辑素质仍然不可或缺。也不用气馁,永远没有最好的设计,只有更好的设计,反复地进行设计迭代,勇于推翻旧的设计,你将快速进步。如果你在工作中是采用面向对象进行设计的,那就更有利了,有关面向对象设计的书太多了,不用作者在此多费口舌,建议精读一本经典的书,比如北大邵维忠等编译的《面向对象的分析》,有些方法和技巧可能过时,但其逻辑的基本原理是非常正确的,其本质是,你在逻辑上是如何认识这个世界的,你就是如何设计软件体系结构的,然后读读其它书,触类旁通,自己创造机会多实践,成功自然会到来的,总之,不管是结构化设计还是面向对象设计,评价一下自己的软件系统设计方案吧,有好多指标呢,比如是否均匀和平衡?局部独立性强不强?有没有歧异的结构?有没有层次太多或太少?有没有某个层次太大、太广?是不是逻辑结构先复杂了再化简的?还是只会设计简单的,复杂不起来(这一点是笨哦,如果出现多次,请你不要意气用事,转行吧)?最重要的一点,是否容易理解、实现和改进?你自己会得出评价的。如果有机会看到别人的设计,一定不要错过学习的机会,自己推导一遍,认真比较比较,获益会较多。

走到这一步,你就应该关注设计模式了,首先还是学习,这方面的好书有的是,但一般在工作中用到的设计模式较为单一,应该多尝试一下其它的设计模式。其次必须要明白设计模式不是设计思路,也不能代替设计思路,比方你要从A到B修一条路,设计模式只是让你选择,是修水泥的还是柏油的?是高架路还是普通的,但线路必须你自己定,而线路就是设计思路,模式对思路是有影响,但不能代替,所以如果你的智商高达250,我相信你直接用汇编语言也能写出面向对象的程序来。第三在此有一个陷阱,很多系统分析员生搬硬套设计模式,全然不懂如何融会贯通,在你的一项具体工作中,往往是以一种设计模式为主,其它模式为辅的,思维不拘泥于形式才是关键,而且也为你到达更高的软件设计的境界做好准备。

唉!都不知该怎么向下写好了,因为已达到作者水平的极限了,我胡乱说一点,你凑合看吧。软件设计最终的层次是:以无法为有法、以无限为有限,这句话是李小龙说的,不是我说的。再拾人牙慧一把,类比一个故事吧,金大侠在《倚天屠龙记》里讲到张无忌初学太极,学会的标志是把刚学的招数全忘了,记住的是太极的道理和精神,和李小龙有些相似喔,软件设计也一样,忘记所有的设计模式,随心所欲进行设计才是至高境界,所以你能到达多高的软件设计的境界最终将取决于你的哲学素质,这一点实在是不好写啊,你自己领悟吧!作者只有祝福了!

五、职业人的终极目标:全面修炼,成为Leader

这一节更不好写,涉及到太多其它非技术方面的因素,特别是个人人生观和世界观的修炼,如果本帖的点击率超过作者私下期望的一个数值,那我就争取尽力厚着脸皮再补上吧。我只说一句,虽然大家都知道软件开发是一个团队性的工作,但追求参与一个大型软件系统的成功开发,是一名软件人员的本能,就像拿破仑说的不想当元帅的士兵不是好士兵,所以不追求实现大系统的软件人员,也不是一个好的职业软件人员,但你只有成为Leader,领导一个优秀的软件开发团队,才有机会实现这个终极职业目标,对不对?

debian学习笔记--添加windows字体

但是有时看到的文字还是乱码,感觉debian的字体太少了,就想添加字体,想想还是windows的字体比较多,所以现在开始添加windows字体。方法如下:
1、挂载windows系统盘。
[root@localhost ~]# fdisk -l
Disk /dev/sda: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 1913 15366141 c W95 FAT32 (LBA)
/dev/sda2 1914 9729 62782020 f W95 Ext'd (LBA)
/dev/sda5 1914 2551 5124703+ b W95 FAT32
/dev/sda6 2552 2678 1020096 82 Linux swap / Solaris
/dev/sda7 2679 3570 7164958+ 83 Linux
/dev/sda8 7014 9729 21816238+ b W95 FAT32
/dev/sda9 3571 5100 12289693+ 83 Linux

Partition table entries are not in disk order

以上是我的硬盘分区情况,windows盘为/dev/sda1
在键入如下命令:
[root@localhost ~]# mount /dev/sda1 /mnt/c

2、拷贝windows字体文件到debian系统
windows字体位置:c:\windows\Fonts,把该文件夹拷贝到debian系统的 /use/share/fonts/下,并且重命名为msfonts

3、修改xf86config-4文件
vi /etc/x11/xf86config-4
大家会看见关于字体的字段,内容如下:
Section "Files"
FontPath "unix/:7100" # local font server
# if the local font server has problems, we can fall back on these
FontPath "/usr/lib/X11/fonts/misc"
FontPath "/usr/lib/X11/fonts/cyrillic"
FontPath "/usr/lib/X11/fonts/100dpi/:unscaled"
FontPath "/usr/lib/X11/fonts/75dpi/:unscaled"
FontPath "/usr/lib/X11/fonts/Type1"
FontPath "/usr/lib/X11/fonts/CID"
FontPath "/usr/lib/X11/fonts/Speedo"
FontPath "/usr/lib/X11/fonts/100dpi"
FontPath "/usr/lib/X11/fonts/75dpi"
EndSection
把FontPath "unix/:7100" 这一行 注释掉(加#),
在另起一行添加如下内容:
FontPath "/usr/share/fonts/msfonts"

4、重新启动x,添加完成。

我用了配什么问题,大家可以试一试,有问题大家在讨论讨论。

男人和女人的经典误会

下班了,一身轻松地回到家里,本来想彻底地放松一下,可是,一不小心的一句话,却惹得对方不高兴起来,甚至两人为此大动干戈,都说男人来自火星女人来自金星,男人和女人之间,真的永远存在着一条不可逾越的鸿沟吗?

我们不妨在回家第五秒的这个时刻,看看男人和女人在沟通上的几种经典误会,从而发现你们在思维上存在着怎样的差异——

情景一: 女人的牢骚,男人的心烦

女人:我再也不想坐公交车了!挤死了!被别人踩了好几脚!

解析她:我这样的好身材,穿得这样漂亮的女孩怎么能被面包样挤来挤去的!女人希望自己扮演一个弱者的形象来博取别人的同情,看,我多么地楚楚可怜啊!

男人:又不是你一个人在挤,大家不天天都在坐车吗?

解析他:你不是天天在坐车吗?男人总是不理解女人在瞬间的情绪的风云突变,觉得不可理喻。殊不知女人的思维总是跳跃性的,昨天好好的,今天就能找出它的一百条不好的理由。

女人:别人是别人,我是我!我就是受不了!

解析她:记住,任何一个女人都认为自己是和别人不一样的。都觉得自己是惟一的,这是女人的普遍的心理,她其实需要的就是一句简单的问候语罢了。

男人:那你打车吧,我来给你报销。

解析他:这下看你还怎么说,最好能堵住你的嘴。男人是喜欢把事情变得简单的,特别是对感情上的事,更不愿意花过多的时间和精力去纠葛。男人觉得这样也是解决问题的根本办法。

女人:算了吧,你一个月能挣多少啊,你以为你是谁啊!

解析她:其实,女人想说的是,我就是嘴上发发牢骚,让你心疼一下,你以为真的会让你天天花钱打车啊,还不如攒点钱来买车呢。其实女人永远是比男人更实际的。

男人:你是不是觉得和我在一起特委屈啊,连车都坐不上。

解析他:我都已经说成这样了,你还不满足,还要打击我,我是没多少钱,可是我也是有自尊的啊,你这样有损我的尊严。男人最怕的就是女人说自己不行,自己比不上别人,那种话的伤害是致命的。

女人:是,我就是觉得委屈,看看人家天天都有车接送,天天都穿宝姿,我呢?连打车都要反复琢磨。

解析她:其实,女人想说的是我爱上你,就接受了你现在的一切,但只是希望你能对我好一点。女人既然实际,就知道自己选择的是什么和放弃的是什么,但是她又放不下自己的攀比之心,所以会不由自主地去抱怨。原谅女人可怜的虚荣心吧,如你满足不了,那么就对她多点温存吧。

男人:那你找别人去吧,我给不了你这些,你找能给你这些的人去吧。

解析他:心思简单的男人觉得你一定是变心了,被外界影响了,觉得他给不了你那么多想要的,这样强求有什么意思呢?男人喜欢干净利落。

情景二:男人的晚归,女人的质疑

女人:今天怎么回来得这么晚啊?

解析她:干什么去了啊?是不是有什么事啊,可以和我说说话吗?女人希望得到交流。

男人(不以为然地):没事。

解析他:怎么这样婆妈啊,像个管家婆。男人喜欢自由不被束缚,越管束越反抗。

女人:没事怎么就晚了,有什么不能说的。

解析她:身正不怕影子斜,我就知道你有事,否则干什么回避啊,是不是有什么其他女人了,怎么都不愿意理我呢。

男人:别胡思乱想的,没凭没据的,不要瞎说!

解析他:你太不信任我了,我就用法律术语来对付你。

女人:好啊,还要证据,心里有鬼,难怪也不告诉我一声。

解析她:女人总是会把一件事情按自己的思路往上套,特别是感情上面,女人简直是个“推理家”,有时候甚至非要把自己的推理证明成现实。

男人:我干嘛去都要向你汇报啊,我走到路上忘记拿一份很重要的文件又折回去了,你满意了吧?

解析他:男人是最能说谎的一种动物,但是对自己亲爱的人一般是不会使用这一招的,除非是你把他逼到绝路上了。

女人:哼,很好的理由,既然这么简单干嘛一开始不说啊。

解析她:从现在开始,一切都可能只是谎言了,即使女人真的信了,也还是会因为你的不当回事而继续抱怨。

男人:本来就没什么好说的,如果你非要往别处想,就随你便吧。

解析他:男人爱赌气,有时脾气上来了,会故意说一些伤害女人的致命要害的话来。顺着她的话故意激她,会让她更坚信自己的猜疑的正确,让无须有的罪名得以成立。

女人:你……你开始说谎了,你变心了。

解析她:她被气得泪流满面,就这样,本来一件小事,因为沟通上的障碍,矛盾升级成一件严重的外遇事件。

情景三: 男人的遗忘,女人的失落

男人回家,女人跟过来:你今天回家忘记什么了?

解析她:绕个关子发问永远是女人的爱好,有点娱乐调情的作用。

男人(四处打量一下):我什么都没忘记啊。

解析他:又要找茬了吧。

女人提示了下:很重要的东西,你再想想。

解析她:爱故弄玄虚是女人的天性,这样才能显示她的重要性来。

男人眉头一皱,脱口而出:今天是什么节日?我又忘了给您老人家买什么东西了?

解析他:上次不是刚买了东西送你了吗?你又想要什么了?故意找理由向我要吧?男人总是误以为物质是女人的第一需求,因为女人见到物质性的东西就会两眼泛光。却忘了女人更是情感类动物。

女人忍无可忍地大叫:三年前,每天回来的第一件事,就是叫我的名字,吻我!而现在呢,别说吻了,连名字都懒得叫了?

解析她:是不是看我已经成了黄脸婆就想抛弃我?女人总是怕老的,青春的流逝对她来说是最残忍的,她需要你在这个时候的肯定。

男人:你以前也是很温柔地接过我的包,见到我很雀跃,现在却是连个“你回来了”都不愿意说啊。

解析他:殊不知,女人骨子里的浪漫和她的年龄是没有丝毫关系的,任何年龄的女人都需要浪漫,即使是柴米油盐的生活中,也别忘了给她偶尔的惊喜。

情景四: 女人的地狱,男人的天堂

男人:你怎么还没做饭啊?

解析他:原本以为回到家,会有热气腾腾的饭菜等着,没想到却是冷锅冷灶,要知道我是推掉了三个聚会才回来的。就是为了和你一起吃饭啊。

女人(没好气的):我是你家保姆啊?

解析她:保姆一个月还有工资,你凭什么理直气壮地非要我天天做饭?其实我只是今天太累了,想出去吃。

男人:你是女人,女人就应该做这些。

解析他:不可否认,在现代的社会还有很多男人有这样的观点,认为这是男女分工的问题。大男子主义思想严重存在。

女人:凭什么啊,我也要天天上班,我也每天都要累死了,怎么就没有人给我做饭啊。

解析她:女人的倔脾气上来了,是谁都拦不住的。其实很多都市女人也都接受一个女人洗衣做饭做家务等琐碎的事,但是她希望你能觉得这些不是因为她欠你的,而是她为了爱你才做的。因为这是两个人的生活,共同的事情。

男人:我可是推掉了三个聚会回家的,你就这样对我啊。

解析他:男人的心中那些聚会是很重要的,因为他要维护社会关系。他想告诉你,我放弃了这些,是为了陪你,希望你能明白和理解。但是在女人听来就好像是一种威胁,是让她觉得自己不值得他放弃这些一样。

女人:你回家是对我的恩赐啊,我不需要。这家我受够了!

解析她:女人总是容易把问题上升到一定高度,尤其是上升到爱与不爱的高度,她自始至终关注的其实都是她在你心目中的位置,如果能够时刻感受到自己是最重要的,那么女人就会感到满足。

免费用银行的钱的独门绝技

楼主的经历和我差不多,我的第一张信用卡也是从招行的MSN迷你卡开始的,一大四小,信用额度才2000,但那时不用拿任何抵押就办下来的,当时相当满意,呵呵,于是买任何东西都刷他,为了凑刷卡次数,我不惜在超市买一次东西刷三次,经过不懈的努力,三年时间,信用额度已经增到了5万,因为有了这张卡,其他行的就好办多了,只要拿着这卡去,带上你的近期的对账单,而且你对信用额度没有要求的话,你任何一家银行基本都给你办下来,现在我已经有在北京的大部分银行的大小信用卡近20张,总信用额度有30万左右(这在我现在有车有房的情况下,我申办的基本全要求是白金卡,有的行虽然有好几张,但他给你的总信用额度是一致的)

其实用银行的钱是很容易的,只要银行不倒,你可以一直用着银行这笔钱,
(前提的是你必须要有套现的地方),这也是所有卡族最头疼的,告诉大家一个套现的办法,先去中关村找人帮你刷卡套支票,一般是一笔收20左右,也有收50 的,但一周后才给你支票,(如果你路子硬,认识的人能直接给你换成现金的话,下面的程序也就省了,或者你有直接支票换现金的地方也行)刷少了就不划算了,一般2到3万一次最好,支票怎么换成现金呢,去东大桥的蓝岛大厦西边的建行办张能入支票的个人储蓄卡,全北京好像就那里能办,一次只能入3万以里的支票,抬头写你的名字,用途写稿费之类的,就可以把你的支票入到你的储蓄卡上,两天到账你就可以提现了,一分手续费也不用,这套程序其中主要的费用就是那刷卡的 20到50元手续费,你也别郁闷,这钱你能从其他方面赚回来,你刷卡的同时,银行会给你积分,一般是一元钱积一分,凭积分可以换很多礼品,包括很多小家电,家居用品,甚至是商场购物券,或者麦当劳的餐券,(我家的小家电基本全是我积分换来的,光吸尘器就换了三个)根据我个人这几年的经验,每4万分就换价值100元人民币的礼品,你每次刷3万左右的话,就能得到75元左右的礼品,再贬值也能抵用20到50元的手续费吧,(这对一些不想用这手续套现的朋友也有启发,就是你可以办一张卡,然后每次去要买大宗东西的时候与其给现金还不如刷卡后再还现金,跑趟银行的事,能换好多积分,积分其实就是钱那)这套手续虽然繁琐,但能避免楼主用支付宝套现的风险了,其实我最近也在研究用支付宝套现的办法,其实也不是不可以,你得先找一个朋友的身份证在淘宝上开个网店,最好卖些大宗贵重物品,一般无人问津的那种,比方说名贵字画啥的,然后你用信用卡把钱支付到你的支付宝里,再从你的支付宝里支付到你朋友的支付宝里买他的大宗商品,然后他再提现给你,但用信用卡支付在线支付你必须去各银行办理移动证书,每个银行都要收几十元,然后给你各U盾啥的,还有个缺点是这没有积分,而且很多银行从信用卡里支付到支付宝里每次都有金额限制,像招行一次只能转499元,你要转2万多,得转好多次,还有好像广发行的信用卡就不支持转给支付宝,这太麻烦,马云的细节还是做得不好,可能他觉得淘宝上没有大宗买卖吧!

最重要的一点就是楼主说的,你必须把所有的卡的记账日和最迟还款日记到一个表格里,尽量把还款日给错开,这样你能有时间差去换现金周转!有的银行的还款日和记账日是可以自己在网上银行设置的,还有就是像最长时间的用银行的免息期,那就在记账日的第二天刷卡最划算,这样银行就把这次消费记到下个月的记账日,记账日离最迟还款日还有一段时间,各银行不一样,好像广发的金卡时间最长,有25天的时间,也就是说你有55天的免息期!一般银行都是48天左右!

总之,想免费用银行的钱,你就得多动动脑子,多和像楼主这样的多卡族交流,呵呵,像楼主说的,没钱也能买房,但得量力而行,千万别玩儿陷了反而成为银行的卡奴一族,那就惨了,呵呵!