第一階段: 純學習 和 入門
初學程序的大學,通常是在紙上寫程序,然后去機房上機的時候,輸入,運行。(調試基本不會。)
因為上機,機會是難得的,時間是寶貴的。那時候的策略:
1. 在紙上能寫出正確到甚至完美的程序。
2. 盡快需要學會盲打,甚至買了一個鍵盤卡片來練手感,甚至有同學找來了小霸王學習機鍵盤。
總結,那時候應該是打下了良好的面向過程的編程基礎。
今天看來,教材上的例子代碼異常丑陋、風格垃圾、思路混亂,當時卻視其為經典。不知道如今有無改善。
那時候書(教材和圖書館的)是唯一的學習入口。哪有機會可以時刻用PC?
第二階段:進入狀態
參加工作后,那時候公司網絡時有限制,代碼寫了不少,一般程序都是現寫現調,甚至于懶散到讓編譯器來檢查輸入的錯誤。
已經熟悉甚至依賴調試,不動腦子,憑本能去寫邏輯和流程。主要的三大學習和日常借鑒入口:
開發工具的參考手冊(MSDN)
codeProject/vckbase等少數的幾個網站
公司前輩的遺留源碼
這種狀況,一直持續到現在。
那時候基本策略: 快速找到并熟悉某個API某個MFC類,從MSDN
快速找到codeproject某個功能的例子代碼,并實現。擴展前輩的功能等等。
總結: 大部分代碼都自己寫,從常用的基礎功能庫,到業務邏輯,到整體框架。
累的半死,拖了很長的時間。尤其是在費勁的做了2個完全一手打理的產品之后。
卻有一種程序員常有的那種虛假的造物主感覺。
第三階段: 迷茫
在幾個產品,開發嚴重落后于進度,質量嚴重低于預期,并出現困局。
并在局部功能的開發能力和整體架構方面遇到個人發展到瓶頸。
時常能找到的安慰借口是 個人產能有限,并且人月是個神話。
再牛的小聰明和土辦法,在科學家的論文面前,不堪一擊!
明明只是一種坐井觀天!!!閉門造車,出門肯定是車毀人亡。
網絡時代,最大的特點就是開放。其實我們這個時代已經不一樣了,
如今實現功能,甚至于一個solution,只要有足夠的耐心,總能找到開源的東西。
于是我們需要的僅僅是這3個能力:
1. 英語讀寫能力,把需求寫成幾個關鍵詞去搜索,能把下載的源碼的接口文檔看懂,能把某個論文的算法思路搞清楚
2.搜索能力,目標,開源源碼、論文、算法描述
3.整合能力,目前幾乎大部分開源源碼都是linux下,整合到工程中,還是需要以前的編程積累。
于是,你知道怎么寫 或者說 怎么用 程序了嗎?
原文轉自:http://blog.csdn.net/hellowithsmile/article/details/9321987