若是你愛他,那就讓他成爲程序員,由於編程會使他的人生充滿快樂;若是你恨他,那就讓他程序員,由於編程會帶給他 無盡痛苦—這就是我一個從事編程多年的從業者的感悟。php
變成的過程是痛苦並歡樂的。做爲一個編程人(不敢叫程序員),當在汪洋的代碼中苦苦尋找程序的BUG,當面臨着一個 個技術難題而左思右想着解決辦法,我時常帶坐在電腦前或者在房間裏漫無目的的走來走去,絲毫沒有意識到時間在身旁匆 匆流逝,那種使人迷茫無助甚至壓抑的感受就像有一塊大石頭壓在胸口讓人喘息不過來;而當這些問題獲得解決,我看着一 行行代碼從指間飛到熒屏上,一個個功能模塊在本身手中不斷完成、完善,一切都雨過天晴,總算能交差了,這時只想着倒 頭便睡。編程的工做就是一個字——累,尤爲是心累,我想多數編程人都有同感。因此,我的以爲編程有時也是個力氣活, 要身體好,並且意志堅決。固然除了這些,搞編程還要基礎紮實,經驗豐富,善於積累總結。多年來,我總結了以下的編程 心得體會。
①基本功要好。
編程的基本理論、概念要掌握,像什麼計算機基礎操、網絡的使用以及對象、類、菜單、函數、常量、變量、數組、集 合、算法、數據類型、存儲變量、窗體、控件、事件、屬性等概念要明白掌握,還有就是流程控制語句,經常使用函數關鍵字等 等都要熟記於心。這些就好像武俠小說中的內功,要練好武功,內功要紮實。有了內功,就能夠學習招式——編程語言。比 如經常使用的C++、C#、Java、VB、PHP等等,有了內功基礎,這些招式均可以試練幾招,固然沒種招式都有差異——類、語句、 函數等的書寫格式都不相同,這就須要細緻練習,不可混淆,防止走火入魔。固然,本人以爲編程工具的學習只需掌握一輛 們便可,沒必要每一招都要學精,咱們通常人是沒有那麼多時間精力,除非一些天賦異凜的大俠外。有的大俠會以爲有些編程 語言比其餘的更有優點,但我以爲時代在發展社會在進步,每一種編程語言都在發展,都有本身的優點,只要能知足你工做 學習的須要便可。
②勤學苦練,持之以恆。
學會了武功,那就須要勤加修煉,只有在實戰中才能提高千米,不然就像《天龍八部》中的王語嫣,即便懂得不少武功 而不練習,可是一個菜鳥小兵就能將其戰勝。編程只有在不斷實踐學習中才能提高水平,積累經驗,而一旦圖中長時間撂下 ,雖不至於武功盡廢,但想恢復武力也要下很大功夫。本人就有相似經歷,不堪回首。今年6月的一天,領導忽然通知我參加 省裏的程序員比賽,比賽分理論和實際操做兩部分,理論部分佔30%,實際操做佔70%。實際操做要求採用VB .NET、C++、C# 、Java編程語言任選其一,數據庫採用SQL Server2005或Oracle 10G,在8小時內完成程序的設計文檔、編程調試、測試、數 據庫應用。當我看到比賽要求,我有點石化的感受。這裏面只有數據庫很熟,我已經好幾年不寫程序了,這下我可抓瞎了。 參賽名單領導已經報上去了,沒辦法只能硬着頭皮上了。通過一個月的地獄訓練,我總算找到了使用VB.NET的感受和熟悉度 ,從中也總結出一些經驗,最終考試取得了前幾名。
③要耐得住寂寞,堅持不懈。
編寫《九陰真經》的黃裳前輩在山中修煉四十餘年,終究神功大成,其毅力很是人能比。 編程也是同樣,一個功能完善的程序每每都有成千上萬行代碼,大小几兆幾十兆不等,工做量是至關大的。編程人員在電腦 面前一坐就是幾小時甚至十幾個小時,並不停的瞧着枯燥的代碼,翻閱着大量資料。好比本人在寫程序的時候常常是一我的 在夜深人靜的辦公室內徹夜奮戰(白天瑣事太多,晚上是我編程效率最高的時候),尤爲是今年賽程準備階段更是如此,每 天8個小時的苦練確實要有必定毅力才能堅持下來。這就要求編程的人要耐得住寂寞,要有毅力,要有不完成任務不睡覺的精 神,固然身體要好。若是耐不住寂寞,沒有堅持不懈的精神,三天打魚,兩天曬網,總是不能按時完成編程任務,那麼就很 難成爲一個合格的程序員。固然這種8小時內完成程序的比賽,雖然不怎麼提升你的編程水平,可是對檢驗你的編程能力倒是 一個很好的辦法,建議你們有時間能夠試一試。
④注意積累,善於總結。
凡事武功大成的大俠,每每著書立作或者留下本身的新的體會,而這些就是後人所爭搶的祕籍。不少人每次開發完成程 序不怎麼注意總結積累,固然咱們本身總結編程經驗不會成爲武林祕籍,但對咱們我的來講確是一筆不小的財富。每一個人編 寫代碼都有本身的習慣,而善於總結,每次完成程序開發後,都將編寫的特殊功能、函數、通用的功能模塊以及特殊方法技 巧單獨保存起來,下次編寫相似程序時就能夠直接使用,而不少程序中的通用功能模塊旺旺大同小異,這樣就節省時間,大 大提高了編程效率。好比數據庫方面程序不外乎數據庫的建立、存儲過程、視圖的編寫以及數據庫中數據的增、刪、改、查 各功能均可以將其單獨保存好,以備下次使用。而唱起堅持積累總結的人編程起來無往不利。記得我之前的一位老師,他善 於C語言。每次有人找他寫程序,通常狀況就是別人一邊說功能需求他一邊寫程序;需求說完了,他的程序差很少寫完了,然 後調試一下就搞定了,由於不少功能函數他都有現成寫好的,他編程只須要將這些函數接口調用一下就能夠了!
⑤寫代碼必定要加註釋。
好比上面的代碼加了比較詳細的註釋,很容易看懂,但不少人寫程序每每不加註釋或註釋太簡單,因此他寫的程序除了 他本人外,別人要讀他寫的代碼就太困難了,有時徹底看不懂。就像郭靖,若是不是他遇到了一個即懂中文又懂印度文的一 燈大師,恐怕他到死也不知道《九陰真經》總篇當中那些稀奇古怪的文字含義。不加註釋有時是要累死人的。本人就有累死 經歷。那次同事休息,他的編寫的系統須要大改,而我接受了這個系統完善的任務,結果沒有想到他的程序一個註釋都沒有 ,看得我頭昏腦脹,始終理不清他的思路,只得一遍一遍給同事打電話詢問。最後他沒休息好,而我也累得夠嗆。
⑥變量、函數、控件命名要規範。
我之前不太注意這個問題,結果每次看本身的程序都是一大堆text一、text2…,button一、button2…,看得我本身都 要琢磨半天才搞清楚代碼邏輯關係,浪費時間。因此之後寫程序,我都儘可能按照改進型匈牙利表示法來命名變量控件等。編 寫程序
命名規範這也是一個良好的編程習慣。
⑦編程工具版本問題。
有些人很愛追新,只要編程工具出新版本,立馬換上。我的以爲這個問題有待商榷,新版本當然功能強大,可是在編程 時還要逐步適應新工具,極可能改變你的編程習慣,從而下降你的編程效率。不是版本越新越好,而是你最習慣的工具最好 。