如何才能正確快速的學(xué)習(xí)編程
學(xué)習(xí)任何東西都要找到正確的學(xué)習(xí)方法,學(xué)習(xí)編程也是也是一樣的,想要快速的學(xué)習(xí)編程的話,請(qǐng)看下文,以下是學(xué)習(xí)啦小編分享給大家的快速的學(xué)習(xí)編程的方法,希望可以幫到你!
快速的學(xué)習(xí)編程的方法
一、不斷練習(xí)
每天都要敲代碼
花大量的時(shí)間對(duì)于掌握一門語(yǔ)言是最重要的。即便是像Python這樣的簡(jiǎn)單語(yǔ)言,它可能也要畫上一兩天去了解它的基本語(yǔ)法,花大量的時(shí)間才能真正精通。想任何其他的技巧一樣,練習(xí)是變得更加?jì)故斓年P(guān)鍵。盡量每天都要花一些時(shí)間去敲代碼,即便是在工作之后和晚餐之前的一小時(shí)。
給你的程序設(shè)定目標(biāo)
通過設(shè)定能夠?qū)崿F(xiàn)但又有挑戰(zhàn)性的目標(biāo),你將能夠開始解決問題并拿解決方案。嘗試著去設(shè)想去一個(gè)基本的應(yīng)用程序,比如一個(gè)計(jì)算器,然后想辦法去做出來。使用你一直學(xué)習(xí)的語(yǔ)法和概念,然后將它們應(yīng)用到實(shí)際中。
和別人交流并且閱讀他人的程序
有很多編程社區(qū)致力于特定的語(yǔ)言或?qū)W科。找到并參與到這些社區(qū)會(huì)為你的學(xué)習(xí)創(chuàng)造奇跡。你將會(huì)獲得能夠幫助你的學(xué)習(xí)過程的各式各樣的示例代碼和工具。通過閱讀他人的程序代碼不僅可以激勵(lì)你,還可以幫助你回憶那些還沒有掌握的概念。
為你所選擇的編程語(yǔ)言找到論壇或在線社區(qū)。確保自己是真正參與進(jìn)去而不是不斷地問問題。這些社區(qū)往往看著做協(xié)作和討論的地方,而不僅僅是簡(jiǎn)單的提問-回答問題。請(qǐng)隨時(shí)尋求幫助,但要準(zhǔn)備好你的程序以及嘗試用不同的途徑。
一旦你已經(jīng)有了一些經(jīng)驗(yàn),可以參加一些編程的活動(dòng)。這些活動(dòng)是個(gè)人或團(tuán)隊(duì)爭(zhēng)分奪秒的開發(fā)功能的程序,通常會(huì)圍繞一個(gè)特定的主題。這些事情都很好玩并且是一個(gè)認(rèn)識(shí)其他程序員的很好的方式。
挑戰(zhàn)自己并保持樂趣
去嘗試著做一些你現(xiàn)在還不知道怎么做的事情。研究該怎樣完成這個(gè)任務(wù)的方式,并且不斷的將它們添加到你的程序中。一定要盡量避免勉強(qiáng)能運(yùn)行的程序,你應(yīng)該讓各個(gè)方面都很完美。
二、分享你的知識(shí)
參加一些培訓(xùn)課程
許多的大學(xué)、社區(qū)學(xué)院、社區(qū)中心都提供了你可以參加的編程課程和工作室,而無需在學(xué)校注冊(cè)。這里對(duì)于新手程序員是很有裨益的,因?yàn)槟憧梢詮钠渌薪?jīng)驗(yàn)的程序員那里得到幫助,或者你也可以通過網(wǎng)絡(luò)和其他地方的程序員一起交流。
買或者借一本書
有成千上萬種你所能想象出的所有語(yǔ)言的教學(xué)書籍。雖然你的知識(shí)不應(yīng)該全然來自一本書,但它們會(huì)給你提供許多的參考,而且往往內(nèi)涵了大量友好的示例。
學(xué)習(xí)數(shù)學(xué)和邏輯
大多編程都涉及了基本的算術(shù)運(yùn)算,但可能你想要學(xué)習(xí)更先進(jìn)的概念。如果你想寫出復(fù)雜的模擬或者算法級(jí)別程序,這將是非常重要的。對(duì)于大多數(shù)日常編程而言,你并不需要太多先進(jìn)的數(shù)學(xué)知識(shí)。但學(xué)習(xí)邏輯,尤其是計(jì)算機(jī)邏輯,將能幫助你理解處理更先進(jìn)程序的復(fù)雜問題的最好方式。
永遠(yuǎn)不要停止編程
有一個(gè)流行的理論,成為一名專家至少需要10000小時(shí)的練習(xí)。雖然這個(gè)理論還處于辯論中,但它內(nèi)含的原則永遠(yuǎn)是正確的:精通需要時(shí)間和奉獻(xiàn)精神。不要指望一夜之間你就能學(xué)會(huì)一切,但如果你保持專注,并且不斷的學(xué)習(xí),很快你就會(huì)成為你的領(lǐng)域里的專家。
快速的學(xué)習(xí)編程的技巧
“快速”
對(duì)于“如何快速學(xué)習(xí)編程”這個(gè)問題,其實(shí)我真的不知道何謂“快速”。我覺得,通過遵循以下建議,你將很快地學(xué)習(xí)編程(至少你的成長(zhǎng)/進(jìn)步會(huì)快)。但你真的不應(yīng)該眼中只有“快速”。只追求速度反而會(huì)拖你的后腿,讓你自食其果?!翱焖佟睂W(xué)習(xí)的唯一可持續(xù)方法或許是采用浸泡式教學(xué)法。找到一種方法讓自己沉浸在編程中很長(zhǎng)一段時(shí)間(幾個(gè)月?)。為了讓它奏效,你需要不斷推動(dòng)自己去學(xué)習(xí)新的東西,并迅速抽身離開。這是編碼訓(xùn)練營(yíng)的一個(gè)優(yōu)點(diǎn)。當(dāng)你出來時(shí),盡管你還不是專家,但你會(huì)學(xué)得更快。這也可以通過專門的導(dǎo)師教導(dǎo)或與專門的初學(xué)者一起學(xué)習(xí)來實(shí)現(xiàn)。
讀>寫代碼>讀>寫代碼(日復(fù)一日)
關(guān)于如何高效學(xué)習(xí)編程我要給出的第一條建議是在閱讀代碼和編寫代碼之間循環(huán)往復(fù)。閱讀代碼(書籍,博客文章,開源代碼)將幫助你查看解決方案,了解最佳做法,并大致了解語(yǔ)言或系統(tǒng)。但是在你這樣做之后,你需要自己實(shí)際去寫代碼??梢允侨魏螙|西。可以是小的編碼練習(xí)或業(yè)余項(xiàng)目,但確保你能將之付諸于實(shí)踐,并用某種方式使用你學(xué)到的東西。如果你不這樣做,那么你會(huì)發(fā)現(xiàn)自己面對(duì)編輯器會(huì)無所適從無從下手。
這方面的訣竅是讓自己感到不舒服。這是相當(dāng)痛苦的,但就應(yīng)該這樣。編碼遵循80/20規(guī)則?;?0%的時(shí)間在20%的代碼或20%你所學(xué)的東西上。習(xí)慣于這種不舒服的感覺并克服它是關(guān)鍵。
這個(gè)迭代周期不應(yīng)該以周為周期或以月為周期發(fā)生,而是應(yīng)該以日為周期。知識(shí)等待使用的時(shí)間越久,知識(shí)這把斧頭就越鈍。等待學(xué)習(xí)新知識(shí)的時(shí)間越長(zhǎng),你就越難以將其融入到代碼中。
我推薦閱讀關(guān)于通用編程主題的網(wǎng)站是lobste.rs。上面有許多關(guān)于許多編程主題的文章。另一個(gè)好的網(wǎng)站是Hacker News,但網(wǎng)站時(shí)常偏離話題。
不要陷入僵局。請(qǐng)求幫忙
我最大的錯(cuò)誤是在學(xué)習(xí)編程陷入僵局的時(shí)候用了太長(zhǎng)時(shí)間。在被卡住時(shí),我會(huì)花很多時(shí)間在一些愚蠢的東西或一些我根本上不明白的東西上。有時(shí)候我需要花費(fèi)好幾天時(shí)間才能完成這些工作,而原本我可以用這些時(shí)間做更多的事情和學(xué)習(xí)更多的東西,如果我能找到更好的解決方法的話??ㄔ谝粋€(gè)東西上面超過一個(gè)小時(shí)基本上就是在浪費(fèi)時(shí)間了。
我推薦三件事情以避免僵局。第一是試著總是閱讀更多關(guān)于你使用的技術(shù),并總體掌握正在發(fā)生什么。通常,當(dāng)你陷入困境時(shí),意味著你對(duì)需要澄清的事情做出了不正確的假設(shè)。第二是咨詢互聯(lián)網(wǎng)。這一點(diǎn)很顯然,但依然值得一提。在網(wǎng)上查找并詢問有過這個(gè)問題的人是一個(gè)非常重要的技能。Stackoverflow可以說是互聯(lián)網(wǎng)上最好的網(wǎng)站。不要害怕在那里問自己的問題。通常,只要盡力正確地闡述你的問題就OK了。我真的希望以前我能多問些問題,但總是因?yàn)楹ε聲?huì)顯得愚蠢而止步。我的第三個(gè)建議是向你認(rèn)識(shí)的人請(qǐng)求幫助。通常,你或許已經(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ù)。你面對(duì)的各種問題,以及你如何解決它們才真正是所謂的編程。知道編程語(yǔ)言的每一個(gè)古怪細(xì)節(jié)的確是有幫助的,但它只會(huì)讓你越來越落伍。此外,想要完成項(xiàng)目的驅(qū)動(dòng)力是繼續(xù)學(xué)習(xí)的動(dòng)力。從業(yè)余項(xiàng)目獲得的滿足感遠(yuǎn)遠(yuǎn)超過你在抽象中學(xué)習(xí)東西的滿足感。
我對(duì)于選擇業(yè)余項(xiàng)目的建議是,選擇你感興趣同時(shí)你也有想法如何實(shí)現(xiàn)的東西。能夠在開始之前表達(dá)實(shí)現(xiàn)總是有助于保持我的動(dòng)力。在此旅途之中你一定會(huì)學(xué)到很多!
快速的學(xué)習(xí)編程的建議
1,主動(dòng)學(xué)習(xí),我對(duì)要學(xué)習(xí)的編程語(yǔ)言充滿了好奇與興趣,并對(duì)它發(fā)自內(nèi)心的熱愛。不管怎樣,要確保你自己是主動(dòng)來學(xué)習(xí)的。有時(shí)候,壓力的確可以促進(jìn)學(xué)習(xí),但是它不可以持續(xù)很長(zhǎng)時(shí)間也不可以使你快速掌握該語(yǔ)言。
2,明白我要學(xué)習(xí)什么--我沒有老師,沒有練習(xí)資料,也沒有考試,但是我可以測(cè)試我自己來看自己有沒有理解正在學(xué)習(xí)的內(nèi)容。我知道在新的領(lǐng)域,有很多限制,所以我在筆記本上寫下了一些問題,在以后再回答他們(一般都是幾個(gè)小時(shí)后)。你會(huì)發(fā)現(xiàn)記筆記,進(jìn)行網(wǎng)絡(luò)搜索,盡可能的收集參考書等對(duì)你的學(xué)習(xí)是非常有幫助的。
3,遷移知識(shí)--因?yàn)槲沂且粋€(gè)非常有經(jīng)驗(yàn)的軟件工程師,我可以遷移老知識(shí)來幫助我理解新的語(yǔ)言。在大多數(shù)情況下,都可以行的通,尤其對(duì)算法和理念屢試不爽。但是有些情況,知識(shí)遷移是錯(cuò)的,我必須做一個(gè)“遷移->測(cè)試(代碼)->理解”的檢查。
猜你喜歡: