實用的20條編程經驗

實用的20條編程經驗


原文作者喬納森•丹尼可(Jonathan Danylko)是一位自由職業的web架構師和程序員,編程經驗已經超過20念,涉足領域有電子商務、生物技術、房地產、醫療、保險和公用事業。正如喬納森在文中所言,本文適合剛畢業的大學生和剛入門的程序員。如果你已是高級開發人員,或許你能在本文中看到自己的身影。

從11歲開始,我就一直在編程,並且一直都很喜歡技術和編程。這些年來,我積累了一些艱難又容易的經驗。作爲一名程序員,你或許還沒有這些經驗,但我會把它們獻給那些想從中學到更多的朋友。


我會持續更新這些經驗,我可能還會有更多的感想,但就我這20年來看,我想下面這個列表中基本不需要增添額外的東西了。下面就是我至今最難忘的經驗。


1.估算解決問題所需要的時間。不要怕,承認吧!我曾見過一些程序員爲了解決一個特殊問題而坐在顯示器前面8個小時。爲自己定一個時間限制吧,1小時、30分鐘或甚至15分鐘。如果在這期間你不能解決問題,那就去尋求幫助,或到網上找答案,而不是嘗試去做“超級堆碼員”。


2.編程語言是一種語言,只是一種語言。隨着時光推移,只要你理解了一種語言的原理,你會發現各種語言之間的相似之處。你所選擇的語言,你應該覺得最“舒服”,並且能夠寫出有效(而且簡潔)的代碼。最重要的是,讓語言區適應項目,反之亦然。


3.不要過於重視程序的“程序的設計模式”。有時候,寫一個簡單的算法,要比引入某種模式更加容易。在多數的情況下,程序代碼應是簡單易懂,甚至清潔工也能看懂。


4.經常備份代碼。我年輕時,就有過因硬盤故障而丟失大量代碼的經歷,這經歷很恐怖的。只要你一次沒有備份,就應當想有個嚴格的期限,比如用戶明天就要。此時就該版本控制工具大限身手了。


5.承認自己並不是最頂尖的程序員——知不足。我常想,我對編程瞭解已經足夠多,但是總有其他人比你優秀。正所謂,“一山總比一山高”。所以,向他們看齊吧。


6.學習學習再學習。正如第5點所說,我經常會在手裏拿着一瓣計算機或者編程相關的雜誌或者書。誠然,總有很多你不知道的技術,你可以從中學習以保持不落後。如果你有一種靈巧的方式來獲取你需要的新技術,那你應該每天都堅持學習。


7.永恆的變化。你對待技術/編程知識,就應該想你對待股票一樣:多元化。不要在某一特定技術上自我感覺良好。如果那種技術或語言已經沒有足夠支持,那你還不如現在就開始更新你的簡歷,並啓動培訓新計劃。我能保持前行的主要原則是什麼呢?至少了解兩到三種語言,所以,如果某種語言過時了,你在學習新技術的時候還可以依靠另一種語言。


8.提攜新人。協助並且培養初級/入門的開發人員學習優秀的編程方法和技巧。也許你還不知道,在幫助他們向更高一層前進的時候,你也向更高一層提升,你會更加自信。


9.簡化算法。代碼如惡魔,在你完成編碼後,應回頭並且優化它。從長遠看,這裏或者那裏的一些改進,會讓後來的支持人員更加輕鬆。


10.編寫文檔。無論是Web服務的API,還是一個簡單的類,你儘量編寫相應的文檔。我曾經引以爲豪的代碼註釋,因過度註釋而有人指責。給三行代碼加一行註釋,只需要你幾秒鐘時間。如果那時一個比較難以理解的技術,千萬別擔心過多的註釋。如果你能很好的做好自己的工作,大多數架構師、後備程序員和支持組都會感激你的。


11.測試!測試!再測試!我是一名黑盒測試粉絲。當你完成編碼後,你“被認可”的時間就開始了。如果你們公司有QA部門,如果你的代碼中有錯誤,那你得到的評論可能比項目經理還多。如果你不徹底測試自己的代碼,那恐怕你開發的就不只是代碼,還可能會聲名狼藉。


12.慶祝每一次成功。我見過很多程序員在解決編程難題後,會和同伴握手、擊掌甚至手舞足蹈。每個人在生命中都會碰到“頓悟”。如果一個程序員高興的跑來叫你去看他的非凡代碼,也許你已經看過這樣的代碼100遍了,但你也應該爲這個傢伙而慶祝101次。(《慶祝成功的九種方式》。)


13.經常檢查代碼。在公司,你的代碼要經常檢查(包括自查和其他同事檢查)。不要把別人的檢查,看成是對代碼風格的苛求。應該把它們看作是有建設性的批評。對個人來說,經常檢查你的代碼並且自問,“我怎樣才能寫得更好呢?”這會加速你的成長,讓你成爲一個更加優秀的程序員。


14.回顧你的代碼。在看到自己以前的代碼時,通常會有兩種方式“難以置信,我竟然能寫出這樣的代碼”和“難以置信,我竟然能寫出這樣的代碼”。第一種往往是厭惡的語氣,並在想如何改進它。你也許會驚歎,舊代碼也能復活成爲一種更好的程序,甚至是一個完整的產品。第二種通常帶着驚奇和成就感。開發人員應該有一到兩個自己完成的項目成果,是那種能讓衆人不禁而立並且注目而觀的項目。同樣,基於你優越的編程能力,你可以把過去的程序或者項目拿出來,把他們更新爲更加優秀的產品或者想法。


15.幽默是不可或缺的。在我20年的開發生涯中,我還沒有碰到哪個程序員是沒有幽默感的。實際上,幹我們這行,幽默是一項必備品。


16.謹防那些無所不知的程序員,不願分享的程序員,還有經驗不足的程序員。當你遇到這幾種程序員時,你自己要謙虛。無所不知的程序員,更想當一個英雄而不是團隊成員;保守的程序員則是在編寫他們獨享的代碼,而經驗不足的程序員則會每十分鐘就來問你一下,當代碼完成後,代碼已經是你的,而不是他們的。


17.任何項目都不會那麼簡單。朋友、家人和同事曾請求我倉促的做一些事情,倉促的做一些程序或者網站。對於這樣的事,應當雙方確定好計劃,才能做出令兩方都滿意的東西。如果某人起初只是需要一個使用MIcrosoft Access的、只有三個頁面的網站,但將來就有可能變成一個有15個頁面的網站,使用SQL Server,有一個論壇,還有一個定製的CMS(內容管理系統)。


18.任何時候都不要想當然。假如你要承接一個簡單的項目,你可能會認爲某個部分可以輕鬆的完成。千萬別這樣想!除非你有一個類,組件,或者一段已經寫好的代碼,並且在現有的項目已經測試通過。不要認爲這將是很容易的。


19.沒有已經完成的軟件。曾經有一位程序員告訴我,沒有軟件是已經完成的,他只是“暫時告一段落”。這是明智的忠告。如果客戶還在使用你寫的程序,並經受了時間的考驗。如果有機會,你仍在更新它,這並不是什麼壞事,這讓你不斷的前行。


20.耐心是一種美德。當客戶、朋友和家庭成員用電腦的時候,他們也許會受挫,進而想砸電腦,或氣沖沖的離開。我一直在告訴他們,“是你掌控電腦,不是電腦掌控你。”對於用作編程的電腦,你要有一定的耐心。一旦程序員知道問題所在後,他們就會站在電腦的角度看問題,並且說,“哦,這就是他爲什麼是這樣的。”


以上轉自伯樂在線。
虛懷若谷,求知若渴。
同時,多分享多交流。
多自查代碼,保證代碼簡潔明瞭。
儘量減少不必要,或者容易導致歧義的註釋。
發佈了19 篇原創文章 · 獲贊 2 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章