如何快速学习一门新的编程语言?零基础开始学编程,就可以这样!
上學(xué)的時候,一位老師在與新手開發(fā)人員分享經(jīng)驗的時候曾說:最難學(xué)的編程語言是第二門語言。 不要為此感到難過,這句話的意思其實是說,在你第一次學(xué)習(xí)編程時,就已經(jīng)對編程有了一些先入為主的想法。你會在語法上做很多的聯(lián)想和假設(shè)。因此,在學(xué)習(xí)第二門語言時,你必須首先忘掉這些假設(shè)。在你學(xué)習(xí)第二門甚至是第三門語言時,一定要牢記這一點。
剖析編程
現(xiàn)有的編程語言已經(jīng)超過了5,000種,但是TIOBE指數(shù)只列出了前250種語言。而排名在前20的編程語言都擁有相似的標(biāo)準(zhǔn)庫,這絕非偶然。 我認(rèn)為思考編程的最佳方法是,剔除所有的“多余部分”,剩下的就只有必需品了。
基本組成部分
每種語言的每個方面都可以歸結(jié)為真與假。為什么?電的工作方式就是這樣:要么有電,要么沒電。內(nèi)存以0和1的形式存儲值,這個最基本的單位叫做比特,而比特要么為真要么為假。 8比特等于一個字節(jié),足以表示ASCII表中的任何字符。 這些比特以特定的順序翻轉(zhuǎn),以提供字符的十進制表示形式。 計算機知道如何將這種表示形式轉(zhuǎn)換為字母。
? ? ? ?
基本的二進制表示形式,表示了單詞Hello。 理解這個概念后,后面的內(nèi)容就很好理解了。
工具
所有語言中的這些工具都是相同的,你可以按照任意順序?qū)W習(xí),但是我通常會采用以下順序:
(1)變量這似乎很簡單,但話說回來,如何創(chuàng)建變量呢?
(2)運算符什么是運算符,如何使用?你明白基本的數(shù)學(xué)運算符,但是你明白邏輯運算符嗎?“AND”運算符的正確拼寫是“and”還是“AND”,還是使用諸如“&&”之類的符號?
(3)條件語句出人意料的是,我寫的最受歡迎的Swift和Python文章都與決策有關(guān)。接下來,你需要知道如何在程序中做出決定。你學(xué)習(xí)的語言使用的是傳統(tǒng)的“ if/else if/else”,還是像Python一樣使用“ if/elif/else?你的語言是否帶有“switch”或“guard”語句?
(4)循環(huán)語句如何遍歷重復(fù)的任務(wù)?你學(xué)習(xí)的編程語言否包含for循環(huán)、while循環(huán)、do-while循環(huán)或for-each語句?
(5)函數(shù)是否可以創(chuàng)建函數(shù)?如果可以,那么該怎么創(chuàng)建?如何在這些函數(shù)中包含參數(shù)?你是否知道如何正確使用函數(shù)才能節(jié)省時間,并減輕你的工作負(fù)擔(dān)?
(6)類和結(jié)構(gòu)這種語言是否有類或結(jié)構(gòu)的概念?這個問題聽起來有點愚蠢,但有些語言要么沒有,要么只有一種。如果有,那么該創(chuàng)建類或結(jié)構(gòu)?類是否需要構(gòu)造函數(shù)或初始化方法?
(7)錯誤處理錯誤是不可避免的。當(dāng)出現(xiàn)錯誤時,這種語言是否擁有強大的錯誤處理解決方案,你又將如何使用呢?應(yīng)該使用“ try/catch”、“ try/except”還是其他語句?是否還有其他子句,比如能進行其他處理的“else”或“finally”?
(8)測試如何測試代碼?是否有用于測試的內(nèi)置庫,還是說你必須下載單獨的工具? 大多數(shù)現(xiàn)代編程語言都包含上述工具。即使是稍舊的語言(例如COBOL)也擁有大多數(shù)工具,只不過它們有不同的稱謂,例如pharagraph或copybook。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
實戰(zhàn)
在了解這些工具后,接下來要做的就是使用這種語言并編寫應(yīng)用程序。你可以通過閱讀文檔來學(xué)習(xí)一種語言,但是直到你編寫一些應(yīng)用程序之后,才能真正掌握這種語言。?
編寫應(yīng)用程序能強迫你像那門語言的程序員那樣思考。在參加了C的課程并閱讀了有關(guān)C++的文檔后說,我可以我了解C++,但是只有真正使用C++特有的功能編寫應(yīng)用程序后,才算真正掌握了C++。?
二十一點(Blackjack)是一個不錯的入門項目。二十一點需要用到變量、運算符、條件、循環(huán)(根據(jù)玩家的數(shù)量)、函數(shù),類/結(jié)構(gòu)和錯誤處理。你還可以嘗試潛在故障的測試用例,例如牌發(fā)完了等。 還有一些其他的入門項目,比如爬樓梯游戲、快艇骰子或老虎機等游戲。 如果想嘗試更高級的內(nèi)容,則可以嘗試重新創(chuàng)建“大富翁”之類的游戲。多多思考游戲的機制,界面以文本為基礎(chǔ)即可。?
請務(wù)必記住,如果你不愿接受有難度的挑戰(zhàn)(例如不去嘗試二十一點中的雙倍下注或拆牌功能),那么你對這種語言的理解就會很有限。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
還有什么?
本文無法涵蓋語言必須提供的所有內(nèi)容。
事實上,你可以利用上面介紹的工具編寫任何內(nèi)容,標(biāo)準(zhǔn)庫中包含的其他功能只不過減輕了編程的負(fù)擔(dān)。大多數(shù)標(biāo)準(zhǔn)庫都包含相同的功能,因此在各個語言之間也享有相似的名稱。 隨著使用語言的次數(shù)增多,你可以從標(biāo)準(zhǔn)庫中找到更多的信息,但是一定要先學(xué)習(xí)這些工具。?
在使用某種語言的時候,你需要搞清楚語言本身的優(yōu)缺點。這可以幫助你決定針對某個特定的問題應(yīng)該使用何種語言。 如果你需要快速進行一些數(shù)據(jù)科學(xué)研究,那么可以參考Python或R的幾個包。
如果你需要快速編寫一個服務(wù),那么可以考慮C或Go。如果你需要Web服務(wù)器,則可以考慮Java或Python。 光靠看書或文章不足以學(xué)好一門編程語言,你需要真正的實戰(zhàn)。?
學(xué)習(xí)新語言是一種挑戰(zhàn),祝你好運!
學(xué)習(xí)C/C++編程,提升自己的C/C++編程能力,歡迎關(guān)注博主的微信公眾號:C語言編程學(xué)習(xí)基地,一起來成長進步吧!
總結(jié)
以上是生活随笔為你收集整理的如何快速学习一门新的编程语言?零基础开始学编程,就可以这样!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: @90后程序员,“颜值即正义”的现在,程
- 下一篇: 用这开源小书学 Docker,香!