Profile cover photo
Profile photo
Kevin xie
121 followers
121 followers
About
Kevin's posts

迷茫啊,沮丧到头痛,都怪以前没认真复习挂了几门课,现在学校要筛选学生去达内培训java,我向往了很久了啊!!!望天赐予我这个机会,我一定能谱写精彩的人生的!!!

Post has shared content
(转载)Bruce Eckel:编程生涯

作者 Bruce Eckel 是编程界的大牛,著有大名鼎鼎的《Thinking in C++》和《Thinking in Java》。
本文是他对程序员(尤其是新手)的忠告。

================华丽的分割线================

大家总是问一个错误的问题:“我应该学习C++还是Java?”在本文中,我将告诉大伙儿:对于选择编程生涯真正需要关注的是哪些问题。

请注意,这篇文章的目标读者并不是那些已经做出自己选择的人。(对于这些人而言)你会继续自己的编程生涯,而不管别人会怎么说。因为它已经渗透到你的血液中,你已经无法摆脱。你已经知道答案:C++、Java、Shell脚本、Python、还有其它一大堆的语言和技术,你都理所当然地会去学习。甚至有可能你才仅仅14岁,就已经知道好几种不同的语言。

问我这样的问题的人可能来自其他行业,或者来自诸如Web开发之类的领域。他们知道HTML是一种类编程语言,而且想尝试构建某些更大型的应用。但我特别希望,当你在问这个问题时,你已经意识到了想要在计算机领域取得成功,你需要掌握自学能力,而且永不停息。

在这个领域做得越多,我越觉得软件开发比任何行业都更接近于写作。 我们从来不知道是什么造就了优秀的作者,我们只知道什么时候我们会喜欢某个人的文字。编程不是一种工程,仅需要把东西从入口倒进去,然后再转动手柄。把软件开发看成确定性的,是一个诱人的想法。因为这个想法,人们总想搞出一些工具来帮我们开发出想要的软件。但是我的经验告诉我,事实并非如此——人的重要性远高于流程。而软件是否运行在一部精确的机器上已经越来越不重要了——这犹如测不准原理对人类的影响。

我的父亲是造房子的,小时候我偶尔会帮忙打下手,放放砖块之类。他和他的木工告诉我,他们是为我好才让我干这些活——这样我就不至于走入这个行业。事实确实是这样。

我们不妨把软件开发比作盖房子。造房子的人当然不可能完全一样。这些人里面有:混凝土工、屋顶工、管道工、电工、砖瓦工、水泥工、瓦片工、搬运工、粗木工、细木工。当然,还有工头。每个工种都需要相应的技能,这些技能都需要花时间和精力去掌握。跟软件开发一样,造房子也是一个“建立/推翻”的过程。如果你想很快地获得回报,你可能从搬运工和砖瓦工开始做,这样的话,你无需太多的学习曲线就可以获得回报。当需求很多时,你的工作会很稳固,甚至收入也可能提升——如果没有足够的人手的话。但是,一旦行情不妙,木匠甚至工头就可能把砖瓦工一脚踢开。

当互联网刚刚兴起时,仅仅是花一点时间学习HTML,你就可以得到一份薪水丰厚的工作。但是当形势惨淡时,对于技能的要求更高了——HTML程序员(就像搬运工和砖瓦工一样)第一个被抛弃了,而拥有更高技能的程序员则留了下来。

我想说的是: 除非你准备活到老学到老,不然的话,不要进入这个行业!编程看起来似乎是一个高收入而又稳定的工作。但要做到这一点,唯一的途径是:始终让自己更有价值。

当然,你总能找到例外。总有那么一些人,仅仅学了一门编程语言,就可以胜任留在一个岗位上,而不需要增长他的技能。但他们只是幸免于难而已,他们最终无疑是很脆弱的。为了不让自己变得脆弱,你需要持续的提高自己,通过阅读、加入用户组、参加研讨会...... 你学得越深入,你就越有价值,也就意味着你有更好的职业前景,可以配得上更高的薪水。

另一个方法是:先大致了解这个领域,找到最适合你的地方。打个比方:我的兄弟对软件很感兴趣,也入了这行,只不过他的工作是安装、维修、升级电脑。他总是一丝不苟,所以当他把电脑搞好,一定会很完美——不光是软件,连电线都会被仔细地捆好。他总是生意兴隆,远超出他的精力所能及。他甚至都不用担心 .com 泡沫的崩溃。显然他的饭碗不容易被抢走。

我在高校里待了很久,甚至还在UCLA(加州大学洛杉矶分校)进修博士学位,后来又幸运地终止了。我说“幸运”是因为我不再喜欢呆在学校,而我之前在高校待了那么久,只是因为我很享受它。但我所享受的,基本上是不务正业的东西——艺术和舞蹈课,在校报工作,还有一小撮计算机课程(之所以说计算机课程“不务正业”,是因为我本科是物理专业,研究生才是计算机专业)。虽然我在学术上远谈不上卓越(有意思的是很多当时也许不会接受我这个学生的学校现在却用我的书做教材)。我真的很享受作为学生的日子,当我完成博士课程,也许会以一个教授的身份终老一生。

但就如现在看到的,我在学校里最大的收获恰恰来自我那些“不务正业”的课程,它们拓展了我的思维,使之超越了“我们已经知道的东西”。在计算机领域中,你总是为某种目标而编程。你对目标了解得越多,你就做得越好。我遇到过一些欧洲的研究生,他们需要结合其它专业领域来搞编程,他们的论文需要解决这个专业领域的特定的问题。

了解编程之外的领域,将会极大得提高你解决问题的能力 (就如同多学几种编程语言将极大地提高你的编程技能)。很多时候,我发现仅仅学习计算机专业的学生,比那些(除了计算机之外)拥有其它背景的学生,在思维上有更多的局限性。因为后者有着更严谨的思维,也不那么容易想当然。

有一次我组织了一次会议,其中一个议题是:理想的应聘者有哪些特征:
◇把学习当成生活方式。比如:你应该知道不止一种语言,没有什么比学习一门新语言更能让你开阔眼界了。
◇知道如何获取知识
◇Study prior art
◇善用工具
◇学会把事情简化
◇理解业务
◇为自己的错误负责。“我就是这样的”是不能接受的托词。能找到自己的失误。
◇成为一个领导者,善于沟通和激励。
◇搞清楚你在为谁服务
◇没有绝对正确的答案(更好的方法总是存在的)。展示并讨论你的代码,不要带着感情因素——你的代码并不等于你本人。
◇明白完美是渐进的

适当尝试一些冒险——尤其是能令人感到害怕的冒险。当你尝试之后,将体会到出乎意料的兴奋。(在冒险的过程中)最好不要刻意去计划某个特定的结果。当你过于注重结果,你往往会错过那些真正有价值的问题。我的冒险往往是这样开始的——“我们先做些试验,看看它会把我们带到什么地方”。

或许某些人会对我的回答感到失望,并回复我说:“是的,这很有趣也很有用。但我到底应该学什么?C++还是Java?” 我再重复一次:并不是所有的问题都有一个唯一的简单的答案。问题的关键不在于选择某个编程语言,然后掌握之。问题的关键在于:持续学习,并且很多时候,有不止一个选择。 相信我所说的,你的生活会更精彩!

洋文原始出处:
http://www.artima.com/weblogs/viewpost.jsp?thread=259358

================华丽的分割线================

俺博客上,和本文相关的帖子(需翻墙):

每周转载:关于学习编程语言(3篇)
http://program-think.blogspot.com/2012/05/weekly-share-5.html

为什么俺推荐Python(系列)
http://program-think.blogspot.com/2009/08/why-choose-python-0-overview.html

Java新手的通病(系列)
http://program-think.blogspot.com/2009/01/defect-of-java-beginner-0-overview.html

Post has shared content
学得是Java语言,而不是任何工具。如果一开始就从工具开始学起,可能导致永远都学不会Java。无论是Eclipse或者是JBuilder,如果不会写Java,那么再利的器对你都没有任何作用。
这句话确实不错。
Photo

Post has shared content
【李嘉誠演講:打工是最愚蠢的投資】

很多人會認為打工並不是投資,強烈反對這種觀念。其實打工才是最大最愚蠢的投資。人生最寶貴的是什麼?除了我們的青春還有什麼更寶貴?很多人都抱怨我窮,我沒錢想做生意又找不到資金。

多麼的可笑!其實在你身上就有著一座金山(無形資產),只是你不敢承認。寧可埋沒也不敢利用。寧可委委屈屈地幫人打工,把你的資產雙手拱讓給了你的老闆。

我們試想一下,有誰生下來上天就會送給他一大堆金錢的?問問李嘉誠吧。我曾經問過我的一個朋友為什麼不去打工?他的回答很驚人:“說句得罪點,出去打工簡直就是愚蠢浪費青春!

為什麼你一直是打工仔?因為你安於現狀!因為你沒有勇氣,你天生膽小怕事不敢另擇它路!所以你是打工仔!因為你沒有勇往直前,沒有超越自我的精神!所以,你還是一個打工仔!你想過了改變你的生活,改變你窮困的命運,但是你沒有做!因為你不敢做!你害怕輸,你害怕輸的一窮再窮!你最後不敢想,還是在打工,所以你還是打工仔!!!你努力了,你拼搏了,你抱著雄心大志。

結果你沒看到預想的成就!你放棄了!你只還是一個打工仔!!為什麼你一直是打工仔?因為你隨波逐流!近墨者黑,不思上進,分錢沒得,死愛鬧熱,所以你一直是打工仔!因為你畏懼你父母,你聽信你親戚,你沒有主張,你不敢一個人做決定。所以,你只不過還是一直是一個打工仔!你觀念傳統,只想打工賺點錢結婚生子,然後生病老死,走你父母一模一樣的路,所以你一直是打工仔!你天生脆弱、腦筋遲鈍只想做按班就部的工作,你想做無本的生意,你想坐在家裡等天上掉陷餅,所以你一直是一個打工仔!

你抱怨沒有機遇,機遇來到你身邊的時候你又抓不住!因為你不會抓!所以你還是一直是打工仔!因為你的貧窮,所以你自卑!你退縮了!你什麼都不敢做!你只會給別人打工!所以你一直是打工仔!你沒有特別技能,你只有使蠻力!你和你父母一樣,惡性循環,所以,你一直永遠的一個一直在打工的打工仔!

很多人想把握機會,要做一件事情時,但往往給自己找了很多理由讓自己一直處於矛盾之中,不斷浪費時間,虛度時光!

1,我沒口才。錯!有沒有人天生就會說話,台上的演講大師也不是一下子就能出口成章,罵人的時候很擅長,抱怨的時候也很擅長,這也是口才,只是沒有任何營養罷了,那是沒有價值的口才;看別人爭論的時候,自己滿嘴評頭論足,卻不反省自己,倘若你做得好,你今天是否還說自己沒口才

2,我沒錢。錯!不是沒有錢,而是沒有賺錢的腦袋,工作幾年了沒有錢么,有了,但是花掉了,花在沒有回報的事情上面,吃喝玩樂,或存放貶值了,沒有實現最大化,所以錢就這樣入不敷出,這樣月光光這樣被生活所需全部一一使用,這樣周而復始,每月做個月光族,沒有遠慮,當一天和尚敲一天鐘,得過且過。

3,我沒能力。錯!不給自己機會去鍛煉,又有誰一出生就有跑的能力?跳的能力?一畢業就是社會精英?一創業就馬上成功?當別人很努力的學習,很努力的積累,努力的找方法,而他每天就做了很少一點就覺得乏味,學了一些就覺得沒意思,看了一些就不想看,跟自己跟別人說沒興趣學,然後半輩子過去,一事無成,然後牢騷上天不給機會。能力是努力修來的,不努力想有能力,天才都會成蠢材,但努力,再笨的人也能成精英。

4,我沒時間。錯!時間很多,但浪費的也很多,別人很充實,他在看電視,別人在努力學習時,他在遊戲消遣虛度,總之時間就是覺得很多餘,他過得越來越無聊,別人賺錢了羨慕別人,但不去學別人好好把握時間創造價值,整天不學無術。

5,我沒心情。錯!心情好的時候去遊玩;心情不好的時候在家喝悶酒,心情好的時候去逛街,心情不好的時候玩遊戲,心情好的時候去享受,心情不好的時候就睡大覺,好壞心情都一樣,反正就是不做正事。

6, 我沒興趣。錯!興趣是什麼,吃喝玩樂誰都有,沒有成就哪裡來的盡興,出去旅遊回來月光族,出去K歌回頭錢包空空,出去大量購物回來慘兮兮。打工有沒有興趣,擠公車有沒有興趣?上班簽到下班打卡有沒有興趣?家裡急需要一大筆錢的時候借錢有沒有興趣?要還錢沒錢還有沒有興趣?賣老鼠藥的人對老鼠藥有沒有興趣……?

7,我考慮考慮。錯!考慮做吧,有可能就成了!不做吧,好不甘心,整天上班也沒有個頭,還是做吧,明天開始,不過還是算了,再想想,這錢掙的也不容易,不不,就是打工掙錢也不容易,所以不能放棄機會,決定了,把握機會。哎呀!天都黑了,明天再說吧!然後第二天又因為以上123456點,因為左思右想,繼續循環,最終不能決定,猶猶豫豫,還是一無所獲。

有句話是,可憐之人必有可恨之處!這一生中不是沒有機遇,而是沒有爭取與把握,藉口太多,理由太多......!爭取之人必竭力爭取,一分錢都沒有也千方百計想辦法,不爭取之人給一百萬也動不起來,發財不了,還有可能一敗塗地,這就是行動上的欠缺,喜歡猶豫不決,喜歡拖延,喜歡半途而廢,最後一輩子平庸,碌碌無為!還有的人,做事三分鐘熱度,一開始熱情高漲,等會就繼續懶散,這種人成功的帽子也不會在你的頭上。看看為什麼別人身價幾個億,你自己還在為錢奔波,不要羨慕別人命好,別人很困難的時候是怎麼堅挺過來的,怎麼克服困難,突破自己,改變命運的,你沒看到罷了,活著就是要一身價值

Post has shared content

Post has shared content
100个隐秘的实用搜索引擎


课外活动

搜索博客、游戏及论坛文章。

Bloglines: 从该搜索引擎你可以查询到2003年至今世界各地的博客文章。
FindSounds: 网页设计师和拖拉学生通过该网站可以查找到各种不同格式、信号源个数及分辨率的音频文件。
Nicado: 该免费搜索引擎可以帮助你查询你很久未曾联系的老朋友或家庭成员的e-mail 地址及电话号码。
Omgili: 通过关键词或主题查找你感兴趣的论坛文章及话题。
(快速)问答分享

基于搜索的互动式知识问答分享平台。

Answers.com: 提问或回答关于政治、汽车、电视剧、流行文化、健康、技术等问题。
AskMeNow: 利用手机快速进行维基百科搜索。
Lexxe: 在该搜索引擎里输入你要查找的问题,系统会自动匹配给出其它用户回答的链接地址.
Powerset: 另一个维基百科搜索引擎。
AskWiki Beta: 根据语义给出维基百科文章的搜索引擎。
城市指南和旅行

下列搜索引擎可以帮助你更好地了解你求学大学所在城市、合理安排假期及研究国外旅行。

Google Local: 许多人不知道这个非常实用查询当地商业及地址的搜索引擎。
MSN City Guides: 在该搜索引擎里点击一座城市开始或输入一个具体位置或活动,可以查询你想做的趣事。
Aardvark Travel: 该搜索引擎可以帮助你查询出来自世界各地的旅游网址,并且你可以选择位置、假期形式、旅行活动、航班、宾馆或其它形式来进行浏览。
Kayak.com: 该旅游聚合搜索引擎能通过你的旅行请求给出最低机票、游轮度假、汽车出租、酒店住宿建议。
Ask City: 通过该网站你可搜索你所在城市的特别活动、娱乐指南和地图。
Mobissimo: 在该网站搜索MobiDeals或旅行信息,以查询出吸引人的机票、 酒店预订或汽车出租信息。
Trabber.com: 该搜索引擎通过搜索31个不同的网址基于你提交的时间表给出最便宜的航班。
Local Search Guide: 该搜索引擎非常强大,它能查询当地的地图及地点方位、商业、电话号码、电影放映时间表及天气信息。
Search.Travel: 该测试版搜索引擎能查询你所提交地址的旅行费用和交通、事件和活动等信息。
购物

通过下列搜索引擎可以查询到顾客评论、产品信息及购物地点
MySimon: 这个有趣的网站列出了假期特惠活动及礼品赠送清单,在该网站你可以在特定分类里进行搜索或进行一般搜索。
Shopzilla: Shopzilla 使用非常简单。通过输入关键词或你想采购的产品描述或右侧的分类浏览就能查询到来自在线零食商(如Amazon.com)的结果。
DealTime: DealTime 是一个比较购物搜索引擎,它能查询到鲜花和礼品、计算机和技术、家庭和花园用品、汽车、音乐和电影、运动装备等产品信息。
Google Product Search: 在Google Product Search“搜索物品以购买”,该搜索引擎能搜索到从漂亮时髦的物品到DIY的家庭用品到礼物和家俱等所有类别的商品。
Kelkoo: 通过分类搜索或回答“你想购买什么”来搜索产品信息和进行各种物品交易,当然,你也可以通过品牌或商店来缩小搜索范围。
PriceGrabber.com: 可以通过在不同分类里通过高级搜索或者在“你在寻找什么”里输入具体物品来搜索结果。
MSN Shopping: 该综合性网站可以通过分类浏览缩小搜索范围或者输入关健词以使搜索更为具体。
ePublicEye: 该网上购物搜索引擎,专门寻找安全,有积极评论的电子商务网站。它也提供了信息安全的网上购物小常识和在线诈骗的网站。
BizRate: 该搜索引擎能自动比较搜索结果的服装、家居用品、礼品、配件等物品的价格。
商业

商学院的学生和在那些对当前商业新闻及走向感兴趣的学生可以利用下列搜索引擎来帮助自己准备功课,当然,他们也可以在毕业后,利用这些搜索引擎为自己的生活服务。

Bloomberg: Bloomberg.com 通过它的搜索引擎连结你到商业新闻,暂停新闻文章和市场数据更新。
ThomasNet: ThomasNet对“连结工业”的贡献是它拓宽了搜索工具范围:能让用户浏览包括产品和服务的分类及搜索具体的公司或品牌。
IFACnet: 会计人员能用该搜索引擎搜索工业新闻从而了解全球资源及信息。
Nexis: LexisNexis 用户通过利用其商业搜索来查询其它专业人士和组织的合法资源、工业新闻及信息 。
Business.com: 企业家和商业学生在该网站上能浏览软件、交通、工作、办公室管理、房地产和健康等分类和“快速找生意”及找工作。
学术及参考

通过下列搜索引擎你可以发现可靠而权威的网址来帮助你完成家庭作用和课程设计。

Librarian’s Internet Index: 该网站提供包括媒体、法律、交际、消费者研究、健康等“值得你信任的网址”。
Scirus: 该科学搜索引擎声称是“综合性最强的在线科学研究工具”,它共索引了超过450百万科学相关信息源。
Google Scholar: 搜索杂志文章、摘要、学术论文、书目及其其它学术出版物。
Intute: Social Sciences: 该搜索引擎在线搜索工具部分能查询大量关于政府政策、地理、法律、经济、人类学、商业管理、社会福利、心理、政治、女性研究等信息。
CiteSteer: 计算机科学及IT学生能用“科学文献数据图书馆”。
Online Journals Search Engine: 查询科学材料索引及信息源。
Google Books: 搜索经典图书,非科幻书籍、诗歌、短篇故事等其它书籍。
Research Crawler: 在一般搜索框输入关健词或快速搜索可查询文章、教科书,RSS种子, 播客等。
Translation Crawler: 该词典有手语、教育、翻译等网址索引。
社会媒体和人民
如下所列的用户产生内容和用户驱动网站通常会为你搜索到很多相关结果。

wink: wink 是一个“人民发现人民”的网站,用户可以通过位置、姓名、兴趣、学校或其它分类来寻找老朋友或家庭成员。
Sproose: 该用户驱动网站能执行网站或视频搜索。
similicio.us: 当你复制/粘贴一个相似的网址到该搜索引擎,它会给出一个与这个网址相似的网站。
多媒体搜索

这些搜索引擎能比普通的搜索引擎提供更多的搜索信息,它独特的功能有共享搜索,保存记忆和具体的搜索选项。

Trexy: 在trexy里,你可通过储存搜索记忆功开辟搜索道路,通过社区分享您的搜索结果,并可增加trailbar按钮到您的工具栏进行快速搜索。
MsFreckles: msfreckles可以搜索整个互联网或只来自英国的页面。您也可以通过文件类型过滤您的搜索,一次只搜索几个网站,特定域名、博客,或选择其他高级选项进行搜索。
Clusty: 该网站可以搜索网站、新闻、图片、维基百科和博客。
电视、视频及广播

通过下列搜索引擎为课程报告查找视频剪或者发现新的广播电台站点和在线流媒体。

veoh: 搜索该网址可以发现数百万视频。
blinx: 通过blinx搜索网站你能找到“超过二千六百万小时视频”和它们的相关结果。
ZippyVideos: 此试用版的搜索引擎也是一个媒体分享网站,您可以上传自己的视频及搜索他人的视频。
Radio-Locator: 搜索来自世界各地广播站的超过10000不同的广播电台和2500个在线流媒体。
Pandia Radio Search: 该搜索引擎也提供了大量的广播电台搜索。
Radio Directory: 电台目录搜索可以使你连结到来自全国各地的电台的网站和获得相关电台的资料。
altavista: 用该视频搜索引擎能搜索MPEG、Quicktime、 Avi、Windows Media、Real、Flash 及其其它格式的视频文件。
Truveo: truveo 让您可以搜索来自不同的网站的视频,在该网站里您还可以浏览最热门的分类及播放最多的视频。
Snipp.TV: 在该测试版搜索引擎中能查询到视频和音频文件,且使用方法非常简单。
医药及健康搜索

该列表不仅可以帮助医学院学生研究权威杂志及出版物,大学生通过这些搜索引擎可以获得比仅通过google更多的健康建议及医疗资源。

Entrez: 搜索生命科学出版物及研究材料。
PubMed: 由美国美国国立医学图书馆和国家卫生研究所主办的搜索引擎。
Healia: healia自称为“您的健康指南” ,该网站提供网页,公众医疗或临床试验方案搜索功能。
PubGene: 搜索生物及基因材料。
Healthline: 通过健康导航,您可以搜索到该网站的的最佳健康站点 。该网站支持 ADD/ADHD,心脏病,抑郁症或过敏主题浏览,或者你可以通过键入自己的症状来获得相关搜索结果。
OmniMedicalSearch.com: 该网站被 About.com 和华盛顿邮报推荐的最好的5个医疗搜索引擎之一,它可以搜索网页,图片或论坛从而连接得到高质量的保健和医疗信息。
MedNets: 医学院学生可以尝试此工具,搜索数据库,期刊,图书,就业和医疗社团。还可以自定义搜索引擎为内科,牙科,家庭医学,护理,肺等特定领域服务。
American Hospital Directory: 通过输入电话区号、邮编、城市或州名快速查找就近的医院。
DrKoop.com: 研究你的症状,获得一个健康百科全书,或利用网络搜索引擎找到各种健康信息。
MedicineNet: 该搜索引擎根据不同类别显示您的搜索结果,如新闻,症状,程序和测试,药物。因此,您可以迅速找到最相关的结果。
法律学生

法律学生在下列搜索引擎里可以查询到法庭规则、历史和政治科学资源或其它法律材料。
MegaLaw.com: 在该搜索引擎里你不必搜索多次就可以查询到相关的法律网站。
FindLaw: 在该网站你可以通过搜索律师或回答者来回答你的法律问题。
History Crawler: 搜索历史参考或其它。
Meta-Index for U.S. Legal Research: 搜索司法意见,联邦规例,立法和更多。
World Law: 搜索来自世界各地的搜索选项,新闻立法,律师和法律图书馆。
CataLaw: 此搜索引擎可以找到各种类型的法律的信息和资源,包括消费者保护法,性骚扰案件,家庭法,银行,刑事法,网络的权利和其它更多。
元搜索和宏搜索

以下搜索引擎能在同一时间内从其他搜索引擎带给你信息,包括Google ,雅虎, MSN及其他。

Dogpile: 查找的信息结果来自最好搜索引擎。
Excite: 元搜索引擎能提供给你最新的体育比赛分数,股票代码,精选游戏及影片,以及更多。
Mamma: Mamma 是“母亲搜索引擎”,它可以搜索网页,新闻,图片,视频和黄页。
HotBot: 此搜索引擎可以搜索到来自雅虎,iygo.com ,和MSN 的信息和材料。
MetaCrawler: 用metacrawler “搜索搜索引擎”,它是一种可以让您搜寻过滤,家庭友好材料或进入未经过滤的结果”的工具。
Info.com: info.com检索信息来自Google ,雅虎, livesearch , about.com和 Ask.com。您也可以选择搜寻网页,研究,新闻,图片,视频和其他选项。
Myriad Search: 如果你想它自动进行的话,此搜索引擎搜索四种不同的引擎。您也可以选择所需信息来自某一特定的搜索引擎或排除这一搜索引擎。
照片、图片及视觉搜索引擎

通过这些搜索引擎你可以获得更多的视觉体验。

Kart00: 该视觉元搜索引擎以地图形式列出搜索结果(用一张很小的网站预览图片显示在地图上)。
Grokker: Grokker 搜索维基百科、 Yahoo! 和 Amazon书籍,然后以略图或地图形式列出搜索结果。
Picsearch: 通过Picsearch,你可以在你的课题或报告中添加图片。
Fagan Finder: 该网站不同于一般的照片分享、摄影图库网站,因此你在该网站上能查询到从修剪艺术到医学图片到图片日记几乎所有类别的图片。
Netvue: Netvue 是一个不提供不必要服务的图片搜索引擎,它提供卡通、图形及照片等搜索结果。
新闻搜索

大学生需经了解当前的商业、技术、文化及政治新闻,用下列搜索引擎可以指导你完成课外讨论及课程设计等。

News Lookup: 查询来自世界各地的新闻故事,或搜索某一特定国家或新闻主题的新闻。
Google News: 在该网址,你能浏览4500个新闻源的实时新闻信息。
AlltheWeb: 利用该网站的新闻搜索工具能查询到来自来自报纸、电视台及其它新闻网站的新闻。
Yahoo! News: 可以搜索体育、娱乐、商业、技术、世界及美国的新闻。
Ananova: 除了提供综合新闻搜索外,该网站还在主页贴出了当天的热门新闻标题。
工作和房地产

这些搜索引擎帮助你查询暑期实习、第一套公寓或毕业后的工作信息。

Hotpads.com: 通过该网站可以搜索正在出售或出租的住房和公寓列表。
RightMove: 这个总部设在英国的网站将指导您的物业出售或出租,包括您在法国,西班牙和保加利亚度假房产和物业。
Juju: 该搜索引擎使用非常简单,你可以通过输入关键词、位置及公司名来搜索相关结果。
indeed: indeed 是一个元搜索引擎,您可以输入一个关键词和地点来查找整个网站的物品。
Simply Hired: 可以搜索超过6万个涉及客户服务、会计、交通运输、软件、律师助理、公关、政府和其他机构的就业岗位。
Dice.com: 理工科学生和专业人士也可以在此站点找工作,该网站链接了超过86000条相关信息。
trulia: 这个智能搜索引擎可以通过邮编或城市、州名搜索待售房屋。您还可以在此比较购物网找到搬家公司,搬家提示和其它信息。
WhereToLive.com: WhereToLive.com 是一个房地产搜索引擎,它允许你在交互地图上搜索房产信息。
Internship Programs: 当登录“实习搜索引擎”后,你就能通过它来寻找实习机会。

Post has shared content
http://www.aqee.net/books-programmers-dont-really-read/

最常被程序员们谎称读过的计算机书籍
马克·吐温曾经说过,所谓经典小说,就是指很多人希望读过,但很少人真正花时间去读的小说。这种说法同样适用于“经典”的计算机书籍。

在Stack Overflow(以及其它很多软件论坛)上,诸如”程序员最应该读的计算机书籍有哪些?“这样的问题会周期性的出现。这样的问题不断的被提出、被回答,只是形式不同罢了。相同的几本书总是会出现在清单的前几名内,所以,如果想知道人们谈论的都是些什么,你有必要去读一读这些书的。

大多数程序员真正读过的计算机书籍

代码大全(Code Complete)——两届Software Jolt Award震撼大奖得主!
程序员修炼之道(The Pragmatic Programmer)
C程序设计语言( C Programming Language)(第2版)
重构:改善既有代码的设计(Refactoring: Improving the Design of Existing Code)
人月神话(The Mythical Man-Month)
编码——隐匿在计算机软硬件背后的语言(Code: The Hidden Language of Computer Hardware and Software)
Head First 设计模式(Head First Design Patterns)
编程珠玑(Programming Pearls)
Effective Java中文版(Effective Java (2nd Edition))or Effective C++(第三版)中文版
Test Driven Development: By Example
上面的这些书我自己都读过,所以我不难相信很多不是很优秀的程序员也都读过它们。如果你对编程有足够的兴趣,能够来到这里读这篇博客,你很可能读过其中的大部分,甚至还有很多不在这个清单中的,所以我就不浪费时间每本书都评论一番了。我想说的是,这个清单上的每本书都是它各自领域里的奇书。所以,很多有愿望不断提高自己的编程技术的程序员都读过这些书,这就不足为怪了。

在人们备受推崇的计算机书籍中,还有一类书受到了独特的待遇。我称下面这个清单为“最常被程序员们谎称读过的计算机书籍”。这并不是说推荐这些书的人都没有真正读过它们。我只是有相当的信心怀疑更多的人只是在口头上宣称读过下列书籍,而实际上很少人真正读过它们。下面就是这个清单。

最常被程序员们谎称读过的计算机书籍

算法导论(Introduction to Algorithms)(CLRS)这本书的名称是所有出版过的计算机书籍中最让人误解一个。它被广泛的使用在很多大学里,通常被当作毕业生必需的算法课程。于是,只要在大学里上过计算机课程的学生几乎都有一本这样的书。然而,除非你拥有计算机硕士学位(而且是算法研究领域的),我怀疑你顶多只读过算法导论(Introduction to Algorithms)里节选的几章内容。这个书名让人误解,是因为”Introduction”这个词让人以为它很适合初级程序员。实际上不是。这本书对算法做尽可能详尽综合的介绍,就像其它一些随处可见的类似的书一样。请不要再把这本书推荐给初学者。
编译原理(Compilers: Principles, Techniques, and Tools)(the Dragon Book).这本恐龙封面的书涵盖了开发一个编译器你所需要的全部的知识。它的内容包括词汇分析,语法分析,类型检查,代码优化,以及其它很多高深的题目。请不要把这本书推荐给初级程序员,他们需要的只是分析简单的包含数学公式或HTML的字符串。除非你真的需要实现一个能够实用的编译器(或解释器),你根本不需要掌握这本“恐龙”书的全部强大威力。把它推荐给一个遇到简单文本分析问题的人,这证明你根本没有读过它。
计算机程序设计艺术(The Art of Computer Programming)(TAOCP)我经常听到人们把这本书描述为“每个程序员必读”的系列计算机书籍。我认为这明显不是实情。在我说出这样大不敬的话、被你们用板砖拍死之前,请让我做解释一下。这不是一本让你一页一页翻着读的书。这是一本参考大全书。把它放在你的书架上看起来会很不错(实际上也它确实很好),但如果想把它通读一遍,你需要几年时间,而且最后什么都没记住。这并不是说手边放这样一本书没有什么价值。它是一本参考书,当我遇到难题,走投无路时,很多次我都在这本书里找到办法。但这本书终究是被我当作参考书。它复杂难懂,很理论,里面的例子都是汇编语言的。好的一面是,如果你想在这本书里寻找针对某一问题的解决方案,如果你找不到,那就说明这个问题无解。它是一本对它所涉及到的领域做了最最详尽介绍的一本书。
Design Patterns: Elements of Reusable Object-Oriented Software(Gang of Four)这本书是唯一一本在这个清单里我从头到尾读过的书,读的结果是,我不知道该把这本书归到哪个类别。它出现在这个清单里,并不是因为我认为只有很少人真正读过它。很多人都读过。只是因为有更多推荐过这本书的人自己却没有读过。Design Patterns这边书的问题在于,很多书里给出的信息,你在其它很多地方都能看到。这样就使得一个初学者在维基百科上读了几篇关于设计模式的内容后,就敢在面试中宣称自己看过这本书。这就是为什么Singleton成了一种新的全局变量的原因。如果有更多的人花时间读过这本也叫做Gang of Four的书的原著,那世界上就不会有这么多人会把17种设计模式硬塞到一个日志(logging)框架里了。这本书最精彩的部分是每章里描述如何正确的使用一种模式的段落。遗憾的是,这些精华却在很多其它设计模式资料里被漏掉了。
C++程序设计语言(The C++ Programming Language)这本书不像一本编程教材,更像一本编程语言参考。有很多的迹象表明有人确实读过这本书,否则我们不可能有这么多的C++ 编译器可选择。编程初学者(或者甚至其它语言的专家),如果想学C++,不应该直接去啃C++程序设计语言(The C++ Programming Language)这本书。告诉他们去读《C++ Primer中文版》。
正如我之前说的,我知道你们当中会有一些人真正的读过这些书。那这篇文章不是针对你的,针对的是那些企图通过假装读过这些书来表现自己的民众。 如果你自己没有读过这些计算机书籍,请不要推荐给别人。这样做会耽误别人的时间,误人子弟,因为一些阅历更丰富的人可能会有更好的书(更针对某一领域,更容易理解,跟某种编程语言或某种编程水平更契合的书)来推荐。除此之外,你也能避免被那些真正读过计算机程序设计艺术(The Art of Computer Programming)的人用MMIX知识给拷问住造成的尴尬(如果你不知道我在说什么,那我指的就是你)。

Post has shared content
数学思维与逻辑在现实生活中的运用
From:网络

在很多人眼中,数学只是一种有用的工具,学习数学就是为了运用这种工具。这种“工具化”的学习观造成很多人只有解题能力而没有数学思维与逻辑,更不可能将这种思维与逻辑运用到现实生活中。但事实上,数学并不仅仅是一种解决具体问题的工具,数学更是一种思维与逻辑。《易经》说:“形而上者谓之道,形而下者谓之器”。数学就是这样一个“形而上”上的东西,而并非仅仅是“形而下”的工具。今天,我们来谈一谈数学思维与逻辑在现实生活中的简单运用。

很多人都认为,数学是严密,理性的代名词,而并非是感觉与经验的东西,但这种观点显然是错误的。培根曾经说过:“只有出自于感觉与经验的知识才是可靠的,感觉与经验是一切知识的源泉”,康德在《纯粹理性批判》中明确指出:一切科学知识都是由先天综合判断构成的。所谓“先天综合判断”就是既具有感觉经验的内容,同时又具有普遍必然性的知识。如 我们计算7+5=12。单纯联结7和5的概念,得不出12这个结果,只有借助于直观,例如借助手指的逐一相加,然后才得出12这个概念,数学就是这样一种先天综合判断的知识。《编码的奥秘》中有这样一句话:“我们之所以习惯于10进制,是因为我们正好有10个指头。”,所以,数学首先是一种直觉,然后才是一种逻辑。如同小学生背九九乘法表一样,学习数学,从培养直觉开始,也就是将复杂的逻辑思维直觉化。在生活中,我们说一个人有深邃的洞察力,这往往就是“逻辑思维直觉化”的结果。7乘以9等于63,对于我们的思维来说,这并不是经过严密证明的东西(虽然我们很容易证明),而是一种本能和直觉。数学又是严密的,这种严密建立在“公理化”的基础上,以公理为基础,运用纯粹逻辑进行推理,得出正确的答案。体现在生活中,就是运用常识解读社会和人生,运用常识去判断哪些是真的,哪些是假的。如梁文道所说,生平所学,仅常识而已。需要指出的,公理化在数学发展史上也曾经经历过一段非常混乱的时期,以致于莫里斯?克莱因在《古今数学思想》中这样说:“这意味着数学不是依靠在逻辑上,而是依靠在正确的直觉上”。数学尚且如此,生活中的常识就更加混乱了,但我们可以运用数学的思想来解决这个问题,即尽可能少的运用公理(常识),但又必须建立在公理(常识)的基础上。

  如果说公理化是数学教给我们的第一个思想,那么“等价转换”就是数学教给我们的第二个思想。等价转化是把未知解的问题转化到在已有知识范围内的思想方法。即通过不断的转化,把不熟悉、不规范、复杂的问题转化为熟悉、规范甚至模式法、简单的问题。“解题就是把要解题转化为已经解过的题” 数学的解题过程,就是从未知向已知、从复杂到简单的化归转换过程。这种思维运用在现实生活中,就是从不同的角度去看待问题,最后寻找到“最佳角度”;又或者说是“换位思考”,“思维转移”。我的一位表哥曾经对我说:“很久没学数学,感觉人都变笨了”。这种“笨”,正是指“思维转移”“变换角度”的“笨”,数学就是思维的不断转移和变换,在这种变换中,我们需要遵守遵循熟悉化、简单化、直观化、标准化的原则。

  数学教给我们第三个思想,是分类讨论的思想。在高中数学中,我们经常遇到的问题是需要考虑a>0、a=0、a<0之类情况的数学题。即将问题分类讨论。运用在生活中,就是考虑可能发生的各种不同情况,并提出具体的策略和应对方法。分类讨论能让我们更全面地考虑问题,也能让我们更好地解决问题。

  数学教给我们的第四个思想,是概率的思想。概率在生活中是一种不确定性的东西,但我们都知道,概率服从大数定理与中心极限定理。说到极限,我们先说无穷小与无穷大的概念。前几天在QQ群中聊天讨论,有人说:“无穷小就是零”。即0.0000000……0001=0,这听起来似乎没什么错,但实际上却错得很离谱。在生活中,我们遇到问题都是在一定的范围内讨论的。比如,我们说这把尺子是一米长,这是一个确定性的概念,也是一个近似的概念。准确的说,世界上不存在任何一把尺子是一米长,这把尺子长度可能位于0.9999999999999999---1.0000000000000001米之间。在实际运用中,我们会根据需要决定精确度(当然,国际上会规定一米的长度为多少,这个规定是一个确切的数)。学过计算机网络的人都知道,绝对可靠的通讯系统是不存在的,这会陷入无穷验证的困境,所以在实际应用中,人们仅仅只用了“三次握手协议”,因为这已经足够了。在现实生活中,我们可以认为,无穷小就是零,但在数学上,无穷小只能是“无限接近于零”,“一尺之锤,日取其半,万世不竭”,无穷小是一个变量而不是一个确切的数。概率在生活中无处不在,很多人都喜欢将概率看作是一种确定性的分析,但实际上,概率最重要的是对“不确定性”事件的分析。我们分析任何一件事情,其结果必然是概率性的,而不可能是确定性的。但人们往往喜欢确定性的东西而不喜欢不确定性的东西。比如说,经济学上一个非常重要的常识:任何人都无法预测市场。但现实情况是:人们都喜欢预测市场。在实际生活中,对事情的分析不仅具有分析上的概率性,而且具有生活上的概率性,所以,得出的结果必然是一种“不确定性”的,变化的概率,而不是数学上的确定性概率。这种“不确定性”也表明,我们对生活具有把握生活的能力,而不是听从命运的安排。即从概率上来说,由于人生会发生无数件事情,所以,上帝对于每一个人都是公平的,这种公平是通过概率实现的。学会接受不确定性的思想观念,这是一种人生智慧。

  数学是对思维最好的训练,经过训练与没有经过训练的大脑思维是截然不同的。高一的时候,我爸爸教我学C&&C++,刚开始学C语言的时候,我几乎连最简单的交换都不能理解,一个冒泡排序学了一个下午。写程序的时候,经常将分号搞错,但这种思维适用期很快就过去(后来考一个全国等级考试的C语言二级和数据库技术三级就没学了),今天,根据已知的排序算法(如快速排序,插入排序,堆排序,归并排序,基数排序,希尔排序,桶排序,锦标赛排序等等,)用C语言写一个实现的程序肯定是一件轻而易举的事情(当然,我不是Knuth,自创排序算法或改进算法不太可能)。刚开始的时候,我爸爸教我最简单的C语言的知识,我者觉得很难,后来,我自学了《数据结构》的相关知识,而且一点都不觉得难。由此可见,训练对于大脑思维有多么重要。

  逻辑与直观,分析与推理,共性与个性构成了数学。数学,作为人类思维的表达形式,反映了人们积极进取的意志、缜密周详的逻辑推理及对完美境界的追求。数学绝不仅仅是一种解决问题的工具,它更是一种思维方式,运用这种思维,你可以更轻松地思考问题,更容易看透问题,直指问题的本质所在。文理兼通,并不是简单的学习文科与理科的知识,而是学会“将文科知识理科化,将理科知识文科化”以便更透彻地看待文科与理科,实现大脑思维的飞跃!

Post has shared content
“10倍效率” 程序员/开发人员的习惯

1. 只做需要做的工作
▲使用敏捷方法;
▲全心全意做UX设计;
▲沟通第一;
▲编码也许不是解决问题的办法;
▲过早的优化是一切罪恶的根源;
▲选择最简单的解决方案。

2. 站在巨人的肩膀上
▲使用开源框架;
▲使用简洁语言(如HAML、Jade、Coffeescript);
▲不要做重复的事情(不要重新发明轮子);
▲利用包管理器来进行公共和私有代码分配;
▲不要任凭巨头(如微软)的摆布而修复库中的一个Bug;
▲不要让你的雇主逼你学习;
▲自主学习并为自己设定新的目标。

3. 了解数据结构和算法
如果你不知道什么时候应该使用快速排序、不懂辨认O(n2)程序、不会写递归函数,你将无法成为10倍效率的开发者。使用多种语言你才能清楚不同的框架是如何解决相同问题的。尽可能去了解底层命令(plumbing),以便能够作出明智的决定(Web框架是怎么存储session状态的?Cookie到底是什么?)。

4. 不要怕买工具,它可以节省你的时间
Ben说:“昨天我花50美元买了一个位图字体工具,它帮我节省的时间成本绝对超过200美元。”

5. 集中注意力
不要整天开着你的电子邮件、Twitter、Facebook等,在工作时将它们最小化或关掉它们,戴上耳机。Tiny hack说:“即使不听音乐我也戴着耳机工作,这样便不会有人打扰到我。”

6. 尽早并且经常性地进行代码重构
有时,你不得不放弃漂亮的代码转而去寻找真正对项目有用的代码,但没关系,如果你的现有项目中有这样的代码,最好的方式便是不要看它,并重构。

7. 只管去做
将你的业余项目分享到Startup Weekend中。在我开始转到Unix和Ruby on Rails上之前,我买了一台Mac,使用Windows虚拟机花了一年时间做 .NET项目。

8. 挑选一个编辑器,并掌握它
高效开发者喜欢用文本编辑器胜过IDE编辑器,因为这样可以学到更多东西。无论什么情况,尽量使用键盘快捷键,因为熟练使用一件工具的前提是熟悉它。
在选择编辑器时,认真考虑并挑选最好的(Emacs或Vim),因为它们是通用的。其次,挑选你的首选平台最支持的。使用宏,不断地写代码;使用Mac上的TextExpander为整个段落创建快捷方式;使用Visual Studio或SublimeText的自动补齐功能;使用支持按行/列分割窗口的编辑器,这样你便能同时看到单元测试和代码(或模型、视图)。(推荐阅读:《25个Vim教程、视频和资源》)
一定要想清楚后再写代码。Adam说,“我有朋友在一个大项目组里工作,他们组里最高效的程序员是一个高位截瘫用嘴叼着棍子敲代码的人,他总是在写代码之前想得很仔细且很少出错。”

9. 整洁的代码胜过巧妙的代码
要想让其他人能够读懂你的代码,尽量使用最少的代码来完成任务。遵循DRY(Don’t repeat yourself)的原则,使用明确定义的对象和库,将任务分解成小而简单的代码段。

10. 潜意识是强大的工具
离开10分钟往往就可以解决一个问题。控制编程时间,给自己一个多姿多彩的生活,劳逸结合能让你在工作时更高效、更愉悦。当然,即便是上了年纪的程序员也知道,以最少的时间完成最高效的工作是成为10倍效率开发者的必要条件。
作为一个程序员,我觉得在职业生涯中最好的一件事儿就是从电脑前站起来,去拜访那些在某一领域有所建树的人们。

11. 推动自身和团队进步
重视批评,以包容的态度接受批评并提升自己是非常重要的事情。没有这个基础,你不可能成为一个高效的开发者。一位智者曾经说过:“聪明的人善于从自己的错误中学习,而智慧的人善于从别人的错误中学习。”

Post has shared content
追MM与Java的23种设计模式[转]


设计模式做为程序员的“内功心法”,越来越受到重视。这是一篇通俗版23种设计模式,用实际生活做比喻,让你很快就能理解其中的深意。

1、FACTORY―追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory

  工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。

  2、BUILDER―MM最爱听的就是“我爱你”这句话了,见到不同地方的MM,要能够用她们的方言跟她说这句话哦,我有一个多种语言翻译机,上面每种语言都有一个按键,见到MM我只要按对应的键,它就能够用相应的语言说出“我爱你”这句话了,国外的MM也可以轻松搞掂,这就是我的“我爱你”builder。(这一定比美军在伊拉克用的翻译机好卖)

  建造模式:将产品的内部表象和产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象。建造模式使得产品内部表象可以独立的变化,客户不必知道产品内部组成的细节。建造模式可以强制实行一种分步骤进行的建造过程。

  3、FACTORY METHOD―请MM去麦当劳吃汉堡,不同的MM有不同的口味,要每个都记住是一件烦人的事情,我一般采用Factory Method模式,带着MM到服务员那儿,说“要一个汉堡”,具体要什么样的汉堡呢,让MM直接跟服务员说就行了。

  工厂方法模式:核心工厂类不再负责所有产品的创建,而是将具体创建的工作交给子类去做,成为一个抽象工厂角色,仅负责给出具体工厂类必须实现的接口,而不接触哪一个产品类应当被实例化这种细节。

  4、PROTOTYPE―跟MM用QQ聊天,一定要说些深情的话语了,我搜集了好多肉麻的情话,需要时只要copy出来放到QQ里面就行了,这就是我的情话prototype了。(100块钱一份,你要不要)

  原始模型模式:通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的方法创建出更多同类型的对象。原始模型模式允许动态的增加或减少产品类,产品类不需要非得有任何事先确定的等级结构,原始模型模式适用于任何的等级结构。缺点是每一个类都必须配备一个克隆方法。

  5、SINGLETON―俺有6个漂亮的老婆,她们的老公都是我,我就是我们家里的老公Sigleton,她们只要说道“老公”,都是指的同一个人,那就是我(刚才做了个梦啦,哪有这么好的事)

  单例模式:单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例单例模式。单例模式只应在有真正的“单一实例”的需求时才可使用。

结构型模式

  6、ADAPTER―在朋友聚会上碰到了一个美女Sarah,从香港来的,可我不会说粤语,她不会说普通话,只好于我的朋友kent了,他作为我和Sarah之间的Adapter,让我和Sarah可以相互交谈了(也不知道他会不会耍我)

  适配器(变压器)模式:把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口原因不匹配而无法一起工作的两个类能够一起工作。适配类可以根据参数返还一个合适的实例给客户端。

  7、BRIDGE―早上碰到MM,要说早上好,晚上碰到MM,要说晚上好;碰到MM穿了件新衣服,要说你的衣服好漂亮哦,碰到MM新做的发型,要说你的头发好漂亮哦。不要问我“早上碰到MM新做了个发型怎么说”这种问题,自己用BRIDGE组合一下不就行了

  桥梁模式:将抽象化与实现化脱耦,使得二者可以独立的变化,也就是说将他们之间的强关联变成弱关联,也就是指在一个软件系统的抽象化和实现化之间使用组合/聚合关系而不是继承关系,从而使两者可以独立的变化。

  8、COMPOSITE―Mary今天过生日。“我过生日,你要送我一件礼物。”“嗯,好吧,去商店,你自己挑。”“这件T恤挺漂亮,买,这条裙子好看,买,这个包也不错,买。”“喂,买了三件了呀,我只答应送一件礼物的哦。”“什么呀,T恤加裙子加包包,正好配成一套呀,小姐,麻烦你包起来。”“……”,MM都会用Composite模式了,你会了没有?

  合成模式:合成模式将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式就是一个处理对象的树结构的模式。合成模式把部分与整体的关系用树结构表示出来。合成模式使得客户端把一个个单独的成分对象和由他们复合而成的合成对象同等看待。

  9、DECORATOR―Mary过完轮到Sarly过生日,还是不要叫她自己挑了,不然这个月伙食费肯定玩完,拿出我去年在华山顶上照的照片,在背面写上“最好的的礼物,就是爱你的Fita”,再到街上礼品店买了个像框(卖礼品的MM也很漂亮哦),再找隔壁搞美术设计的Mike设计了一个漂亮的盒子装起来……,我们都是Decorator,最终都在修饰我这个人呀,怎么样,看懂了吗?

  装饰模式:装饰模式以对客户端透明的方式扩展对象的功能,是继承关系的一个替代方案,提供比继承更多的灵活性。动态给一个对象增加功能,这些功能可以再动态的撤消。增加由一些基本功能的排列组合而产生的非常大量的功能。

  10、FACADE―我有一个专业的Nikon相机,我就喜欢自己手动调光圈、快门,这样照出来的照片才专业,但MM可不懂这些,教了半天也不会。幸好相机有Facade设计模式,把相机调整到自动档,只要对准目标按快门就行了,一切由相机自动调整,这样MM也可以用这个相机给我拍张照片了。

  门面模式:外部与一个子系统的通信必须通过一个统一的门面对象进行。门面模式提供一个高层次的接口,使得子系统更易于使用。每一个子系统只有一个门面类,而且此门面类只有一个实例,也就是说它是一个单例模式。但整个系统可以有多个门面类。

  11、FLYWEIGHT―每天跟MM发短信,手指都累死了,最近买了个新手机,可以把一些常用的句子存在手机里,要用的时候,直接拿出来,在前面加上MM的名字就可以发送了,再不用一个字一个字敲了。共享的句子就是Flyweight,MM的名字就是提取出来的外部特征,根据上下文情况使用。

  享元模式:FLYWEIGHT在拳击比赛中指最轻量级。享元模式以共享的方式高效的支持大量的细粒度对象。享元模式能做到共享的关键是区分内蕴状态和外蕴状态。内蕴状态存储在享元内部,不会随环境的改变而有所不同。外蕴状态是随环境的改变而改变的。外蕴状态不能影响内蕴状态,它们是相互独立的。将可以共享的状态和不可以共享的状态从常规类中区分开来,将不可以共享的状态从类里剔除出去。客户端不可以直接创建被共享的对象,而应当使用一个工厂对象负责创建被共享的对象。享元模式大幅度的降低内存中对象的数量。

  12、PROXY―跟MM在网上聊天,一开头总是“hi,你好”,“你从哪儿来呀?”“你多大了?”“身高多少呀?”这些话,真烦人,写个程序做为我的Proxy吧,凡是接收到这些话都设置好了自动的回答,接收到其他的话时再通知我回答,怎么样,酷吧。

  代理模式:代理模式给某一个对象提供一个代理对象,并由代理对象控制对源对象的引用。代理就是一个人或一个机构代表另一个人或者一个机构采取行动。某些情况下,客户不想或者不能够直接引用一个对象,代理对象可以在客户和目标对象直接起到中介的作用。客户端分辨不出代理主题对象与真实主题对象。代理模式可以并不知道真正的被代理对象,而仅仅持有一个被代理对象的接口,这时候代理对象不能够创建被代理对象,被代理对象必须有系统的其他角色代为创建并传入。

行为模式

  13、CHAIN OF RESPONSIBLEITY―晚上去上英语课,为了好开溜坐到了最后一排,哇,前面坐了好几个漂亮的MM哎,找张纸条,写上“Hi,可以做我的女朋友吗?如果不愿意请向前传”,纸条就一个接一个的传上去了,糟糕,传到第一排的MM把纸条传给老师了,听说是个老处女呀,快跑!

  责任链模式:在责任链模式中,很多对象由每一个对象对其下家的引用而接

  起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。客户并不知道链上的哪一个对象最终处理这个请求,系统可以在不影响客户端的情况下动态的重新组织链和分配责任。处理者有两个选择:承担责任或者把责任推给下家。一个请求可以最终不被任何接收端对象所接受。

  14、COMMAND―俺有一个MM家里管得特别严,没法见面,只好借助于她弟弟在我们俩之间传送信息,她对我有什么指示,就写一张纸条让她弟弟带给我。这不,她弟弟又传送过来一个COMMAND,为了感谢他,我请他吃了碗杂酱面,哪知道他说:“我同时给我姐姐三个男朋友送COMMAND,就数你最小气,才请我吃面。”,

  命令模式:命令模式把一个请求或者操作封装到一个对象中。命令模式把发出命令的责任和执行命令的责任分割开,委派给不同的对象。命令模式允许请求的一方和发送的一方独立开来,使得请求的一方不必知道接收请求的一方的接口,更不必知道请求是怎么被接收,以及操作是否执行,何时被执行以及是怎么被执行的。系统支持命令的撤消。

  15、INTERPRETER―俺有一个《泡MM真经》,上面有各种泡MM的攻略,比如说去吃西餐的步骤、去看电影的方法等等,跟MM约会时,只要做一个Interpreter,照着上面的脚本执行就可以了。

  解释器模式:给定一个语言后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器。客户端可以使用这个解释器来解释这个语言中的句子。解释器模式将描述怎样在有了一个简单的文法后,使用模式设计解释这些语句。在解释器模式里面提到的语言是指任何解释器对象能够解释的任何组合。在解释器模式中需要定义一个代表文法的命令类的等级结构,也就是一系列的组合规则。每一个命令对象都有一个解释方法,代表对命令对象的解释。命令对象的等级结构中的对象的任何排列组合都是一个语言。

  16、ITERATOR―我爱上了Mary,不顾一切的向她求婚。

  Mary:“想要我跟你结婚,得答应我的条件”

  我:“什么条件我都答应,你说吧”

  Mary:“我看上了那个一克拉的钻石”

  我:“我买,我买,还有吗?”

  Mary:“我看上了湖边的那栋别墅”

  我:“我买,我买,还有吗?”

  Mary:“我看上那辆法拉利跑车”

  我脑袋嗡的一声,坐在椅子上,一咬牙:“我买,我买,还有吗?”

  ……

  迭代子模式:迭代子模式可以顺序访问一个聚集中的元素而不必暴露聚集的内部表象。多个对象聚在一起形成的总体称之为聚集,聚集对象是能够包容一组对象的容器对象。迭代子模式将迭代逻辑封装到一个独立的子对象中,从而与聚集本身隔开。迭代子模式简化了聚集的界面。每一个聚集对象都可以有一个或一个以上的迭代子对象,每一个迭代子的迭代状态可以是彼此独立的。迭代算法可以独立于聚集角色变化。

  17、MEDIATOR―四个MM打麻将,相互之间谁应该给谁多少钱算不清楚了,幸亏当时我在旁边,按照各自的筹码数算钱,赚了钱的从我这里拿,赔了钱的也付给我,一切就OK啦,俺得到了四个MM的电话。

  调停者模式:调停者模式包装了一系列对象相互作用的方式,使得这些对象不必相互明显作用。从而使他们可以松散偶合。当某些对象之间的作用发生改变时,不会立即影响其他的一些对象之间的作用。保证这些作用可以彼此独立的变化。调停者模式将多对多的相互作用转化为一对多的相互作用。调停者模式将对象的行为和协作抽象化,把对象在小尺度的行为上与其他对象的相互作用分开处理。

  18、MEMENTO―同时跟几个MM聊天时,一定要记清楚刚才跟MM说了些什么话,不然MM发现了会不高兴的哦,幸亏我有个备忘录,刚才与哪个MM说了什么话我都拷贝一份放到备忘录里面保存,这样可以随时察看以前的记录啦。

  备忘录模式:备忘录对象是一个用来存储另外一个对象内部状态的快照的对象。备忘录模式的用意是在不破坏封装的条件下,将一个对象的状态捉住,并外部化,存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态。

  19、OBSERVER―想知道咱们公司最新MM情报吗?加入公司的MM情报邮件组就行了,tom负责搜集情报,他发现的新情报不用一个一个通知我们,直接发布给邮件组,我们作为订阅者(观察者)就可以及时收到情报啦

  观察者模式:观察者模式定义了一种一队多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使他们能够自动更新自己。

  20、STATE―跟MM交往时,一定要注意她的状态哦,在不同的状态时她的行为会有不同,比如你约她今天晚上去看电影,对你没兴趣的MM就会说“有事情啦”,对你不讨厌但还没喜欢上的MM就会说“好啊,不过可以带上我同事么?”,已经喜欢上你的MM就会说“几点钟?看完电影再去泡吧怎么样?”,当然你看电影过程中表现良好的话,也可以把MM的状态从不讨厌不喜欢变成喜欢哦。

  状态模式:状态模式允许一个对象在其内部状态改变的时候改变行为。这个对象看上去象是改变了它的类一样。状态模式把所研究的对象的行为包装在不同的状态对象里,每一个状态对象都属于一个抽象状态类的一个子类。状态模式的意图是让一个对象在其内部状态改变的时候,其行为也随之改变。状态模式需要对每一个系统可能取得的状态创立一个状态类的子类。当系统的状态变化时,系统便改变所选的子类。

  21、STRATEGY―跟不同类型的MM约会,要用不同的策略,有的请电影比较好,有的则去吃小吃效果不错,有的去海边浪漫最合适,单目的都是为了得到MM的芳心,我的追MM锦囊中有好多Strategy哦。

  策略模式:策略模式针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式把行为和环境分开。环境类负责维持和查询行为类,各种算法在具体的策略类中提供。由于算法和环境独立开来,算法的增减,修改都不会影响到环境和客户端。

  22、TEMPLATE METHOD―看过《如何说服女生上床》这部经典文章吗?女生从认识到上床的不变的步骤分为巧遇、打破僵局、展开追求、接吻、前戏、动手、爱抚、进去八大步骤(Template method),但每个步骤针对不同的情况,都有不一样的做法,这就要看你随机应变啦(具体实现);

  模板方法模式:模板方法模式准备一个抽象类,将部分逻辑以具体方法以及具体构造子的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。先制定一个顶级逻辑框架,而将逻辑的细节留给具体的子类去实现。

  23、VISITOR―情人节到了,要给每个MM送一束鲜花和一张卡片,可是每个MM送的花都要针对她个人的特点,每张卡片也要根据个人的特点来挑,我一个人哪搞得清楚,还是找花店老板和礼品店老板做一下Visitor,让花店老板根据MM的特点选一束花,让礼品店老板也根据每个人特点选一张卡,这样就轻松多了;

  访问者模式:访问者模式的目的是封装一些施加于某种数据结构元素之上的操作。一旦这些操作需要修改的话,接受这个操作的数据结构可以保持不变。访问者模式适用于数据结构相对未定的系统,它把数据结构和作用于结构上的操作之间的耦合解脱开,使得操作集合可以相对自由的演化。访问者模式使得增加新的操作变的很容易,就是增加一个新的访问者类。访问者模式将有关的行为集中到一个访问者对象中,而不是分散到一个个的节点类中。当使用访问者模式时,要将尽可能多的对象浏览逻辑放在访问者类中,而不是放到它的子类中。访问者模式可以跨过几个类的等级结构访问属于不同的等级结构的成员类。
Wait while more posts are being loaded