如何學會600多種程式設計語言

來源:互聯網
上載者:User

  幾周前,做為8th Light公司的實習生,我從CEO那裡拿到了我的工作成績報告。在與CEO的會見期間,我發現了一個對如何做一個程式員的認識上的盲區。起初我以為,想擴充自己的軟體職業道路,那就要學很多各種的語言。我現在就要告訴你,事情不是這樣的。

  我們一共有多少種程式設計語言?你只需看一下維基百科上的清單,600多種!說實話,就我個人的情況,我不相信我能學會數百種語言。因為有太多的文檔需要看,它們之間有太多的差異需要注意。它們很多都是相似的,例如那些物件導向的語言:C++,Java,Ruby,Python等。然而,我們卻有一種更高效的方法學習它們,那就是對它們歸納分類。

  在美國德銳大學,每個畢業生要接受的一門必修課程教育就是如何有效學習。我很幸運遇到一位非常好的教授,Sugarman先生,我才有機會學到學習方法。儘管這個方法非常的基礎,但它幾乎能應用到任何事情上——不論它們的數量看起來是多麼不可思議。

  物件導向程式設計語言的基礎理論要點:

  學習基礎理論要點,例如設計模式/範式,這樣你就知道了在所有物件導向的程式設計語言中共同的知識,而不是只提高了一種語言水平。這是學習程式設計語言最有效方法。

  程式設計語言的類型有很多種,例如函數式語言,物件導向語言,面向資料語言(更多)。通過把各種語言歸納分類,這600種語言大概可以分成50類。通過學習每種分類的基礎理論要點,再學習分類中的不同語言就變得容易多了。這裡我給出一個例子。

  對於物件導向程式設計語言,有5個基本原則能協助你寫出整潔優秀的代碼。這些原則由Bob Martin總結,叫做SOLID原則。這裡有一篇文章用圖片形式很好的對這些原則進行瞭解釋說明。這些原則是:

  一個對象只承擔一種責任,所有服務介面只通過它來執行這種任務。

  程式實體,比如類和對象,向擴充行為開放,向修改行為關閉。

  子類應該可以用來替代它所繼承的類。

  一個類對另一個類的依賴應該限制在最小化的介面上。

  依賴抽象層(介面),而不是具體類。

  通過學習這些原則,你可以在所有物件導向語言裡更有效進行編程。當然,你需要學會一門這種類型的語言來練習這些原則,但這是完全值得的。

  各種物件導向語言間的不同之處:

  同屬於物件導向語言,它們之間存在大量不同之處:

  文法:瞭解各種語言在文法句式上的差異有很多好處,其中之一能協助最佳化你的編碼。通過讓一個方法或類跟它的行為在特徵是保持相似,這能讓程式更容易懂。

  獨特性:每種程式設計語言跟其它種比起來都有自己的獨特之處。Java有私人方法和資料自訂上的特點,Ruby在Web應用上有很強的優勢。

  總之,學習各種語言之間的區別很重要。這種語言可能比那種語言中某些方面更容易使用或更強大。

  總結

  學習程式設計語言最有效方法是學習它們的基礎性的模式/範式,這比單獨學習每種語言更高效。通過學習這些基礎原理,你可以把它們應用到很多其它類似的語言裡。學習各種語言之間的差異,這能協助我們在面對各種情況時選擇更合適的語言。

  [英文原文:What it means to know Programming Languages ]

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.