最近在寫一個才數位遊戲。也就是電腦出一個數字,然後你猜,電腦告訴你大了還是小了,迴圈這個過程,直到猜中。但是我把這個東西用了很複雜的設計來表示,什麼玩家對象,什麼電腦對象,什麼事件通訊,什麼使用者介面,什麼商務邏輯。唉,搞了一天還沒完成。一直以來,我都希望找到一個比較高效的設計方法,最好可以一勞永逸的。但是一開始就設計對象,憑空創造所謂的使用者介面之類的邏輯層,結果問題難度會變得超乎我的想象。如果我開始就是從商務程序出發,可能更加有更加明確的思路。下次試一下先整理商務程序的設計方法。
誤區:1.基礎最重要,所以什麼英語數學應該努力學好。2.交際比技術更重要3.刻苦勤奮最重要4. 多學幾門 我的看法:1.
最近發現一個物件導向比較有趣的討論:談談繼承的局限性(http://www.cnblogs.com/xrunning/archive/2011/10/17/2214487.html).以四邊形,矩形,正方形為例子討論繼承的問題。矩形是兩對邊平衡的四邊形,而正方形是內角為90度的矩形。一種設計方式是:四邊形做基類,矩形繼承自四邊形,正方形繼承自矩形。理由是:矩形是四邊形,正方形是矩形。矛盾在於,物件導向的類繼承隱喻了這樣一件事:子類是父類的超集(包含父類),但是正方形並不需要四條邊長的屬性,而只需
如題。很多演算法書,什麼這個結構,那個結構,什麼網路流,什麼環,什麼哈夫曼,什麼最短路徑,什麼面積,這些演算法關我屁事啊。我要學在我開發過程中可以實際的,改善我編碼能力的知識,而不是去認識演算法有多牛B,然後自己的編程能力一點都沒提高(或者有提高,畢竟枯燥的演算法訓練了你的忍耐力)。 在實際編碼中,分析複雜的邏輯,複雜的組合問題,檢查邏輯漏洞,發現缺少的組合情形,這些知識就很有用,因為我們經常要去分析問題,要建立一個全面而非模糊的認識,防止邏輯判斷出現沒有涵蓋的情形出現,要建立一個迴圈,每層迴
學習是不能夠強求的事情。但是休息,基本上都是有益的。標題的意思是什嗎?與其強迫自己假裝在學習,實際沒什麼效果,還不如把這些時間用來休息,因為休息會讓你恢複精力,這至少是件好事。很多時間管理的書籍,都是把重點花在怎麼提高“利用率”,但是我覺得花在實際上的時間不是越長就越有效果,關鍵還是看效果,而不是時間的多少。如果是有效果的,一個小時比你八個小時要有意義。因此,我認為怎麼讓自己忙碌起來是一個錯誤,而應該是怎麼讓自己高效起來。如果讓自己高效起來,那麼休息就是一個極為重要的手段。現在資訊爆炸的時代(已
首頁是部落格園的精華所在,部落格園一天有500篇新博文,要是按順序羅列出來,會浪費大家的精力,如果只是挑選一下相對比較有價值的博文出來,放在首頁,無疑也是最大化大家時間價值的方法。 主觀推薦是不行的,我們應該用客觀的演算法去篩選文章,思路就如google搜尋網頁的原理一樣。雖然,部落格園的博文數量還在人力範圍。 一片文章有沒有價值,基於什麼樣的線索(前提是你沒有去閱讀內容,不被主觀影響)?第一,閱讀點擊量。因為部落格園的所有博文都在部落格園的管理範圍內,所以部落格園知道那篇文章多人點擊。點擊量
所謂熟能生巧,但離專家卻有一個巨大的鴻溝,在農田幹活的農民怎麼也成不了水稻專家,推廣之,那些在本職工作上勤勤懇懇的人,在業務上總有一個不可衝破的瓶頸。這種現象非常普遍,這就是為什麼很多人很勤奮,卻很“笨” ,有點碌碌無為的感覺。到底笨的原因在哪裡?我想,之所以農民成不了專家,程式猿成不了程式設計師,主要的原因在於工作者沒有專家的眼光。所謂專家的眼光是從高層次的去審視問題的,比工作者的層次要高很多,工作者往往只是一種經驗性的,習慣性的勞作,而專家是經過高層次思考的工作。舉例說:工作者的層次:1+1
我在想,演算法那麼多,是否存在一種共同的性質。比如貪心演算法,就是整體中找出一個部分,這個部分的最優解將組成整體的最優解。比如1 到 100的和,我們抽取1到10為一部分,他的和也是最終和的一部分。不知道這算不是貪心演算法?找1.。。100中能被3整除的數,也符合這個。找1.。。100中有多少組和等於100的數。這個就不能隨便分割了。如果隨機抽取兩個數來判斷,這樣會產生非常龐大的組合。這是最低效的演算法。第二種方法,可以通過代數式100-a=b這個方法,順序抽取一個數,判斷另一個數是否在集合中。
本文獻給想學編程或者需要學編程的人們。 一、編程是什嗎?電腦(電腦)是通過程式來控制的,程式是一段指令,而編程就是編寫程式,其目的是控制電腦的運作。其實生活中我們也要把編寫一些簡單的程式,比如有些電視機有家長監護功能和定時功能,我們就可以指定哪個時段可以看電視,電視有畫面,哪個時段不能看電視。這是對電器的例子,還有一些例子是對人的,比如一套辦事流程,規定你先到那個視窗,準備什麼材料,再到哪個部門的哪個視窗。編程的目的就是讓電器,電腦,甚至是人按照一定的程式流程辦事。當然,我們這裡討論的編程是針
可汗學院 http://open.163.com/khan/ 可汗學院((Khan Academy),是由孟加拉裔美國人薩爾曼·可汗創立的一家教育性非營利組織,主旨在於利用網路影片進行免費授課,現有關於數學、曆史、金融、物理、化學、生物、天文學等科目的內容,教學影片超過2000段,機構的使命是加快各年齡學生的學習速度。創辦人薩爾曼·可汗擁有麻省理工學院的碩士學位,以及哈佛大學的MBA學位,曾從事金融業。裡面的課程很不錯,感謝那些翻譯者!
本文記錄一些離散的想法。1.演算法設計的改進。現在的語言內建的是for,while等迴圈語句,我想能不能整合一個更好的書寫範式。比如遞迴的幾個基本結構:a。基礎條件b。遞迴迴圈c。終止條件把這幾個要素的結構寫清楚點。然後不管是尾遞迴還是什麼遞迴,自動讓編譯器最佳化對應的代碼出來。然後是窮舉法的演算法結構a。集合b。窮舉講這些一般的演算法結構給總結出來,作為語言的一部分,程式員只需要按照格式套進去,而不需要管具體是什麼資料。2.對集合操作的改進。現在很多語言都只是關注元素的操作,而對集合操作很少
人是慾望的動物。我們常常會想做到,想得到什麼,而內心深受得不到的煎熬,這在佛家中就叫:不可得之苦。我並不是佛家弟子,不會建議各位無欲無念,正相反,我要建議的是一個改善狀況的有效方法。當你不可得煩悶的時候,你可能會勞碌的在堅持,希望奇蹟出現。這是不可能的,我的價值觀是:靠幸運得到的東西沒價值。為什麼,因為幾率太低,就算這個物品值1000萬,你得到的機會卻只有一千億分之一,那麼你也不可能重複這個過程。事實上,幸運從來不會光顧我,你也是一樣,從出生那一天就決定了,因為你不是李嘉誠的兒子。如果有不可得
有一種普遍的說法是把封裝、繼承和多態並稱為物件導向的三大特徵。如果你很熟悉C++並且對物件導向思想有過一些思考,那麼很可能對這個說法有過懷疑,物件導向思想在本質上認為世界是由對象構成的,和面向過程是世界觀的不同,而所謂的三大特徵實際和物件導向的思想本質沒有半毛錢的關係,準確的表述應該是封裝、繼承和多態是C++相對於C的三大特徵。如果你碰巧瞭解一點C++編譯器可能會發現封裝也好,繼承、多態也好都只是文法糖,技巧層面的東西而已,和思想無關。以上為廢話。 本文主要就C++的繼承機制進行一些討論。很多C
1. 前期準備 2. 事物發展的客觀規律 3. 合理安排先看我的工作時間表:類型工作和交通吃喝拉撒休息個人可支配時間 8點——12點早餐半個小時中午半個小時 14點——19點中午半個小時晚上八個小時 晚飯半個小時 總結9個小時1個半小時8個半小時5個半小時可以看出,現代人將大部分的生命都奉獻給資本家了。在這個有限的時間裡,如何合理安排是建立自己事業最關鍵的內容。當然,你也可以佔用工作的時間,只是不要讓老闆發現。 4. 戰術 6. 觀察別人,效仿別人,思考成功的根本 7.
XXX有限公司章程第一章 總則第一條 根據《中華人民共和國公司法》和有關法律、行政法規制定本章程。第二條 根據相關法律法規實行登記,以登記內容為為準。公司註冊、經營、清算等過程中遵守相關法律法規。公司管理者應保證股東利益。第二章 組織第三條 股東組成以行政部門的登記註冊為準。股東是公司的最高權力機構。第四條 公司獲利分紅的受益人和分紅比例由全體股東商議一致決定,股東不再享受公司紅利。第五條 紅利受益人和收益比例由本章程規定。公司紅利按股份平均分成2000股,股份分配如下:
1.首先是要察顏觀色,這個是基礎能力.察言觀色是對人的情緒變化有敏銳的觸覺.這並不是一個不良的習慣,察顏觀色後阿諛奉承,拍馬屁等才是我們所討厭的.2.要遵從社會的習俗.a.對長輩要尊重,而且要形式化,要做出具體的給人看到,而不要放在心裡.形式化只要不是假意的,而是真誠,那就不算是虛偽,不算是形式主義.b.對有恩於你的人,要尊敬.同樣也要表現出來.我記得小時候的教師老是抱怨說教育的好學生,畢業後都沒有回來找自己,而那些調皮學生,反而經常來找自己.我想不是好學生不懂的尊重人,而更多是優秀生往往不懂的
實際開發的時候,往往想得多,做得少。設想很完美,動手就覺得一頭霧水。就算是堅持下去,結果也會越來越艱難。為什麼會陷入這個困境,在於我們想的未必是我們能力範圍的。我們想的常常就是我們略知一二的東西,經常會用一些自己不熟悉的高科技去編程,我覺得這樣是問題的根源。如果你想要一個很完美的實際,故意去設想很周到,實際上就已經是犯了錯誤。編程不能靠“設計”,而只能靠直覺。當技能熟悉到你可以作為直覺使用的時候,它就越沒有出錯的風險,設計優美是人們的追求,但是既然你都沒熟悉,就該承認這個基本事實,而不要再實際開
數,就是一個數,複數,就是兩個數,依此類推,還有三個數等等。一個數對應實數軸,兩個數對應虛數軸和實數軸(組成平面),三個數對應立體空間。也就是,多一個數,就添加一條數軸,這條數軸和之前的任意一個數軸形成一個平面,任意兩個形成一個空間(至於4維就不知道如何描述了)。也就是理論上我們可以添加無限維,形成一個無限重疊,迴圈遞迴的奇怪空間。
1.構思階段很重要,如果能用中文去描述你想要的東西,很有可能可以用程式語言來實現。當然有時候你以為你想明白了,其公用程式寫一次根本不是這麼一回事。這是一個需要花時間,和精力去關注的階段。如果連要做什麼都不清楚,不要貿然進入編碼階段。越後面的階段,要“重啟”整個編程流程代價就越大。2.關注特殊性,編程一般是由特殊到一般的過程,一開始很難直接進入一般狀態,所以把特殊性給找出來,作為分析一般性的材料。3.站在演算法的層次去思考問題。把業務轉換為數文書處理。4.用描述性的語言替換過程性的語言。注意邏輯
一個好的程式員,好在哪裡?我覺得並不是人品問題,而是世界觀的問題,擁有怎樣的世界觀,是有利程式開發的,這就是本文要分析的。一、偉大的學習觀:我發現有幾種學習觀是沒有意義的,比如努力學習,勤奮學習,因為很多人很努力,成績卻不怎麼樣。學習單靠努力是不行的,學習應該有方法,而方法可能有多種多樣,所以很難通用。普天之下行之有效學習觀是否存在?最近,我發現了一種。這要從一個疑問句開始:為什麼同樣的東西,有的人學的結果是這樣,另外一些人學的結果就是那樣?學習這個東西,並不是簡單羅列在我們面前的,要想學到東西