如何快速學習一門新的編程語言?

本文假定你至少已掌握了一門編程語言,然後,可以幫助你更好學習編程。

如何快速学习一门新的编程语言?

作者 | Bob Roebling

出品 | CSDN(ID:CSDNnews)

上學的時候,一位老師在與新手開發人員分享經驗的時候曾說:最難學的編程語言是第二門語言。

不要為此感到難過,這句話的意思其實是說,在你第一次學習編程時,就已經對編程有了一些先入為主的想法。你會在語法上做很多的聯想和假設。因此,在學習第二門語言時,你必須首先忘掉這些假設。在你學習第二門甚至是第三門語言時,一定要牢記這一點。

如何快速学习一门新的编程语言?

剖析編程

現有的編程語言已經超過了5,000種,但是TIOBE指數只列出了前250種語言。而排名在前20的編程語言都擁有相似的標準庫,這絕非偶然。

我認為思考編程的最佳方法是,剔除所有的“多餘部分”,剩下的就只有必需品了。

如何快速学习一门新的编程语言?

基本組成部分

每種語言的每個方面都可以歸結為真與假。為什麼?電的工作方式就是這樣:要麼有電,要麼沒電。內存以0和1的形式存儲值,這個最基本的單位叫做比特,而比特要麼為真要麼為假。

8比特等於一個字節,足以表示ASCII表中的任何字符。這些比特以特定的順序翻轉,以提供字符的十進制表示形式。計算機知道如何將這種表示形式轉換為字母。

如何快速学习一门新的编程语言?

基本的二進制表示形式,表示了單詞Hello。

理解這個概念後,後面的內容就很好理解了。

如何快速学习一门新的编程语言?

工具

如何快速学习一门新的编程语言?

所有語言中的這些工具都是相同的,你可以按照任意順序學習,但是我通常會採用以下順序:

變量

這似乎很簡單,但話說回來,如何創建變量呢?

運算符

什麼是運算符,如何使用?你明白基本的數學運算符,但是你明白邏輯運算符嗎?“AND”運算符的正確拼寫是“and”還是“AND”,還是使用諸如“&&”之類的符號?

條件語句

出人意料的是,我寫的最受歡迎的Swift和Python文章都與決策有關。接下來,你需要知道如何在程序中做出決定。你學習的語言使用的是傳統的“ if/else if/else”,還是像Python一樣使用“ if/elif/else?你的語言是否帶有“switch”或“guard”語句?

循環語句

如何遍歷重複的任務?你學習的編程語言否包含for循環、while循環、do-while循環或for-each語句?

函數

是否可以創建函數?如果可以,那麼該怎麼創建?如何在這些函數中包含參數?你是否知道如何正確使用函數才能節省時間,並減輕你的工作負擔?

類和結構

這種語言是否有類或結構的概念?這個問題聽起來有點愚蠢,但有些語言要麼沒有,要麼只有一種。如果有,那麼該創建類或結構?類是否需要構造函數或初始化方法?

錯誤處理

錯誤是不可避免的。當出現錯誤時,這種語言是否擁有強大的錯誤處理解決方案,你又將如何使用呢?應該使用“ try/catch”、“ try/except”還是其他語句?是否還有其他子句,比如能進行其他處理的“else”或“finally”?

測試

如何測試代碼?是否有用於測試的內置庫,還是說你必須下載單獨的工具?

大多數現代編程語言都包含上述工具。即使是稍舊的語言(例如COBOL)也擁有大多數工具,只不過它們有不同的稱謂,例如pharagraph或copybook。

如何快速学习一门新的编程语言?
如何快速学习一门新的编程语言?

實戰

在瞭解這些工具後,接下來要做的就是使用這種語言並編寫應用程序。你可以通過閱讀文檔來學習一種語言,但是直到你編寫一些應用程序之後,才能真正掌握這種語言。

編寫應用程序能強迫你像那門語言的程序員那樣思考。在參加了C的課程並閱讀了有關C++的文檔後說,我可以我瞭解C++,但是隻有真正使用C++特有的功能編寫應用程序後,才算真正掌握了C++。

二十一點(Blackjack)是一個不錯的入門項目。二十一點需要用到變量、運算符、條件、循環(根據玩家的數量)、函數,類/結構和錯誤處理。你還可以嘗試潛在故障的測試用例,例如牌發完了等。

還有一些其他的入門項目,比如爬樓梯遊戲、快艇骰子或老虎機等遊戲。

如果想嘗試更高級的內容,則可以嘗試重新創建“大富翁”之類的遊戲。多多思考遊戲的機制,界面以文本為基礎即可。

請務必記住,如果你不願接受有難度的挑戰(例如不去嘗試二十一點中的雙倍下注或拆牌功能),那麼你對這種語言的理解就會很有限。

如何快速学习一门新的编程语言?

還有什麼?

本文無法涵蓋語言必須提供的所有內容。事實上,你可以利用上面介紹的工具編寫任何內容,標準庫中包含的其他功能只不過減輕了編程的負擔。大多數標準庫都包含相同的功能,因此在各個語言之間也享有相似的名稱。

隨著使用語言的次數增多,你可以從標準庫中找到更多的信息,但是一定要先學習這些工具。

在使用某種語言的時候,你需要搞清楚語言本身的優缺點。這可以幫助你決定針對某個特定的問題應該使用何種語言。

如果你需要快速進行一些數據科學研究,那麼可以參考Python或R的幾個包。如果你需要快速編寫一個服務,那麼可以考慮C或Go。如果你需要Web服務器,則可以考慮Java或Python。

光靠看書或文章不足以學好一門編程語言,你需要真正的實戰。

學習新語言是一種挑戰,祝你好運!

原文:https://medium.com/better-programming/how-to-learn-any-new-programming-language-quickly-94996895669b

作者:Bob Roebling,高級系統管理員和技術傳播者,擁有多種編程語言的背景。

本文為 CSDN 翻譯,轉載請註明來源出處。

【END】


分享到:


相關文章: