怎樣快速學習一門編程語言?

怎樣快速學習一門編程語言?

當我還在學校時,一位老師對我說了一句話,我想告訴開發者新手:你曾學習的最難編程語言是你所學的第二門語言。

不要因此沮喪——它含義是,當你第一次學習如何編程時,你對編程的所有方面都有了先入為主的想法。你最終建立起更多的語法聯繫和假設,有些甚至不應該建立的你也有了。

因此,當你學習第二門編程語言時,你不得不想辦法“忘卻(unlearn)”這些假設。當你想嘗試學習第二門,甚至第三門編程語言時,始終記住這點。

工具

怎樣快速學習一門編程語言?

工具都是相同的,我們可以採用任何順序來學習使用這些工具,而我通常使用以下順序。

變量

這個看起來太簡單了,但是仔細想想,變量是怎樣創建出來的?

操作符

操作符是什麼,怎樣使用它們?假設你有一些基本的數學操作符,但是邏輯操作符會是怎樣的?是“AND”(拼成“and”或者“AND”)操作符呢,還是說使用諸如“&&”這樣的標記?

條件語句

我驚訝地發現,在自己撰寫的關於 Swift 和 Python 的文章中,最受歡迎的都和做決策有關。你接下來需要了解的是在程序中如何做決策。你想要學習的語言使用傳統的“if/else if/else”還是偏向 Python 的風格“if/elif/else”?你所學習的語言中是否有“switch”或者“guard”語句?

循環

你怎樣循環遍歷重複的任務?你所學習的語言包含 for 循環、while 循環、do-while 循環或 for-each 語句嗎?

函數

語言中是否能夠創建函數?如果可以,你會怎樣創建?怎樣在這些函數中包含變量?瞭解如何正確地使用函數會給你節省時間,讓你的生活更輕鬆。

類和結構體

這門語言是否提供類或者結構體的概念呢?這看起來是不言自明的問題,但是有些語言兩者都不具備,或者只具備其中之一。如果確實是這樣,你會怎樣創建類或者結構體?這個類需要一個構造函數還是 init 方法呢?

錯誤處理

錯誤是在所難免的。當它們發生時,這門語言是否具備魯棒性的錯誤處理解決機制,你會怎樣使用這個機制?這種機制是“try/catch”、“try/except”還是其他方法?是否有其他語句,如“else”或者“finally”,可以給出其他錯誤處理選項。

測試

你怎樣測試你的代碼?是否有內置的代碼庫做測試,或者需要下載獨立的工具來做測試?

所有這些工具會出現在最現代化的編程語言裡。即使是古老的編程語言,如 COBOL 也有其中大部分工具,但是其叫法不太相同,比如 paragraph 或者 copybook。

怎樣快速學習一門編程語言?

如何獲得良好的效果

一旦你理解這些工具,下一步要做的就是使用它們,寫一個應用程序。你可以通過閱讀文檔瞭解一門語言,但是直到你用這門語言寫了一些應用程序後,才能真正瞭解這門語言。

在編寫應用程序時,你不得不像一位 X 程序員一樣思考。我可以說,我瞭解 C++ 語言,因為我上了一門 C 語言的課,並且閱讀過 C++ 的文檔,但是,直到我用 C++ 特有的功能寫了一個應用程序後,才能說我真正瞭解了 C++ 這門語言。

Blackjack 非常適合作為起步階段的項目。它需要變量、操作符、條件語句、循環(基於玩家個數)、函數、類 / 結構體和錯誤處理。為防止可能的程序崩潰,你可以包含一些測試用例,比如測試撲克牌用完的情況。

其他不錯的入門項目,包括 Chutes 、Ladders、Yahtzee。

對於更高級的功能,可以試著重新創建一個像 Monopoly 這樣的遊戲。更多地去思考創建機制,這個遊戲可以只是基於文字的。

關鍵是要記住,如果你給自己降低任務的難度(比如跳過二十一點的雙倍下注或者分牌功能),這隻會限制住你對這門語言的綜合理解。

是否還有其他學習小竅門?

一門語言能提供的遠不止我以上列出的這些方面。事實是,你可以用上面列出的工具寫出任何東西來,但是標準庫中包含的額外功能可以讓你更輕鬆地寫出任何東西來。大部分標準庫包含同樣的函數,所以在不同的語言中你可以使用相似的函數名。

你使用一門語言越多,你就可以找到更多的標準庫,但是得確保先學會了以上提到的工具。

當你使用一門語言時,試著弄清楚這門語言的優勢和劣勢分別是什麼。在面對一個具體問題時,這能幫助你弄清楚應該使用哪種語言。

需要快速做一些數據科學方面的事情嗎?可以看一些 Python 包或者 R 語言。需要快速寫一個服務嗎?可以看看 C 或者 Go 語言。Web 服務器搭建又如何?看看 Java 或者 Python。

僅僅是看這些語言的文檔,還不能深刻地瞭解它們。我通過使用這些語言來學習它們。

由於這可能是我迄今為止最短的一篇文章,我希望給你提出一個挑戰,那就是去學習一門新的語言吧,祝你好運!

下面是我的一個技術QQ裙,前面是二二六,中間是九八五,後面是九三五。

原文鏈接:

How To Learn Any New Programming Language Quickly

Bob Roebling 是一位高級系統管理員和技術佈道者,擁有多種編程語言背景。


分享到:


相關文章: