學(xué)習(xí)編程語(yǔ)言的方法有哪些
學(xué)習(xí)編程語(yǔ)言的方法有哪些
編程語(yǔ)言很多人都覺(jué)得很難學(xué)習(xí),那是因?yàn)闆](méi)有掌握到好的學(xué)習(xí)方法。以下是學(xué)習(xí)啦小編分享給大家的學(xué)習(xí)編程語(yǔ)言的方法的資料,希望可以幫到你!
學(xué)習(xí)編程語(yǔ)言的方法
1. 將其與類(lèi)似的語(yǔ)言進(jìn)行比較。當(dāng)你首次觀看有關(guān)該語(yǔ)言的第一個(gè)教程或閱讀代碼時(shí),請(qǐng)嘗試猜測(cè)該語(yǔ)言的每個(gè)部分將會(huì)做什么,并檢查你的判斷是否正確。
如果記筆記可以幫助你整合信息,請(qǐng)拿起一張紙并記下三個(gè)列表:
看起來(lái)很熟悉的東西,并且做了預(yù)期中的事
看起來(lái)很熟悉的東西,但做了意料之外的事
看起來(lái)完全是新的東西
例如,如果我用來(lái)自 Python 和 C 背景的 Rust 代碼進(jìn)行此練習(xí),那么在第一個(gè)列表中,我會(huì)放上用于表示范圍的花括號(hào),!(看起來(lái)像是布爾類(lèi)型的 非,但實(shí)際上是 Rust 中的宏定義)則放在第二個(gè)列表,類(lèi)型簽名語(yǔ)法(type signature syntax)放在第三個(gè)列表。
如果你保留著初始列表的副本,一旦你更熟練,可使用它通過(guò)語(yǔ)言反思你的進(jìn)展,并提醒自己在嘗試向其他人講授該語(yǔ)言時(shí),有哪些看起來(lái)不熟悉的概念。
2. 閱讀語(yǔ)言的官方文檔。如果希望在使用之前吸收大量信息,從閱讀語(yǔ)言的參考資料中可能會(huì)受益。不用擔(dān)心它們會(huì)對(duì)你催眠,參考文獻(xiàn)通常是用于查找使用,而不是用來(lái)記憶。
3. 使用互聯(lián)網(wǎng)搜索。搜索網(wǎng)絡(luò)是一個(gè)很好的方式,可提供有關(guān)特定錯(cuò)誤和一般最佳做法的信息。當(dāng)收到錯(cuò)誤信息時(shí),應(yīng)搜索信息中看起來(lái)是錯(cuò)誤的獨(dú)一無(wú)二的部分,但不是代碼唯一的部分。例如,如果錯(cuò)誤提示 "Error on line 53: Invalid argument exception(錯(cuò)誤在第 53 行:無(wú)效的參數(shù)異常)",以語(yǔ)言名稱(chēng)和字符串 “Invalid argument exception” 這樣的組合搜索,以找到最佳的結(jié)果。記住要將錯(cuò)誤信息中的所有引用內(nèi)容都包含在內(nèi)。
還可以在網(wǎng)絡(luò)中搜索有關(guān)解決語(yǔ)言中特定問(wèn)題的最佳做法的博文。評(píng)估搜索結(jié)果中顯示的博客帖子的質(zhì)量和決定認(rèn)真采用他們的建議時(shí),請(qǐng)查看作者的公共代碼組合以及發(fā)布日期。
4. 與社區(qū)接觸。雖然博客和新聞文章具有大量有用的信息,但是你嘗試編寫(xiě)的特定代碼片段總會(huì)有些微妙之處。不要害怕在郵件列表中發(fā)帖,或加入 IRC 和 Slack 頻道以尋求幫助。
要提出有幫助的回復(fù)的問(wèn)題,請(qǐng)確保在正確的地方提問(wèn)。許多語(yǔ)言都有 “初學(xué)者” 郵件列表或聊天頻道,專(zhuān)門(mén)針對(duì)可能會(huì)頻繁詢(xún)問(wèn)的問(wèn)題而建立。當(dāng)提出問(wèn)題時(shí),請(qǐng)務(wù)必先總結(jié)準(zhǔn)備做什么、已做過(guò)的東西以及發(fā)生的情況。盡量為專(zhuān)家提供足夠的上下文來(lái)了解問(wèn)題,但不需要無(wú)關(guān)緊要的細(xì)節(jié)。提出問(wèn)題后,請(qǐng)務(wù)必堅(jiān)持一段時(shí)間來(lái)聽(tīng)取建議或會(huì)回答你的疑問(wèn)可能產(chǎn)生的后續(xù)問(wèn)題。
5. 編寫(xiě)玩具程序。一次練習(xí)一個(gè)新的概念,很少有任務(wù)可打敗只使用某個(gè)概念的玩具程序。你可以將重點(diǎn)放在盡可能讓你的代碼清潔和慣用性上。如果你將解決 Project Euler 或 Rosetta Code puzzle 作為玩具程序,則可以將你的解決方案與其他使用相同語(yǔ)言編寫(xiě)的解決方案進(jìn)行比較。
關(guān)于學(xué)習(xí)編程技術(shù)的建議
1、關(guān)于編程手冊(cè)
通常,代碼正確性反映工程師對(duì)一門(mén)語(yǔ)言的掌握程度,是一個(gè)日積月累的過(guò)程。
遇到問(wèn)題,首先看手冊(cè);通過(guò)搜索、瀏覽專(zhuān)業(yè)網(wǎng)站或者請(qǐng)教同事解決問(wèn)題后,要看手冊(cè)進(jìn)行驗(yàn)證。
2、關(guān)于經(jīng)典書(shū)籍。
每一門(mén)語(yǔ)言都會(huì)有好多不錯(cuò)的書(shū)籍,我們稱(chēng)為經(jīng)典書(shū)籍。通過(guò)各種方法,找到一種或幾種不錯(cuò)的書(shū)籍,認(rèn)真閱讀,不為完成任務(wù)的而閱讀,細(xì)細(xì)品味地閱讀,求精讀而不求多讀。
3、關(guān)于網(wǎng)絡(luò)上的技術(shù)文章
網(wǎng)絡(luò)上的技術(shù)性文章也是需要閱讀的,但它不能代替書(shū)籍。
4、閱讀語(yǔ)言的官方文檔。如果希望在使用之前吸收大量信息,從閱讀語(yǔ)言的參考資料中可能會(huì)受益。不用擔(dān)心它們會(huì)對(duì)你催眠,參考文獻(xiàn)通常是用于查找使用,而不是用來(lái)記憶。
5、使用互聯(lián)網(wǎng)搜索。搜索網(wǎng)絡(luò)是一個(gè)很好的方式,可提供有關(guān)特定錯(cuò)誤和一般最佳做法的信息。還可以在網(wǎng)絡(luò)中搜索有關(guān)解決語(yǔ)言中特定問(wèn)題的最佳做法的博文。評(píng)估搜索結(jié)果中顯示的博客帖子的質(zhì)量和決定認(rèn)真采用他們的建議時(shí),請(qǐng)查看作者的公共代碼組合以及發(fā)布日期。
6、與社區(qū)接觸。雖然博客和新聞文章具有大量有用的信息,但是你嘗試編寫(xiě)的特定代碼片段總會(huì)有些微妙之處。不要害怕在郵件列表中發(fā)帖,或加入 IRC 和 Slack 頻道以尋求幫助。
要提出有幫助的回復(fù)的問(wèn)題,請(qǐng)確保在正確的地方提問(wèn)。許多語(yǔ)言都有 “初學(xué)者” 郵件列表或聊天頻道,專(zhuān)門(mén)針對(duì)可能會(huì)頻繁詢(xún)問(wèn)的問(wèn)題而建立。。
7、編寫(xiě)玩具程序。一次練習(xí)一個(gè)新的概念,很少有任務(wù)可打敗只使用某個(gè)概念的玩具程序。你可以將重點(diǎn)放在盡可能讓你的代碼清潔和慣用性上。
PLC編程語(yǔ)言的學(xué)習(xí)方法
1. 軟繼電器
PLC梯形圖中的某些編程元件沿用了繼電器這一名稱(chēng),如輸入繼電器、輸出繼電器、內(nèi)部輔助繼電器等,但是它們不是真實(shí)的物理繼電器,而是一些存儲(chǔ)單元(軟繼電器),每一軟繼電器與PLC存儲(chǔ)器中映像寄存器的一個(gè)存儲(chǔ)單元相對(duì)應(yīng)。該存儲(chǔ)單元如果為“1”狀態(tài),則表示梯形圖中對(duì)應(yīng)軟繼電器的線圈“通電”,其常開(kāi)觸點(diǎn)接通,常閉觸點(diǎn)斷開(kāi),稱(chēng)這種狀態(tài)是該軟繼電器的“1”或“ON”狀態(tài)。如果該存儲(chǔ)單元為“0”狀態(tài),對(duì)應(yīng)軟繼電器的線圈和觸點(diǎn)的狀態(tài)與上述的相反,稱(chēng)該軟繼電器為“0”或“OFF”狀態(tài)。使用中也常將這些“軟繼電器”稱(chēng)為編程元件。
2. 能流
有一個(gè)假想的“概念電流”或“能流”(Power Flow)從左向右流動(dòng),這一方向與執(zhí)行用戶(hù)程序時(shí)的邏輯運(yùn)算的順序是一致的。能流只能從左向右流動(dòng)。利用能流這一概念,可以幫助我們更好地理解和分析梯形圖。
3.母線
梯形圖兩側(cè)的垂直公共線稱(chēng)為母線(Bus bar),。在分析梯形圖的邏輯關(guān)系時(shí),為了借用繼電器電路圖的分析方法,可以想象左右兩側(cè)母線(左母線和右母線)之間有一個(gè)左正右負(fù)的直流電源電壓,母線之間有“能流”從左向右流動(dòng)。右母線可以不畫(huà)出。
4.梯形圖的邏輯解算
根據(jù)梯形圖中各觸點(diǎn)的狀態(tài)和邏輯關(guān)系,求出與圖中各線圈對(duì)應(yīng)的編程元件的狀態(tài),稱(chēng)為梯形圖的邏輯解算。梯形圖中邏輯解算是按從左至右、從上到下的順序進(jìn)行的。解算的結(jié)果,馬上可以被后面的邏輯解算所利用。邏輯解算是根據(jù)輸入映像寄存器中的值,而不是根據(jù)解算瞬時(shí)外部輸入觸點(diǎn)的狀態(tài)來(lái)進(jìn)行的。
猜你喜歡: