如何才能自學編程並學好編程?

一開始就很喜歡搗鼓各種電器。拆了裝,裝了拆。

記得高中的時候,nokia e63吧 。某天無意中看到有個py分區,從此就開始了我的編程之夢了。雖然當時看的懵懵懂懂的,但也樂此不疲的照抄下來,自己在手機上碼。(但是過段時間就放棄了 因為看不懂)後來也買了c和c++的書 看了一段時間 對編程也是一知半解吧, 所以成績一直沒好過。 高考無奈,只能選擇了技能培訓學校。 家裡也很支持。 但是在教完c#後,學校因為某些原因倒閉了。無奈,又不敢尋找其他的培訓學校。決定自學。 學過c c++ java c# 數據結構大部分。(除了c#外,基本上都是在網上下載的視頻教程 )後來又去玩了一下linux 現在感覺自己完全寫不出來什麼東西一樣。 前段時間很費勁的用c#寫了一個貪吃蛇。 而且還是參考網上的源代碼。

雖然這樣但是還是想在編程路上走的更遠。

感覺自己就是什麼都想學,但是又什麼都學不會。最近,迷茫的厲害。不知道這樣自學究竟是在浪費時間,還是。。。。


不知道你是怎麼學的。。。不過反正一口想吃個胖子肯定是行不通的。。。

說說我自學的經驗。本人211小本,目前大四,大學前兩年半都是混吃等死。大三下學期覺得這麼下去也不是個辦法,遂自學。在此之前我相當於一點兒編程經驗都沒有,以往的作業都是抱大神的大腿。唯一的基礎是通過近三年的耳濡目染,對c語言系的語言的語法有一些基礎的了解。我從今年四月份開始學,每天差不多六到八個小時,學習的途徑是看馬士兵的java教程視頻,從最基礎的面向對象的概念開始學起。每看完一集視頻我都會仔細回想一遍要點,然後把每個視頻的例子都寫一遍。如果中間卡住了就回頭再看視頻,然後再重新寫。基本上下來一個小時的視頻我需要花兩到三個小時左右的時間消化。那些日子我基本上整天就在想編程的事情,睡前也都總結一下今天學到了什麼。學了近三個月,到七月份我已經能夠獨立的用ssh寫個網站了。比起大牛我當然差的很遠,但是跟自己比較,我已經對自己取得的進步非常滿意了。大四一開學我到一家互聯網公司實習,目前負責的是前端的工作,要學的東西當然還有很多,但支撐我學習的動力已經慢慢的從單純想證明自己不比別人差的一股氣變成了興趣。

我覺得自學完全是沒有問題的。現在網上的資源太豐富了,教程一抓一大把。我覺得題主關鍵是要找准切入點,從一門語言學起,學的深入一些,別貪多嚼不爛。另外是找准適合自己的學習方法。對我自己而言,我看編程書籍就會犯困。。因此我選擇看視頻學習。但是無論是什麼學習方式,多動手編,都是繞不開的。從題主寫貪食蛇很費勁來看,肯定是平時代碼寫的太少了。。。我自學java的時候也寫過一個簡單的貪食蛇,記得也就一百來行代碼。。。光看視頻,不實踐,是永遠不會進步的。

當然我這麼學有個比較嚴重的問題,就是基礎不夠紮實。。。數據結構,操作系統,網路原理,等等都很重要,但是我覺得這些可以放到後期慢慢補上。反正既然選擇了編程的道路,就不能停下學習的腳步。

2015-10-29日更新

一年多前寫的答案,目前回頭看,很稚嫩,也很不成熟。但是確實是當時的感受,也算是自己學習過程中的一個小記錄。

雖然看到答案點贊回復的人很少,但是還是有小小的幫助到一些人,給很多迷茫的人一些希望,還是很開心。曾幾何時,我也是這麼一個迷惘的少年,每天沉迷遊戲,對未來就是三個字:不敢想。如今的我已經畢業一年出頭,加入了美團,薪水也早已比剛畢業的時候翻了一倍以上。編程其實真的不是很難的東西,其實不止編程,世上無難事,只怕有心人。


視頻教程不靠譜,還是買書來看。

而且不要老是糾結在語言和數據結構(但這些基礎非常重要)

有寫概念以後要繼續深入,去研究演算法,找實用的東西來玩。

總之,不要停


自學編程跟自學彈琴自學畫畫自學舞蹈自學跆拳道自學修電視沒啥區別。學、習、分析、反思,繼續學、習。


玩,一個一個嘗試,看看不同的句子會有什麼不同的變化


1. 寫東西

2. 自己用 / 玩

3. 再改進

4. goto 2


推薦閱讀:

系統調用真正的效率瓶頸在哪裡?
C語言中,scanf("%d", &a),在設計這個語法結構時為什麼要有地址符&,沒有行不行?
有沒有求多邊形的狹窄部分的演算法?
寫不出數據結構的人是不是不適合編程?
Unity3D 如何做好版本控制?不限於腳本,包括圖片,模型等二進位文件。

TAG:編程 | Java | C | C# | 自學編程 |