高效能養成雜記_給自己的新手建議

關於計算機科學——編程分支(20130115)

不要糾結以什麼語言入門,選一種開放資源最多的語言去學,比如Java,要知道大部分語言都具有相通的邏輯,專精其一、一通百通。

學習一種編程語言,要從一開始就堅持良好的編程習慣,因爲好的習慣可以使你事半功倍。

通過書本你或許只是學到了一門語言結構,這和軟件工程的編程思想有着本質區別。這就和寫作類似,光靠template是寫不出好文章的。

無論你之前有無編程經驗,都應瞭解,有時,你必須忘掉以前所學的東西,以提高可塑性。

編程風格的重要體現,是能否讓其他人讀懂(三點建議:1、method內代碼在1~15lines。2、good names。3、comment。)

設計思想:通用性原則——滿足一類條件都能運行。

逐步求精法:分解程序,使其變成很多段,fragment code。

從初學者變爲專家並不難,難在作爲專家仍能保持初學者的心態。

最後,從初學者到一般程序員的轉化時間一般在100小時左右,進階爲高級程序員也只要600小時左右,但成爲專家卻只有一小部分人,這不僅需要足夠的堅持,還需要一點點天賦(面對這個現實)。據統計,只有6%的人能成爲優秀的軟件工程師,而專家更是隻佔6%中的37%。

關於計算機科學——設計分支(20130223)

一個好的設計是在維護中進化而來的,並非哪個天才一蹴而就,寫blog也是如此,起初可能會寫得很差,但只要堅持、終能長進。

關於哲學——希望&自信(20130116)

Notice:有時,你很努力,可結果還是不盡人意,你是否問自己:“努力到底能否換來成功?”這時,請千萬別懷疑自己!努力確不一定能換來成功,但努力卻能帶來希望,正是因爲這份希望,才讓人們有面對一切的勇氣(失敗亦或死亡)。

關於數學——數學思想(20130118)

《怎樣解題》——[美]G*波利亞

第一
你必須理解題目
未知量是什麼?已知量是什麼?條件是什麼?條件有可能滿足嗎?條件是否足以確定未知量?或者它不夠充分?或者多餘?或者矛盾?
畫一張圖,引入適當的符號。
將條件的不同部分分開。你能把它們寫出來嗎?
第二
找出已知量&未知量之間的聯繫。
如果找不到直接的聯繫,你也許不得不去考慮輔助題目。
最終你應該得到一個解體方案。
你以前見過它嗎?或者你見過同樣的題目以一種稍有不同的形式出現嗎?
你知道一道與它有關的題目嗎?你知道一條可能有用的定理嗎?
觀察未知量!並儘量想出一道你熟悉的具有相同或相似未知量的題目。
這裏有一道題目和你的題目有關而且以前解過。你能利用它嗎?你能利用它的結果嗎?你能利用它的方法嗎?爲了有可能應用它,你是否應該引入某個輔助元素?
你能重述這道題目嗎?你能以不同的方式敘述它嗎?
回到定義上去。
如果你不能理解所提的題目,先嚐試去解某道有關的題目。你能否想到一道更容易着手的相關題目?一道更爲普遍化的題目?一道更爲特殊化的題目?一道類似的題目?你能解出這道題目的一部分嗎?只保留條件的一部分,而丟掉其他部分,那麼未知量可以確定到什麼程度,它能怎樣變化?你能從已知量中得出一些有用的東西嗎?你能想到其他合適的已知量來確定該未知量嗎?你能改變未知量或已知量,或者有必要的話,把兩者都改變,從而使新的未知量和新的已知量彼此更接近嗎?你用到所有的已知量了嗎?你用到全部的條件了嗎?你把題目中所有關鍵的概念都考慮到了嗎?
第三
執行你的方案。
執行方案
執行你的解題方案,檢查每一個步驟。你能清楚地看出這個步驟是正確的嗎?你能否證明它是正確的?
第四
檢查已經得到的解答
回顧
你能檢驗這個結果嗎?你能檢驗這個論證嗎?
你能以不同的方式推導這個結果嗎?你能一眼就看出它來嗎?
你能在別的什麼題目中利用這個結果或者中方法嗎?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章