究極程式員跨過的艱難六步

來源:互聯網
上載者:User

 

Step 1 別抱怨了.準備好漫長的征程,或者晾在一邊賞鳥去吧      對於真正希望成為一名優秀的程式員的人,希望成為專家,成為究極人物的人,如果真的值得去做,那麼投入十年進去,並不算什麼,對嗎?    第一步就是吞下這顆子彈。接受這個過程將不止花去十年,而是一生的追求。只因為你想去做它,才去做它。如果一個人不情願做某事,他是不會成為它的專家的。  Step 2 寫很多很多的代碼     同時寫許多許多的代碼。不一定是好的代碼。很長時間內,你寫的代碼都不是好的代碼。好的代碼,好的taste,是需要大量的實踐培養的。對什麼新的工具、新的演算法、新的問題感興趣,或者遇到了什麼問題,就去儘可能地寫代碼實踐,嘗試使用它。

    學習的過程永不停止。如果你懷著在每一天中盡自己最大的可能去學習,取得你所能得的最大的“裡程數”的態度去學習,你將會走很遠。進入這樣一種狀態:任何的一天/一周/一月中沒有學到有趣的東西的話就是失敗。每天都有足夠多的酷的、有趣的東西等待你去學習。即使你已經學習了15年,雖然找到它們更困難了,但仍然可能找到。沒有一個人能夠掌握編程世界中所有的知識,所以如果你覺得沒有東西可學了,就去找到一個新的項目,寫更多的代碼。    在你做這些東西的時候,注意了,你要尋找中間的模式,如那些可以自動化執行有用的東西,或者你寫了許多的代碼可以分離出來作為共用的庫的東西,或者其他集中的位置。去尋找對於特定任務簡單的程式設計語言。找出來那些對於同樣的任務不擅長的程式設計語言,並思考為什麼一些語言對於這些任務相比其他的更加具有生產力。    但最重要的,就是寫許多許多代碼。但記住了,如果做的事情不再有趣,就沒必要做下去了,如果你不能在此期間享受過程。  Step 3 讀更多的代碼     當你積累了一些項目的時候,開始讀其他人的代碼。剛開始的時候,這樣做很困難。他們做了許多你從沒有做過的事,或者使用了你不習慣的風格,甚至使用了你沒有學習過的程式設計語言。如果你覺得它有趣的話,儘可能地去讀這些代碼。不要擔心深入地分析任何給定的項目的代碼,至少剛開始時不要擔心。    讀一些新的代碼可以展示給你新的思維方式,這有利於擴充你的思維。擴充思維對於保持進步是很重要的事。它協助你確保當你前進時能夠持續發現新的東西去學。    一定要與其他的程式員交流。問他們如何和為什麼做那些特定的事,是否採取了不同的角度做事情,問他們對自己的代碼是否有建議。一定要禮貌,因為進階的程式員非常地忙。尊重會帶你走很遠,這是個緊密聯絡的行業,名聲很重要。  Step 4 學習許多程式設計語言。在一些中成為專家     你實際上不會有很多盈餘的時間,至少不足夠同時學習許多的語言,除非你異常地幸運。所以可以在一個較淺的層面上學習許多的程式設計語言,足夠瞭解什麼使他們流行,什麼使它們擅長於它常用的領域,它們的缺陷是什麼。擴充很重要。不要局限於一種類型的語言,如命令式的語言,或者OO語言,擴充學習一些函數式語言或者聲明式語言。    學習Lisp的一種方言。對於你日常的編碼來說,你不會去使用它。但學習、實踐它會令你成為一名更好的思考著,你會對簡單的遞迴的系統的魅力有更深刻的理解。堅持學習它、實踐它直到令你情不自禁地叫出“啊哈”的那一刻到來。那一刻之前,你都會覺得那是一坨奇怪的文法和蹩腳的用法。在你剩餘的職業生涯中,它便會成為人類設計的最令人瞠目結舌的優雅的概念。    之後,學習一門純粹的函數式語言。我推薦Haskell。它通過其它函數式語言套件括Lisp的方言都不用的方式強迫你純粹地使用函數思想。當你理解了設計monads的目的後,或者其它“啊哈”時刻,你將會進入到思索的能力和設計優雅系統的能力的更高的層次上。    最後,學一門聲明式語言。SQL也算,雖然比較弱。Prolog常常被推薦。還有XAML,XSLT和XQuery。聲明式語言是你告訴電腦你希望它做什麼,電腦來琢磨如何做它;而命令式語言則相反,你告訴電腦如何去完成一件事並希望它正確地做了你想做的事;而在函數式語言中,你描述了資料域類型如何轉換。  Step 5 自創程式設計語言     它不需要很複雜,或者進階,甚至不需要特別優雅。甚至不需要是原生的想法。我常常推薦寫一個Lisp解譯器(如果使用Lisp的方言寫更好)。這是你學習基礎知識的一個很好的方式。實際上,你可以對電腦編程設計的基礎有很好的感覺:詞法分析,文法分析,編譯,解釋,虛擬機器,還有基本的設計抉擇對一門語言在各個領域的實用程度如何影響。    你將會在此過程中得到以下3樣東西:    1)你將會對你選擇的工具如何工作有更加深刻的認識,這樣你就可以寫出更加高效的代碼。    2)你將會開始意識到主流語言和工具背後的設計抉擇的原因。這將會使你更有效地選擇你要用的工具。    3)你將瞥見一些仍然存在於工具和語言中的未發現的可能性,這樣使你開闊了眼界,可以發現新的可以學習和實驗的有趣的酷的東西。  Step 6 學習其他人從沒有學習過的東西     這是最困難的也是最後的步驟。又是另一個十年。保持興趣和做有趣的事情,離開那些不讓你享受的事情。 

 

 



相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

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

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