20年來我得到的20條編程經驗

來源:互聯網
上載者:User

我從11歲開始編程,並且一直都很喜歡技術和編程。這些是我一直以來獲得的經驗教訓。作為一個程式員,你可能需要這樣的忠告。我更希望每個人在擷取這些忠告的同時能夠學到更多。

我將會不間斷地更新這裡,我可能會有更多的要寫,但是就我這20年來看,我認為沒有什麼更多的需要加在這個清單下了。:-)

這就是至今為止我印象最深的一些教訓。

1、解決問題時估算你所需要的時間。C'mon,admit
it! 我曾見過一些程式員為瞭解決一個特殊的問題而連續坐在顯示器前面8小時,我會像下一個會成為這樣的程式員一樣感到內疚。為自己定一個時間表吧,每1小時,30分鐘,甚至15分鐘。如果在這期間你不能找出問題的解決辦法, 那麼就去尋求別人的協助,或者在網路上去找答案,而不是嘗試去做super-coder.

2、程式設計語言是一種語言,也只不過是一種語言。隨著時間的增長,只要你理解了一種語言是怎麼工作的,你就會發現各種不同語言之間有相似之處。你所選擇的語言應該讓你覺得舒服,並且能夠寫出有效(而且簡潔)的代碼。總重要的,讓語言本身適合這個項目,反之亦然。

3、不要過頭-寫“設計模式”的程式。 
有時候,寫一個簡單的演算法要比把某種模式引進來容易的多。多數情況下,應該寫易懂的代碼,做到哪怕清潔工也得讀懂。

4、經常備份代碼。在我年輕的時候就有過硬碟壞掉了而丟了許多代碼的經曆,這讓人感到相當煩躁。一次你沒有備份你的資料,那就彷彿一次客戶有著嚴格的期限明天就需要他們的東西。(The
one time you don't back up your data may be the one time where you have a strict deadline with a client and they need it tomorrow. )這時源碼/版本控製程序就可以幫你。

5、接受一個事實,你並不是最牛的程式員。我常常想我已經對編程瞭解的夠多了,但是也經常會發現有人明顯比我強。所以,向他們學習吧。

6、學習再學習
像第五條說的,我經常會在手裡拿一本電腦或編程相關的書、雜誌(我的朋友們可以作證)。真的,你可以從中學到不少技術,這樣也可以讓你在工作上不會落後。當然如果你有一個更好的方式來接觸你需要的新技術,那麼你應該每天都學習它。

7、變化是會經常發生的。
你對編程技術的熟悉就好像你對待一支股票一樣:是變化的。不要對一門特定的技術感覺良好。如果這種技術或者語言已經得不到足夠的支援了,你最好馬上開始更新你的簡曆、開始接受培訓吧。我分別的主要的原則就是看這項技術能否讓我繼續下去。至少瞭解兩到三種語言,這樣一旦一種不行了,你還可以在學習新技術的時候依賴另一種。

8、給予新手協助。
協助並且培養新手/初級的開發人員,讓他們具有良好的編程技巧。你或許從未意識到...這樣你會使很多人成長,並且在培養他們為下一個位置做準備時你也會感到很開心。

9、讓演算法簡單化。代碼就像朋友一樣,你完成編碼以後,應該從頭再看一遍並且最佳化它。代碼上這裡或者那裡一點點的改進,會讓後來長期維護的人輕鬆很多。

10、給代碼加註釋。
-不管是在注釋一個WEB服務的API還是在注釋一個簡單的類,你儘管做就是。我曾經因過度的代碼注釋而被人指責過,而這卻又是我最引以為豪的事。為三行的代碼加一行注釋僅僅需要你幾秒鐘的時間。如果是一個比較難理解的技巧,千萬別擔心過度的注釋。你做你該做的,這就是架構師,編碼助理、支撐組都最不會抱怨的地方。

11、測試,測試,測試 
我是黑箱測試的擁蹙。當你完成編碼的時候,你“被認證”的時候就開始了。如果你們有品質保證部門,那麼相對於專案經理對你錯誤的評論而言,他們會評論得更多。如果你完全不測試你的代碼,那麼恐怕你開發的就不僅僅是代碼了,可能還有你糟糕的名聲。

12、為每一個成功慶祝。
我遇到過的許多程式員在解決完一個編程技術的頭痛問題時,常常和他們的同伴握手、擊掌、甚至手舞足蹈。每個人在生活中都會碰到“豁然開朗”時候。一個程式員高興地跑來叫你去看他獨創的代碼,以你的經曆或許你已經看過這樣的代碼100遍了,但也應該為了這個夥計來第101次慶祝這個成功吧。

13、經常檢查你的代碼。
無論是項目還是個人,在公司裡你應該常常檢查你的代碼,不要把別人的指責當作打擊,而是把它們看作是有建設性的批評。對個人來說,常常檢查你的代碼並且自問 “我怎樣才能讓它更好呢” 這會讓你更快地成長,使你成為一個更好的程式員。

14、回顧你過去的代碼。 
看到自己以前的代碼的時大家經常會有兩種表述:“難以至信,我居然寫過樣的代碼”和“難以至信,我居然寫過樣的代碼”。第一種表述經常是帶著厭惡的語氣。想想如何去改進它,當你讓這些超老的代碼重新複蘇,成為更好的、正常的程式甚至完整的產品時,你會感到驚喜的。第二種表述常常帶著驚奇和成就感。開發人員應該完成一兩個經得起考驗、經得起討論的工程代碼。另外,你可以利用這些代碼或者工程把他們作成一個更好的產品或者想法,這就要看你優秀的代碼能力了。

15、幽默感是必須的。
我20年的開發生涯中,我從來沒有碰到過一個程式員沒有相當的幽默感的。確切地說,在我們這個行業,這是必須的。

16、當心那些無所不知的人,不願分享的人,和經驗不足的人。當你遇到這幾種程式員時首先你自己要謙虛。那些無所不知的人更想作一個英雄而不是一個團隊成員,保守的人則是在編寫著他們不願意分享的代碼。而那些經驗不足的程式員會每十分鐘就來問你一下,當他完成開發時,那代碼已經是你的而不是他們的了。

17、沒有項目是從來就是簡單的。我曾被朋友、家人、同事要求忽忙地做一些事情,匆忙地寫一個程式或者網站。應該計劃能夠完成兩方都會滿意的東西。開始時可能他只是需要一個使用Microsoft
Access 的有3個頁面的網站,但是隨後就可能變成一個有15個頁面的網站且使用SQL Server、一個論壇、一個自訂的CMS(內容管理系統)

18、任何時候不要想當然。假如你接手一個簡單的項目,你可能會認為某些部分很容易完成。千萬不要這樣認為,除非你有一個類、組件、或者一段已經寫好的代碼並且已經測試通過。

19、沒有軟體是已經完成的。一個程式員有次告訴我沒有軟體是已經完成的,它們只是暫時完成了。這是明智的忠告。如果客戶還在使用你寫的程式,已經忍過了測試的那段時間。還有可能就是你仍在更新它,這並不是什麼壞事,它可以讓你不斷地工作。:-)

20、有耐心是一種長處。
當客戶、朋友、或者家庭成員用電腦的時候,他們可能會受挫、想砸掉電腦以至於暴走。我告訴他們,“是你在控制電腦而不是電腦在控制你。”對待用於編程的電腦,你需要有一定的耐心。只要程式員明白他們的問題所在了,他們就又從電腦的角度來看問題了,還說“呃,不就是這樣嘛。”

我希望這一摞經驗能夠啟發一些人,又或者讓你輕輕一笑。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.