學(xué)習(xí)編程的技巧具體有哪些
學(xué)習(xí)編程的技巧具體有哪些
學(xué)習(xí)編程的小伙伴越來越多,那么學(xué)習(xí)編程的技巧具體有哪些?為了幫助大家更好的學(xué)習(xí)編程,以下是學(xué)習(xí)啦小編分享給大家的學(xué)習(xí)編程的技巧及總結(jié),希望可以幫到你!
學(xué)習(xí)編程的技巧及總結(jié)
讀>寫代碼>讀>寫代碼(日復(fù)一日)
關(guān)于如何高效學(xué)習(xí)編程我要給出的第一條建議是在閱讀代碼和編寫代碼之間循環(huán)往復(fù)。閱讀代碼(書籍,博客文章,開源代碼)將幫助你查看解決方案,了解最佳做法,并大致了解語言或系統(tǒng)。但是在你這樣做之后,你需要自己實(shí)際去寫代碼。可以是任何東西??梢允切〉木幋a練習(xí)或業(yè)余項(xiàng)目,但確保你能將之付諸于實(shí)踐,并用某種方式使用你學(xué)到的東西。如果你不這樣做,那么你會發(fā)現(xiàn)自己面對編輯器會無所適從無從下手。
這方面的訣竅是讓自己感到不舒服。這是相當(dāng)痛苦的,但就應(yīng)該這樣。編碼遵循80/20規(guī)則。花80%的時(shí)間在20%的代碼或20%你所學(xué)的東西上。習(xí)慣于這種不舒服的感覺并克服它是關(guān)鍵。
這個(gè)迭代周期不應(yīng)該以周為周期或以月為周期發(fā)生,而是應(yīng)該以日為周期。知識等待使用的時(shí)間越久,知識這把斧頭就越鈍。等待學(xué)習(xí)新知識的時(shí)間越長,你就越難以將其融入到代碼中。
我推薦閱讀關(guān)于通用編程主題的網(wǎng)站是lobste.rs。上面有許多關(guān)于許多編程主題的文章。另一個(gè)好的網(wǎng)站是Hacker News,但網(wǎng)站時(shí)常偏離話題。
不要陷入僵局。請求幫忙
我最大的錯(cuò)誤是在學(xué)習(xí)編程陷入僵局的時(shí)候用了太長時(shí)間。在被卡住時(shí),我會花很多時(shí)間在一些愚蠢的東西或一些我根本上不明白的東西上。有時(shí)候我需要花費(fèi)好幾天時(shí)間才能完成這些工作,而原本我可以用這些時(shí)間做更多的事情和學(xué)習(xí)更多的東西,如果我能找到更好的解決方法的話??ㄔ谝粋€(gè)東西上面超過一個(gè)小時(shí)基本上就是在浪費(fèi)時(shí)間了。
我推薦三件事情以避免僵局。第一是試著總是閱讀更多關(guān)于你使用的技術(shù),并總體掌握正在發(fā)生什么。通常,當(dāng)你陷入困境時(shí),意味著你對需要澄清的事情做出了不正確的假設(shè)。第二是咨詢互聯(lián)網(wǎng)。這一點(diǎn)很顯然,但依然值得一提。在網(wǎng)上查找并詢問有過這個(gè)問題的人是一個(gè)非常重要的技能。Stackoverflow可以說是互聯(lián)網(wǎng)上最好的網(wǎng)站。不要害怕在那里問自己的問題。通常,只要盡力正確地闡述你的問題就OK了。我真的希望以前我能多問些問題,但總是因?yàn)楹ε聲@得愚蠢而止步。我的第三個(gè)建議是向你認(rèn)識的人請求幫助。通常,你或許已經(jīng)理解了技術(shù),而且有了問題,但是你可能需要更高層次的上下文才能真正解開謎團(tuán)。不要膽怯,大著膽子上前去問吧。
例如,當(dāng)學(xué)習(xí)Docker時(shí),我花費(fèi)了大量的時(shí)間從頭開始重新構(gòu)建圖像。我從根本上不明白docker緩存,并用20分鐘時(shí)間來等待單個(gè)更改到Dockerfile通過。我可能花了8個(gè)小時(shí)就用在等待構(gòu)建上。如果我讀過更多關(guān)于Docker或問一個(gè)知道的人,那么可能我早就搞明白了,還可以在更短的時(shí)間內(nèi)學(xué)到更多。
為項(xiàng)目而工作
在我的經(jīng)驗(yàn)中,沒有什么可以與工作于自己的項(xiàng)目以學(xué)習(xí)編程更有用的了。除了一些例外,我所知道的所有真正優(yōu)秀的程序員都有一個(gè)習(xí)慣就是工作于業(yè)余項(xiàng)目(這也可能發(fā)生在工作中!)。有了一個(gè)點(diǎn)子并試圖實(shí)現(xiàn)這個(gè)點(diǎn)子是非常具有挑戰(zhàn)性的。它需要很強(qiáng)的自律心。但是,通過嘗試實(shí)際做一件事情,你可以學(xué)到如何分解問題并應(yīng)用技術(shù)。你面對的各種問題,以及你如何解決它們才真正是所謂的編程。知道編程語言的每一個(gè)古怪細(xì)節(jié)的確是有幫助的,但它只會讓你越來越落伍。此外,想要完成項(xiàng)目的驅(qū)動力是繼續(xù)學(xué)習(xí)的動力。從業(yè)余項(xiàng)目獲得的滿足感遠(yuǎn)遠(yuǎn)超過你在抽象中學(xué)習(xí)東西的滿足感。
我對于選擇業(yè)余項(xiàng)目的建議是,選擇你感興趣同時(shí)你也有想法如何實(shí)現(xiàn)的東西。能夠在開始之前表達(dá)實(shí)現(xiàn)總是有助于保持我的動力。在此旅途之中你一定會學(xué)到很多!
認(rèn)識到深入鉆研和搬運(yùn)工之間的區(qū)別。相應(yīng)地選擇。
有兩種類型的程序員:完美主義者和搬運(yùn)工。有些人希望一切都是正確的,他們希望完美,他們希望遵循所有的最佳實(shí)踐,并寫出漂亮的優(yōu)雅代碼。他們想要理解每一行代碼。有別于那些不管三七二十一,只要自己的代碼能工作即可,即使對代碼庫有損害的人。平衡這兩種技能是非常重要的。有時(shí)你應(yīng)該深入鉆研一個(gè)問題或項(xiàng)目,看看發(fā)生了什么。有時(shí)你應(yīng)該讓它工作即可,即使你不知道發(fā)生了什么。
每當(dāng)你花費(fèi)太多時(shí)間在某個(gè)東西上時(shí),那就問問自己:我應(yīng)該采取哪種方法?在大多數(shù)情況下,你會想取中間值。你想提供一個(gè)好的、堅(jiān)實(shí)的解決方案,同時(shí)你可以自信地理解和修改,但沒有耗費(fèi)荒謬的時(shí)間。隨著你作為開發(fā)人員的成長,你會更好地明白什么時(shí)候就此離開就可以,以及什么時(shí)候需要以某些方式完成。
就個(gè)人而言,我喜歡我的項(xiàng)目80%完美。如果你的項(xiàng)目是絕對100%完美,沒有一行代碼讓你覺得尷尬,那么很有可能你已經(jīng)花了太多的時(shí)間。
與其他程序員交談
學(xué)習(xí)編程的一個(gè)很好的方法就是和其他的程序員交談。不必談?wù)撊魏翁囟ǖ膬?nèi)容??梢允悄阏趯W(xué)習(xí)的東西,可以是你認(rèn)為很酷的東西,可以是你正在工作的東西,皆可。你會發(fā)現(xiàn)很多程序員并不喜歡只是聊編程。這樣做可能會讓你學(xué)到很多關(guān)于庫,服務(wù),編程語言和模式方面的知識。但是,最重要的是,你將了解到其他人是如何看待編程的。你會發(fā)現(xiàn),你認(rèn)為理所當(dāng)然或從來沒有考慮的事情在人與人之間是非常不同的。
學(xué)習(xí)編程的建議
1、不要僅僅讀書。
學(xué)習(xí)編程的最好方式是通過讀書。這種方式是簡單的,花幾個(gè)小時(shí)去看有關(guān)語法內(nèi)容。但是編程語言向人類語言一樣,為了理解它們我們需要去使用它們。
2、試著開始做些簡單的項(xiàng)目。
如果你走的是HTML / CSS的路線,嘗試玩,用javascript實(shí)現(xiàn),當(dāng)你點(diǎn)擊一些事情的時(shí)候,獲得一個(gè)簡單的Div在頁面移動。然后用你的方式去做些更加復(fù)雜的。舉個(gè)例子,用HTML form元素寫一個(gè)簡單的todo 列表。你必須學(xué)習(xí)DOM操作去正確地處理用戶與頁面的交互。
在斯坦福大學(xué),他們用游戲開始教CS課程。盡力去創(chuàng)建一個(gè)游戲使用JS?;蛘邇H僅是在命令提示符下使用Ruby或者Python。
推薦一個(gè)網(wǎng)站叫 Codecademy,上面有十分不錯(cuò)的javascript課程。
3、你需要專注。
這里列出一些新手一直在犯的大錯(cuò)誤:
頻繁的切換語言和框架,或者自以為自己會精通所有的人
用奇特的工具個(gè)性化他們的開發(fā)環(huán)境而不是更過常規(guī)的工具,當(dāng)和別人協(xié)作的時(shí)候可以可靠地使用。
嘗試學(xué)習(xí)Docker這樣的工具,因?yàn)樗鼈兪切碌暮土钊伺d奮的,即使他們還沒有掌握更多的基礎(chǔ)技術(shù)。
學(xué)習(xí)PLC編程技巧
一、多收集程序范例、增加編程經(jīng)驗(yàn)
在PLC的編程方法中,經(jīng)驗(yàn)法一直受到許多從業(yè)者的青睞,并且在經(jīng)驗(yàn)設(shè)計(jì)法中資料收集顯得尤為重要。首先收集典型程序樣例,程序最好有較完整的組成部分:控制任務(wù)、I/O分配、硬件接線圖、完整的程序及注釋。其次要讀懂程序,從而分解出程序中用于完成不同任務(wù)的組成部分,對于各組成部分中獨(dú)立完成某一特定功能的子程序或者中斷程序應(yīng)及時(shí)收藏到程序庫。以便在以后的編程過程中碰到實(shí)現(xiàn)類似控制任務(wù)時(shí),節(jié)約程序設(shè)計(jì)時(shí)間、提高程序調(diào)試成功率。再次還需要記錄程序閃光點(diǎn),諸如編程者巧妙的思路、程序結(jié)構(gòu)、應(yīng)用指令的使用。尤其是應(yīng)用指令的使用,能夠大大的縮短程序長度,減少內(nèi)存容量,降低系統(tǒng)成本。最后對程序做功能擴(kuò)展性的設(shè)計(jì)、調(diào)試,并對全過程加以詳細(xì)記錄、再加以總結(jié)。通過以上過程就能夠有效消化這些程序范例,使其融入到自己以后的編程過程中。經(jīng)過一段時(shí)間的資料收集、理解、消化后,逐步確立適合自己的編程方法。
二、熟練使用軟件包
以學(xué)習(xí)三菱產(chǎn)品為例來介紹軟件包的使用。三菱軟件包由兩個(gè)部分組成,編程軟件GXDeveloperVersion8C和仿真軟件GXSimulator6C。編程軟件GXDeveloperVersion8C為設(shè)計(jì)者提供了編程環(huán)境。設(shè)計(jì)者應(yīng)熟讀編程手冊、熟練程序的編輯技巧,使得自己的設(shè)計(jì)方案得以展現(xiàn)。設(shè)計(jì)好的程序能否滿足控制任務(wù),就必須進(jìn)行調(diào)試,傳統(tǒng)的調(diào)試方式離不開編程控制器CPU,必要時(shí)還需要另外準(zhǔn)備輸入輸出模塊、特殊功能模塊和外部機(jī)器等。仿真軟件GXSimulator可提供一個(gè)虛擬的實(shí)驗(yàn)平臺。GXSimulator是在Windows上運(yùn)行的軟元件包,在安裝有GXDeveloper的計(jì)算機(jī)內(nèi)追加安裝GXSimulator,就能夠?qū)崿F(xiàn)不在線時(shí)的調(diào)試。不在線調(diào)試功能內(nèi)包括軟元件的監(jiān)視測試、外部機(jī)器的I/O的模擬操作等。對于個(gè)人學(xué)習(xí)來說,沒有實(shí)驗(yàn)條件,仿真軟件能夠在個(gè)人計(jì)算機(jī)上進(jìn)行順控程序的開發(fā)和調(diào)試。使用者通過程序不斷的仿真調(diào)試,慢慢領(lǐng)會程序設(shè)計(jì)心得,從而增加編程經(jīng)驗(yàn)。
三、特殊功能模塊
在學(xué)習(xí)過程中,大部分學(xué)生將學(xué)習(xí)的重心放在了軟件編程上,而現(xiàn)代工業(yè)控制給PLC提出了許多新的課題,如果用通用I/O模塊來解決,在硬件方面費(fèi)用太高,在軟件方面編程相當(dāng)麻煩,某些控制任務(wù)甚至無法用通用I/O模塊來完成。因此,學(xué)習(xí)PLC的特殊功能模塊顯得尤為重要。這些特殊功能模塊有模擬量輸入輸出模塊、高速計(jì)數(shù)模塊和運(yùn)動控制模塊等。這些特殊功能模塊PLC廠家都給出了詳細(xì)的使用手冊,用戶可以通過仔細(xì)研讀使用手冊來完成特殊功能的實(shí)現(xiàn),使得軟件編程簡化,降低了經(jīng)濟(jì)成本。
四、人機(jī)界面
連接可編程序控制器,利用顯示屏顯示,通過輸入單元(如觸摸屏、鍵盤、鼠標(biāo)等)寫入工作參數(shù)或輸入操作命令,實(shí)現(xiàn)人與機(jī)器信息交互的數(shù)字設(shè)備稱為人機(jī)界面,俗稱觸摸屏。觸摸屏以其易于使用、堅(jiān)固耐用、反應(yīng)速度快、節(jié)省空間等優(yōu)點(diǎn),使得系統(tǒng)設(shè)計(jì)師們越來越多的感到使用觸摸屏的確具有相當(dāng)大的優(yōu)越性。觸摸屏由硬件和軟件兩部分組成。利用軟件可以完成用戶界面的設(shè)計(jì),結(jié)合PLC的程序設(shè)計(jì)極大的簡化了計(jì)算機(jī)的使用,即使是對計(jì)算機(jī)一無所知的人,對不懂PLC程序編程的操作人員,也能夠按控制要求設(shè)置控制系統(tǒng)參數(shù)、生產(chǎn)配方存儲、設(shè)備生產(chǎn)數(shù)據(jù)記錄等操作。觸摸屏的學(xué)習(xí)可以按如下的步驟進(jìn)行。首先針對某一系列觸摸屏仔細(xì)閱讀其畫面設(shè)計(jì)手冊進(jìn)行用戶畫面設(shè)計(jì);接著設(shè)計(jì)觸摸屏畫面操作實(shí)現(xiàn)對應(yīng)的PLC程序;最后打開觸摸屏、PLC編程仿真軟件進(jìn)行仿真調(diào)試。
五、掌握三種流派主流產(chǎn)品
目前,世界上有200多個(gè)廠家生產(chǎn)PLC。大體可以按地域分成主要的三個(gè)流派:一個(gè)流派是日本產(chǎn)品,以三菱FX系列小型PLC為代表;一個(gè)流派是美國產(chǎn)品,以AB公司的PLC系列中型PLC為代表;還有一個(gè)流派是歐洲產(chǎn)品,德國西門子的S7系列大型PLC為代表。不同型號的PLC產(chǎn)品具有不同的特色,不僅表現(xiàn)在特殊復(fù)雜的功能等方面,就是在編程語言、程序的組織等方面也存在著較大的差異。掌握所有的PLC產(chǎn)品顯然不現(xiàn)實(shí),也沒有必要。在熟練掌握一種PLC產(chǎn)品的基礎(chǔ)上,有意識地在其他主要流派中選擇最有代表性的產(chǎn)品,采用對比的學(xué)習(xí)方法進(jìn)行相對深入的研究。這樣在以后的工作、學(xué)習(xí)和開發(fā)研究中遇到其它的機(jī)型時(shí),就能夠做到觸類旁通了。
六、充分利用網(wǎng)絡(luò)資源,掌握PLC應(yīng)用及發(fā)展的最新資訊
PLC產(chǎn)品更新?lián)Q代的速度很快,若想及時(shí)掌握PLC應(yīng)用及發(fā)展的最新資訊,就要充分利用互聯(lián)網(wǎng)為我們提供的學(xué)習(xí)的平臺,方便地、快捷地、經(jīng)濟(jì)地掌握PLC的最新動態(tài)。尤其是一些網(wǎng)絡(luò)上的專業(yè)論壇能夠?yàn)槲覀兲峁┝溯^高水平的交流平臺,大量的學(xué)習(xí)資料、使用手冊、軟件功能的更新,使得不同階段的學(xué)習(xí)者受益匪淺??傊?PLC入門容易,真正掌握可編程控制器的編程方法,能夠順利設(shè)計(jì)出滿足生產(chǎn)任務(wù)的要求,同時(shí)程序做到簡潔、易懂,設(shè)計(jì)者就必須深入學(xué)習(xí)PLC技術(shù),學(xué)習(xí)者可以通過上述介紹的方法不斷地充電,掌握PLC應(yīng)用及發(fā)展的最新資訊,在不斷的仿真調(diào)試過程中逐漸形成自己的編程習(xí)慣。
猜你喜歡: