告別碼農,成為真正的程式設計師
本文是我藉助 Google 從網上拼湊的文章,可能條理不是很清晰,希望對廣大程式設計師們有些幫助。
一、成長的寓言:做一棵永遠成長的蘋果樹
一棵蘋果樹,終於結果了。
第一年,它結了10個蘋果,9個被拿走,自己得到1個。
對此,蘋果樹憤憤不平,於是自斷經脈,拒絕成長。
第二年,它結了5個蘋果,4個被拿走,自己得到1個。
「哈哈,去年我得到了10%,今年得到20%! 翻了一番」。
這棵蘋果樹心理平衡了。
但是,它還可以這樣:繼續成長。
譬如,第二年,它結了100個果子,被拿走90個,自己得到10個。
很可能,它被拿走99個,自己得到1個。
但沒關係,它還可以繼續成長,第三年結1000個果子……
其實,得到多少果子不是最重要的。
最重要的是,蘋果樹在成長!
等蘋果樹長成參天大樹的時候,那些曾阻礙它成長的力量都會微弱到可以忽略。
真的,不要太在乎果子,成長是最重要的
切記:
如果你是一個打工族,遇到了不懂管理、野蠻管理或錯誤管理的上司或企業文化,
那麼,提醒自己一下,千萬不要因為激憤和滿腹牢騷而自斷經脈。
不論遇到什麼事情,都要做一棵永遠成長的蘋果樹,因為你的成長永遠比每個月拿多少錢重要。
二、人人都需要時間管理
一項國際查表明:一個效率糟糕的人與一個高效的人工作效率相差可達10倍以上。
哈佛有一個著名的理論:人的差別在於業餘時間,而一個人的命運決定於晚上8點到10點之間。
每晚抽出2個小時的時間用來閱讀、進修、思考或參加有意的演講、討論,你會發現,
你的人生正在發生改變,堅持數年之後,成功會向你招手。
我曾整理了一份『免費的程式設計中文書籍索引』(去github
時間管理可以幫助您把每一天、每一週甚至每個月的時間進行有效的合理安排。
運用這些時間管理技巧幫您統籌時間,對於每個人來說都是非常重要的。
在時間管理中,計劃組織相對於其他技巧來說是最簡單的一種。
比如,所有的時間管理建議都包括在一些表格當中,在表格中把您想要完成的任務填進去。
對很多人來說,這是最簡單和普通的了。
三、別人能成功的事,未必自己就能成功
飛機上,烏鴉對乘務員說:給爺來杯水!
豬聽後也學道:給爺也來杯水!
乘務員把豬和烏鴉扔出機艙,烏鴉笑著對豬說:傻了吧?爺會飛!
外界因素是一種約束條件,自身能力也是一種約束條件, 往往更重要。
所以,別人能成功的事,未必自己就能成功。
四、你搜索到的只是網頁,不是知識
知識的型別及它在程式設計師大腦中如何成長。
有三類知識:
概念知識(為什麼、是什麼、如果——語義上的)——理解軟體系統構建過程中的概念、原理、關係及主要方法。
實踐性知識(如何做——過程中的)—— 關於如何解決特定程式設計問題的知識。
這類知識不需要深入理解實現方法選擇過程中隱含的概念及基本原理。
隱性知識(專業知識、經驗及直覺)——基於軟體系統實現過程中所積累的個人經驗,在大腦中形成的內在知識。
這類知識很難傳授,因為它的大部分都儲存在我們的潛意識中。
可解決實際問題的高效搜尋
A. 查詢Seek
-
定義Definition——弄清楚要解決什麼問題,並以要查詢的內容為焦點。
-
檢索Retrieval(使用標準的Google、程式碼搜尋或其他的檢索引擎)—有很多關於如何高效的使用檢索引擎的建議。
-
瀏覽結果Browse(內容的質量、可信度及專業技術的水平;如果資料的可信度過低,無須再看)-> 閱讀 -> 評估(人力物力、所需工具及函式庫)
B. 使用 Use
-
複製程式碼 - 單獨複製(針對這一目的,帶有長釘技術的顯式單元測試最適合)。
-
清除程式碼 - 僅保留最小限度、相關性程式碼,清除解決方案中的其它程式碼。
-
應用程式碼 - 在系統中應用程式碼。
C. 學習Learn
-
理解Understand——你做了什麼及你為什麼那樣做——從程式碼和實現中學習。
-
擴充知識Expand——
-
實踐性知識Practical:解決問題的特定方法、技巧及風格;
-
概念知識Concept:學習新概念、提煉現有的並構建自己的概念;
-
隱性知識Recessive:明智地使用並學習搜尋到的解決方案,經驗會自然而然地得到增長。
-
-
收集Collect(連結、意見、參考文獻、閱讀清單)—任何對你今後搜尋、發現及學習有用的有趣資訊。為這些目標積累知識。
還有一點也很重要: 分享與交流。
最後還是我在部落格中經常寫道的那句話(不要嫌我羅嗦,再寫一遍),學歷代表過去,能力代表現在,學習能力代表未來。