GG資源網

如何快速學習編程?有哪些學習方法?(編程要怎麼學)

大家好,我是一名學計算機專業的學生。對於學編程,我是深有體會。編程對於我們專業學計算機的人來說都很難,更不要學對於那些不是專業學計算機的人。因此,如果你不是學計算機專業的人,然而你卻想學會編程,方法對於你來說十分重要,如果沒有好的方法,你將會舉步維艱。

那麼我們應該用什麼樣的方法來進行學習編程呢?我把我的一些方法分享給你們。

首先,我們剛開始學習編程,先要對編程有所了解,其次我們需要閱讀一些關於編程的著名書籍,因為這些書籍都是一些這方面的專家來編寫,與其說這是他們幾十年的經驗,不如說是這是他們幾十年的心血。因此,我們通過閱讀這些書籍,就相當於吸收這些高手幾十年的功力,至於能吸收多少,這個就要看個人的能力。

還有一個方法很重要,就是一邊學一邊用。腦子和手一起用,這樣不但能記憶深刻,還可以幫助我們理解。我們學習編程的目標就是要讓我們學會如何去使用,因此如果僅僅只停留在理論階段,這是萬萬不可取的。

以上就是我的觀點,希望對你有幫助。

#####

大家好,我是大學裡的一名計算機老師。老實說,現在社會越來越不開計算機,學好計算機有關內容是很有必要的,尤其是編程,需要用到編程的地方很多,這也說明了編程在我們當今生活的重要性。

我目前教編程已經有十年了,編程這門學科說容易也不容易,說簡單也不簡單,關鍵還是要用對方法,沒有正確的方法就相當於在森林裡迷失了方向卻還有指南針指引你。所以我們不管是學習編程,還是學習其他的學科。不管是簡單學科,還是稍微複雜一點的學科,都要有方法,這樣學習才能事半功倍。

我認為學習最重要的方法就是要學以致用,邊學邊用,如果只學不用根本學不透,會學了前面忘了後面。我就遇到了不少這種學生,理論課很好,但是不怎麼實踐,結果最終成績也不是很理想。

而且學習編程不可以盲目追求速度,不可急於求成。編程是門很有深度的學科,要長年累月的學習才能大成。遇到難點要慢慢思考,要知道一口吃不成胖子這個道理。

以上就是我想分享給你們的,希望對你們有幫助。

#####

作為一名老程序員來回答一下這個問題。

學習編程的途徑還是比較多的,也有一些行之有效的方法,我帶過不少程序員,也給不少大型軟體企業的程序員做過開發語言的內訓,我就講一講都有哪些學習編程的方法。


方法一:看書+實驗


很多初學者開始學習編程語言的時候都是從看書開始的,通過看書來了解語言的語法、概念以及一些編程規則,在學習這些規則的同時通過完成書上的實驗來驗證對概念的理解。做實驗的過程就是不斷提高編程能力的過程,當把一本書的實驗都完成的時候,基本上對這門語言的整體已經有了一個比較全面的了解,但是要在實際工作中熟練使用還需要經過具體項目的錘鍊。

這種方法對學習者的學習能力有一定的要求,學習者要能夠通過實驗把書上的抽象概念理解清楚,一些難點問題還是需要一定的時間才能掌握。這種學習方法比較耗費時間,但是掌握情況會比較紮實。

推薦有一定基礎和學習能力的人選擇,學習時間因人而異,我有一次在醫院住院,由於條件限制沒有電腦,我就通過看書來學習Ruby,用了3天時間看完了整本書,效果也不錯。


方法二:看視頻+實驗


這種方式也是很多初學者採用的學習方式,這種方式對於沒有語言基礎的人來說是比較適合的,畢竟有人講解要比自己看書來的更直接,很多概念的理解也會比較容易。可以跟著視頻完成一些實驗,通常視頻看完了實驗也做完了。

這種方式學習編程速度比較慢,而且大部分視頻都比較滯後,視頻通常比書還要滯後一些。雖然視頻有人講解,但是畢竟沒有交流,很多代碼問題也需要自己來調試,這個過程還是比較耗費時間的,尤其是在學習的早期。

推薦沒有任何基礎的人選擇,學習時間相對較長。


方法三:參加培訓


這種方式能在短期內迅速完成一門語言的學習,畢竟參加培訓會有專人講解會節省大量的時間,尤其在學習語言的初期,很多代碼的錯誤都需要較長時間才能調試通過,有人指導一下會節省大量的時間。

這種方式適合自學能力不強的人,或者希望通過短時間快速掌握一門語言。很多大型科技企業都有自己的認證體系,比如Oracle、Cisco等,通常一周時間完成一門語言的培訓,當然這是需要付費的。


方法四:一邊看文檔一邊使用


這種學習方式是大部分程序員採用的方式,一方面在有了一定的編程基礎後,再學習其他語言會比較快,另一方面工作中開發時間都比較有限,需要在短時間內完成任務,所以都是一遍學習一邊使用。

以上這幾種常見的學習方法都有一個共同的特點就是需要做大量的實驗,學習編程語言並沒有什麼捷徑,即使有人講解,該做的實驗還是要做的,畢竟編程語言重在使用。

如果你在學習編程語言的過程中有什麼具體的問題可以諮詢我。

#####

看你怎麼定義\\\"快速\\\"和「高手」了。

沒有基礎的話,如果能夠在幾個月內快速成為高手,那麼這個高手也就不值錢了,談不上真正的高手 ^_^

#####

要快速學習編程語言,我認為要把握以下幾點:

一、明確自己的編程目的,不要去學習大學中的和編程弱相關課程如離散數學、數據結構與演算法、編譯原理等。

二、以項目為導向選擇最適當的語言。如想編個windos應用軟體建議選擇pb,本人開發的用口訣背英語單詞等免費軟體就是用pb開發的。

三、先看官網上的入門教程比較好,因為代碼可以複製到開發平台上調試。還可以看B站或雲視聽小電視上的編程教程。

#####

謝謝邀請,

學習編程最大的法寶就是堅持,沒有所謂的快速一說,真要快速也是自己快讀進入狀態摸索出來的,適合自己的方法才是最好的,但是大的方向還是要把握住,選擇明確的方向,不要輕易換方向,明確學習的編程語言,開始不要嘗試多個編程語言一起,就選擇一個全力以赴的去學習,換來換去什麼都搞不定,不要聽信多少天能學會什麼編程語言之類的話,編程算是一門入行比較難的職業,需要給自己留一定的時間找感覺,很多人在這段時間內就放棄了,需要長時間的積累才敢說熟悉一門編程語言,很多人剛畢業的學生簡歷上寫上精通某種語言,如果是一個正常的技術面試老師,基本上都會把你拿下,做技術要實實在在,來不得半點虛假。

既然決定學習編程了,作為一個寫了十幾年代碼的老程序員,還是給出幾條學習編程的建議:

1.編程本來就是入門相對比較難,不是幾天就能搞定的事情,所以遇到困難很正常,關鍵還是要堅持下來

2.學習編程的時候,建議還是以書本為主,視頻作為輔助,畢竟書本的學習雖然理解起來差點,但有助於培養邏輯思維能力,遇到實在不懂的可以找對號的視頻學習下,然後再回歸書本,編程本來就是燒腦的事情,就要讓自己大腦運轉起來,不能只是想著舒服,舒服了自己浪費了時間,越是痛苦就越是長進知識的時候。

3.很多初學者都一直在糾結,學了什麼時候能在實踐中用起來,那都是後話,先把基礎語法弄紮實,實踐的機會早晚都會有的,每年都有很多畢業生,也是有很多直接找到工作的,不見得就是做過多少項目,但絕大部分基本功都是可以的,企業對於剛畢業的不會太在項目經驗上為難,能直接考察的還是基本功,所以不要被各種信息所迷惑,還是好好弄好基本功。

編程的學習不是一日之功,不要指望用一段時間就能學到什麼程度,講究水到自然成。

希望能幫到你。

#####

1. 我應該選擇什麼編程語言

可能困擾編程新手最多的一個問題是【我應該學什麼編程語言】或者【我需要學習哪些課程才能做出一個web、一個app】,很多人一直糾結這個問題,陷入了東學一點、西看一點的死循環,到頭來啥也沒學好,這會很浪費時間。

剛上大一的時候,我也很想知道應該選擇什麼編程語言。我問了很多人,網上各種查資料,但所能得到的答案都很片面,多數對這個問題答非所問,總是回答說「某某編程語言難」,「某某編程語言性能好」。其實作為初學者,我們對計算機體系都不了解,就不要過多地去糾結性能,或者難易等因素,原因我等下再說。

如果你有明確的方向,那麼很好選擇。如果你想做演算法、機器學習方向,那麼python是最好的選擇。如果你想做web開發,java、php等都可以。如果想做一些更底層的工作,那麼就可以選c。當然這是建立在你有明確方向的基礎上。可是,很多人都沒怎麼接觸過計算機行業,特別是和我一樣剛入學就被調劑到計算機專業的人。對這些同學來說,各個編程語言就只是個名字,除了叫法不一樣,你根本不知道它們有什麼差別。所以索性不要糾結了,我替你選一個吧。

如果你是在校大學生,那麼你有大把連續的時間,就先學習c,然後再學c++。我個人是學c入門的,也許很多人不理解我為什麼推薦學c,因為c和c++都很難、很複雜,看起來並不適合入門。然而正是它們的難和複雜才能讓你更好地理解計算機系統【計算機系統不是指操作系統】學習編程不是學習編程語言,而是學習一個計算機生態,即一個龐大的知識體系。只會編程語言而不理解整個計算機的體系,就像只會寫字而寫不出好文章。了解c/c++和了解計算機系統是極為貼合的,向下可以幫助你更容易地理解操作系統、編譯原理、計算機網路、計算機組成原理,為什麼呢?因為較為底層的東西很多都是用c實現的,和系統的貼合度極高,很多教材源碼甚至教程,在講述這些知識的時候都是用c或c++作為媒介。而向上,c++面向對象的機制,也可以做出一些應用,譬如五子棋遊戲等,也不會顯得那麼枯燥。花個小半年時間了解c和c++,之後你就會覺得看書、看資料可以輕鬆很多。

如果你是一個上班族,但是剛剛學習編程,可能學c和c++對你來說有些複雜和困難,因為學習它們確實是很需要時間。你們不像在校生那樣有大把的連續時間,而零碎的時間去學習一個比較複雜的東西效果不見得有那麼好,所以可以先學一些【更容易見效】的編程語言,從python入手吧,至少能快速做出一些小應用,不至於丟失了興趣,但是真的要入門編程又還得看看與計算機系統相關的書籍,這樣才能更深層次地去編程,譬如【深入理解計算機系統】這一本書可以讀很多遍,這本書把整個計算機系統給串起來了。

2.學習編程,我需要學習哪些課程?

我要學哪些課程?我為什麼要學習如高數、離散數學、線性代數、概率論等課程?

這個問題也是之前困擾了我很久的問題。不過我現在想通了,對於【高數、離散、線性代數、概率論】等課程,很好解釋,做演算法的同學肯定知道為啥要學習這些課程。機器學習中會大量用到上述提到的課程,所以會比較好理解。對在校生而言,學校開設的很多課程我們不知道為什麼要學,我們很疑惑,不知道學它有什麼用,這個時候我們就會很糾結,還會產生抵觸情緒。這很正常,因為我們學習得不夠深入,自然不能理解它們的用處。

在我看來,大學本科課程更多的是面向「面」的教學,即什麼課程都教給你一些,但是又講得不那麼深入;而工作或者讀研,更多的則是面向「點」的學習,用到的知識更專。本科時,學校也不知道你以後是去搞演算法、還是搞架構、還是搞伺服器開發,甚至去搞硬體,所以學校需要你學很多課程,至少有個了解。對學生來說,一方面可以從中選擇自己感興趣的點;一方面也可以對未來的就業方向有些啟發。所以即使像數電、模電等課程,雖然之後可能用不著,但是你也要學,並且會花費大量的時間。雖然你最後不一定去搞硬體,但是這些課程也會讓你更容易去理解一些知識,比如cpu中的邏輯器件。

如果你在大一的時候就有一個明確的定位,知道自己今後想從事哪方面的工作,課程與課程之間是可以調一下優先順序的。不過像大學物理,這種課程確實是對編程沒有幫助,但是像我前面所說的,大學教育更注重廣度,大物等課程可能就是為了給你普及生活常識吧。

其實,大學教育的問題是普遍存在的,我認為我們學習一項技能的時候,應該採取的是項目驅動式學習,即需要用到什麼東西時不會了再去學,而不是先填鴨式的都填進腦子,並且在學習的過程中我們還不知道它這是幹嘛用的,等之後用到了,甚至不記得自己學過,反而查資料才會想起:哦,原來我之前學的xx科目是這個用處啊,可是我當時並沒有好好學。很多時候學生時間的浪費可能還是要怪老師、怪學校,他們一開始沒給我們做好充分的課程介紹。所以,在經過比較多的編程和項目實踐後,我認為一個比較好的學習方式是,改良版的項目驅動學習法。即:

學習一段時間,做個小項目,將做項目遇到的問題記下來,針對性地學習相關知識,然後再實踐,再學一段時間理論,讓知識成網狀發射狀地變大。當然,項目驅動式學習有一個弊端,就是每次學習的知識都是項目所需要的,很零碎、不成體系,所以需要改良,即在採取項目驅動學習法的時候每天抽一段時間去完整地讀一本書,或者一個相關問題的完整介紹,這樣就很容易把一些知識成體系地串起來。這樣一段時間下來,慢慢的,你就知道我們為什麼要學那麼多科目,學這些科目能幹什麼。

為了表達地更加形象,我就舉一個小例子,是我最近遇到的。我本身的工作是做Linux C++的,但不僅限於此。我個人對python、數據分析,以及機器學習等內容比較感興趣,大家可以看到我最近也在我的專欄發布了很多文章。就從數據獲取開始,我講講我這兩個月做了什麼東西。

談到數據獲取,可能最容易想到的是爬蟲,爬蟲是一個被說爛了的話題,所以我不想多說它是什麼。很多時候有人覺得爬蟲簡單,為什麼呢,因為有現成的框架,所以獲取少量的數據就比較容易。但是當你需要爬取的數據很大的時候(比如我之前抓取了某網站500萬用戶的數據,在下班的時間、用自己家裡普通的pc,計算機性能並不是那麼好,比不上伺服器,又要在不被封IP的情況下抓到這麼大量的數據,然後對數據進行清洗,最後還要可視化展示),使用現成的爬蟲框架就並不是那麼容易實現了。況且,我需要抓很多數據源,並不是一鎚子買賣。所以我選擇去開發一個系統,即在現有的框架下進行二次開發,搭建一個屬於自己的爬蟲系統,並植入一些演算法。我在系統中添加了很多中間件,直到現在,它還可以在10分鐘內就部署一個能抓取大量數據的爬蟲應用。當然,這個過程也遇到了不少麻煩,我就簡單講講,怎麼去攻克一個個問題。

下面先給出一個樹形圖,從上往下每一個圈都代表了學習過程中遇到的難點,如果你現在看不懂,沒關係,我想告訴你的是一種梳理知識的方法:

如上圖所示,就是一個項目驅動式學習的例子,我們的目的是為了獲取數據,所以選擇了爬蟲:

  1. 爬蟲可以理解為一個簡單的過程:發送request,獲取response,然後提取數據。這個過程會涉及到網路,是發送http還是https請求;目標網站是否需要登錄,是post請求還是get請求,從這條線,衍生出了一條對網路進行學習的路徑。
  2. 獲取到網頁之後,如果不是結構化的數據,可能返回的是一個html源代碼,那麼可能就需要了解dom,或者html頁面解析的知識,甚至需要了解一下前端開發。
  3. 在抓取的過程中,經常會遇到數據中途不能被爬取的情況,一般是IP被封禁了,那麼可能又要用上代理,代理是什麼呢?http,https代理能不能混用呢?如何構建一個代理池呢?這裡又有很多要學習的東西。還有可能遇到的情況是,抓下來的數據是加密的,需要通過js解密,這時候就要了解一下js,如何用爬蟲模擬瀏覽器進行抓取。除此之外,如果抓取的頻率不對,很多數據源會給你假數據,這就是一些經驗問題了,本文不是技術文,所以就不多討論。
  4. 當解決了上述問題後,我們好像可以拿到一些數據了,但是當數據大起來,問題又複雜了,你可能需要使用分散式抓取了,這時候你可能需要了解一下redis,當request產生的速度大於其消費的速度之後,你的任務隊列可能爆炸,所以這裡又涉及到演算法和數據結構的應用了。
  5. 數據量上去之後,把數據寫在文件裡面是不靠譜的,這時候又涉及到存儲了,到底是使用關係型資料庫還是非關係型資料庫呢,有什麼區別呢?存進去的數據怎麼去重呢?為什麼insert操作越來越卡了呢?電腦怎麼越來越熱了呢?索引是什麼,什麼時候該建立索引呢?這裡又牽扯到資料庫原理相關的知識。
  6. 遇到一些比較難處理的網站,比如有驗證碼識別該怎麼辦呢?其實對於很多純數字和字母的驗證碼都很好解決,自己用深度學習訓練即可。在TensorFlow的Demo中就要生成驗證碼自己訓練的教程,然後制定個中間件放在爬蟲系統中,這個問題就解決了。可是什麼是深度學習呢?這裡又引出一條對深度學習進行探索的例子,而我自己也是之前在學校的時候自學了小半年機器學習,有了一定的基礎後,才能比較容易地上手TensorFlow框架。再往下就比較深了。

上述六點簡單講了講項目驅動式學習的介紹,其實,你看到的每一個小圓圈,深挖下去都大有文章。我們現在看到的只是冰山一角,任何一條學習路徑學習下去都深無止境,我們不可能完全學會,可是項目驅動式學習最大的好處是讓你知道你應該去學習什麼,而不是先學一大堆知識,再去做一個項目。嚴格來說,項目驅動式學習的可視化路徑是一張網,而不是一棵樹,這裡畫成樹狀只是為了便於大家理解。

除了獲得數據,還有清洗數據、分析數據,甚至挖掘數據,最後可視化數據並且展示數據,這裡我就不一一介紹了。

3.學習編程是否需要制定計劃?

學習編程是否需要制定計劃,該制定什麼樣的計劃呢?

我認為不只是編程需要制定計劃,其他任何的學習和工作都需要制定計劃。我從13年上大學就開始定期給自己制定計劃,這個習慣也一直堅持到了現在,受益匪淺。當然也不只是制定學習計劃,還可以列一些自己需要做的其他的事情。我最近在整理筆記的時候也發現了一些之前記錄的計劃和清單,可以給大家看看。比如下圖就是我14年寫的筆記,筆記上都留下了最後一次打開的時間。列舉了一些自己需要看的文章,因為當時不太懂得規劃,所以比較亂。

到了16年的時候,我做計劃做得更加有條理了。下圖是16年10月30日的計劃,那時候我已經大四了,並且已經找到了工作、簽了滿意的offer,並且沒有什麼課,按理說可以放鬆放鬆了,不過我還是制定了一些學習計劃,並且選擇在11月去百度實習。從內容上看,主要是學習英語和計算機專業課,因為大一大二的時候我確實不明白為什麼要學習專業課,到了大三下想清楚原因以後,我也就一直在重新學習,因為計算機專業課真的很重要!學好了這些課,能讓你在日後的學習工作中輕鬆不少:

除了大四制定的計劃外,大二的時候我也制定過較為詳細的學習計劃(如下圖),把需要學習的內容進行了編號,存入表格,這樣才能讓你過得有條不紊。當然,很難完全按照計划去執行,不過制定相應的計劃能讓你清楚地知道自己應該幹什麼。

所以,如果你是在校生,那麼好好制定一個計劃吧,因為你有大把的時間。當然,如果你已經畢業了,沒關係,我現在也在上班,同樣也列舉了自己最近要學習的內容,如下圖(2月27日更新過),包括了短期和長期需要學習的內容:

4.編程是否需要做筆記和寫博客?

我覺得,寫不寫博客無所謂,因為博客是要寫出來給大家看的,可能要保證格式美觀、語法也要盡量準確,最好比較有文采,我覺得太麻煩也就一直沒寫。而筆記是必須要做的,並且記筆記是一個長期的過程。在學習的過程中,我們一直都在追求一種最高效的學習方法,比如,同一個班的同學,他用他的學習方法考上了清華,而你用同樣的方法就不行,為什麼?因為他的方法對他自己而言是定製化的,可能且大概率不適合你,比如他的筆記你不一定能看懂,因為他可能設計了一套屬於自己的符號。而就編程而言,很多同學說善用搜索引擎,是對的,可是搜索引擎搜出來的是別人的答案。你照搬過來,也許可以用,但是你沒有記住,這些知識並不屬於你,之後你可能還會遇到同樣的問題,又要再搜索一遍,可能很難找到之前的那個答案了。但是記筆記就不一樣,記筆記是定製化的,對你自己定製,你可以用自己最爽的表達方式來描述一個問題,是自己寫給自己看的東西,看了幾遍之後就能非常迅速和容易地理解。之後遇到相同的問題可以快速地通過找筆記解決。

舉個例子,下圖是我記錄的一些關於gdb【linux下調試c++的工具】的使用的一些筆記。我只記錄了我自己最常用的一些內容,也許你看著很亂,但是我就能很容易看懂,這就是我的定製化。

記筆記的習慣一定要堅持,等過個一年或者兩年,這就是你巨大的財富,因為那是只有你才能看懂的東西。我已經記錄了4年多、1G多的內容,現在的筆記基本已經形成了體系,可以給大家展示其中的一部分。

專業知識相關筆記:

開發相關的筆記:

一些類目:

5.有什麼比較好的編程方法?

除了上述分享的一些方法,我認為在同一時間段不要學習太多類別的課程,比如你可以同時學習python和html/css,但是你不要同時學python、操作系統、編譯原理、計算機組成、數據結構、網路,我曾經試過,一門課沒學一會兒就學下一門,其實上一門根本學不到什麼實際的知識。因為記憶知識是符合艾賓浩斯記憶曲線的。對於一門課,特別是很難的專業課,譬如操作系統,你每天看半小時,效果是比較差的,可能你熱身就得半小時。所以寧可每天學兩門,然後每一門學長一點的時間,比如兩小時。【畢竟學校上課,一次課也得兩小時】,要避免貪多,一口吃不成個胖子。

6.我需要刷oj么?

我認為剛開始編程的時候還是應該刷的,但是一定要注意,不要被你周圍的「X神」給誤導了。因為我上大學的時候,身邊總是有很多搞計算機競賽的人,他們之間都互相稱對方為「X神」,某某神又使用一個牛逼的演算法,將程序時間從1秒降低到了0.999秒。我要勸大家的是,刷題不是為了達到這個目的,不是說非要在競賽中拿獎,除非你是特別喜歡,否則,沒必要去背代碼。我們刷題的目的是適應寫代碼的感覺,在這個過程中你會遇到編譯錯誤,你會慢慢去記住一些語法、關鍵字,並理解一些概念,還可以自己去使用它,比如實現數據結構。慢慢的你就會變得有經驗,知道一些錯誤產生的原因。我也是慢慢這樣過來的,我現在在工作和下班以後寫代碼時,基本都不用IDE了,比如寫c++,要麼vim,要麼就是sublime,而調試用的是我前面提到的工具gdb。即,有一個文本編輯器就能寫代碼,脫離了IDE的束縛。在寫oj之後一段時間,在比較熟練了之後,就可以不去刷題了,可以去譬如github這樣的網站上找點項目來看,然後自己跟著寫一下,編程能力慢慢就提升了。就計算機專業來說,很多同學在大一上完編程課之後,就很少寫代碼了,這樣是很不好的。刷題除了可以鍛煉編程能力,對於找工作前突擊也很有作用。比如,我之前投遞過華為公司的研發崗位,校招的時候有筆試題。我就在16年國慶的時候刷了一下華為的oj,我記得筆試是600分的總分,過100就給面試機會,而我很輕鬆的就拿了500分,而當時也就刷了20多道華為的題。

7.看書還是看視頻?

網上有不少人鄙視看視頻學習的同學,我不知道為什麼,因為我認為看視頻是一個很好的學習方式。不過我們得明白看書和看視頻分別有什麼優缺點。

其實我是很建議看視頻入門的,因為目前網上的應用型【非學術型:比如清華大學的操作系統,非常難】的視頻都是很簡單的,很多是面向初學者的,視頻能用較短的時間告訴你你現在所學的技術可以幹什麼,可能需要先修哪些知識,可以幫助我們搭建一個項目驅動式學習的網路。可是視頻也有個缺點:就是知識非常的雜,很不系統。雖然現在很多教學網站都提供了學習路徑,但是這些路徑中的視頻很多時候都不是同一個老師錄製的,只是按照知識的依賴關係排的順序,所以,如果想通過視頻去系統地學習一門知識,是比較困難的。【當然,一些學術型的視頻還是很推薦的,比如斯坦福的機器學習,清華的操作系統、數據結構等課程,能堅持看完,絕對受益匪淺】。而應用型的,比如web開發等知識,還是得看書。書籍等特點就是系統化,由淺入深,你可以定製化地看自己薄弱的章節。所以一個比較好的學習方式是:

看視頻入門,看書進階。

8.多久能學會編程?

其實這個問題是沒有答案的,如果只是想做出一個小應用,2個月足矣,而就我個人而言,我認為學習編程不是學習一種編程語言,而是學習一個生態,一個計算機系統,所以無止境。

9.我應該選擇什麼資料,看什麼書?

其實這個問題也是很多編程新手容易困惑的問題。網路上擁有我們一輩子都看不完的教程和資料,所以現在應該不會存在找不著視頻教程、找不著書看的問題。而問題就是我們不知道看什麼視頻、看什麼書。從開始學編程到現在,我也買了上百本書,而真正適合自己的好書並不多。而視頻教程的問題就更嚴重了,東看一點、西看一點,知識很難組織成網路。所以學習編程的過程中,我們遇到的最大的問題是:當我們遇到問題的時候,在大量資料面前,我們不知道選擇什麼資料去學習。即使我們使用項目驅動式學習的方法找到了我們的方向,但是同一個路徑下,也有很多資料。前文列舉的項目驅動式學習的圖中,我們是自上而下的去發現問題,然後再解決問題。如果能有人幫我們組織好學習路徑,然後自下而上地去學習,那麼效率可能會提高很多。

不過不用擔心,我已經盡我所能,將我看過或者我認為好的課程和書本資料給串了串,整理好上傳了,所有學習資料均免費,無任何收費課程。

資料百度雲地址: https://pan.baidu.com/s/11Pk-TAKuiyKaY9Llxpdj2Q 提取碼: w4mk

另外,很多新手反饋不會搭環境,那我給大家推薦一款可以在線運行代碼的網站,那個背單詞app百詞斬推出的學習編程的網站,在線編輯,在線運行,避免了你搭環境的痛苦,直接運行即可,這個環境使用是免費的,點擊FreeCode,選擇「代碼練習」新建文件就可以了:

這個網站對初學者比較友好,不過目前只有Python環境,其他的環境得再等等。

百詞斬一直走的都是黑科技路線,並且出的課程也是採用的及時反饋的模式,也正是在他們家自己搭建的環境上,進行的一個練習,對電腦的配置也沒有什麼要求,甚至平板和手機等終端上都可以使用,也是按背單詞那套來設計的,感興趣的同學也可以去看看,也可以去公眾號回復「免費教程」能白嫖免費的課程,感覺也還挺紮實的,實在不感興趣的,也可以免費薅一下他家的編程環境,對電腦配置真的沒有什麼要求。

#####

無他,唯手熟爾。

單純的想,別想多,學習編程唯一捷徑就是多動手編程實現。

看書看視頻作用微乎其微

#####

我是跨專業轉到互聯網行業,目前任職演算法工程師,所用語言有Python,R和Go等,均是自學,根據我個人學習的一些經驗和教訓,我將快速學習編程的方法總結如下。

1.學習編程最好有老師教。無論學習什麼知識,最好都是要有老師帶。有人可能會問,要報培訓班嗎?不必,看視頻即可,看視頻讓老師給你講解一遍,相當於老師教了你一遍,學習Python的話推薦小甲魚入門視頻,Go的話推薦谷歌工程師講GO(不願找視頻的私信我,免費分享)。看一兩遍視頻,把裡面的程序自己動手實現,然後再看一兩本入門書籍,足夠了。

2.學習編程最好儘早找到學習環境。自學編程其實很難堅持,因為互聯網方向太多,學習深度廣度加大之後,你根本不知道自己的所學是不是真的有用,就會產生一定程度的學習迷茫。這個時候,你就要找到進一步學習編程的環境,進一步學習。怎麼找?找工作。用看視頻啃書本掌握的基礎知識來叩開互聯網企業的大門(需要厚臉皮和強大內心,沒辦法想快就要逼自己),以此繼續學習編程,做到學習就是工作,工作就是學習。在工作崗位上學習的效率比自己悶著頭學習要有效得多。

3.綜上,快速學習編程,首先要有快速學習方法——看視頻,其次要有快速學習環境——找崗位,這兩者結合後,你入門編程僅需要數月即可。等到入門編程後,你再學習新的一門語言時,你會發現任何一門語言都是入門容易,精通很難。

#####

關於這個問題,我有著獨特的見解。我在剛剛接觸到編程的時候,真心感覺特別難,那段時間我處於崩潰的邊緣,各種學習方法我都用了,但是編程真的是太難了,這是我二十多年裡學過的最難的學科。

但是在一次偶然的機會,我面試了一個夏令營,這個夏令營會在第一個禮拜教我們一些編程的基本東西,然後讓我們為他們工作,工作的內容也是一些編程的內容,說白了就是拿我們當苦力,但是在這裡做苦力就是有一點好,我們在工作過程中遇到任何問題,他們會有人第一時間過來幫助你解決問題。就通過這樣方式,我在夏令營度過了一個月,在這之中,我遇到了編程上的許多難題,但是在他們的幫助下,我都一一解決了。我對於編程的認識得到了突飛猛進。

因此我要告訴大家的方法是,實踐就是最好的學習,只有我們自己去實踐,遇到問題去解決,當我們把一個又一個問題解決,我們就學會了編程。

由於網站搬家,部分鏈接失效,如無法下載,請聯繫站長!謝謝支持!
1. 帶 [親測] 說明源碼已經被站長親測過!
2. 下載後的源碼請在24小時內刪除,僅供學慣用途!
3. 分享目的僅供大家學習和交流,請不要用於商業用途!
4. 本站資源售價只是贊助,收取費用僅維持本站的日常運營所需!
5. 本站所有資源來源於站長上傳和網路,如有侵權請郵件聯繫站長!
6. 沒帶 [親測] 代表站長時間緊促,站長會保持每天更新 [親測] 源碼 !
7. 盜版ripro用戶購買ripro美化無擔保,若設置不成功/不生效我們不支持退款!
8. 本站提供的源碼、模板、插件等等其他資源,都不包含技術服務請大家諒解!
9. 如果你也有好源碼或者教程,可以到審核區發布,分享有金幣獎勵和額外收入!
10.如果您購買了某個產品,而我們還沒來得及更新,請聯繫站長或留言催更,謝謝理解 !
GG資源網 » 如何快速學習編程?有哪些學習方法?(編程要怎麼學)

發表回復

CAPTCHAis initialing...