如何高效自學編程?

相關問題:

自學編程需要注意什麼? - 程序員

想自學編程怎樣下手? - 大學生

如何系統、科學地自學編程知識? - 學習方法

--

年齡:27,想開始學編程(興趣愛好,不要笑我),沒有任何的基礎知識,打算入手基本書籍或網站去自學,然後入手一部筆記本(預算幾千),請各位大神指點。

1、先學什麼比較好?目的是可以自己編寫程序(一個小遊戲、網站、app什麼的)

2、有什麼書籍或者網站可以推薦的?

3、英文是不是隊伍編程學習很重要?目前4級水平左右,不過工作多年未接觸估計退步了,可以學習。

4、什麼筆記本比較好?最好型號或配置什麼的。

學習編程只是興趣愛好,不會成為職業,各位大神能回答幾個就答幾個,有什麼好建議也可以說出來,虛心受教。


1、熟讀並接受《Teach Yourself Programming in 10 Years》

2、不斷寫代碼,不要干別的事情。

很快就學會編程了。


根據我的觀察,扣除部分3分鐘熱度的人以外,真心想學習的人,在高效問題上,最重大的阻礙,即是挫折感。下文,我針對的就是速度,這個關鍵點進行分析,我並不認同高速是一個最好的學習方法,不過既然問題是關於速度的,所以下文的方法,著重的就是速度。

在計算機學習的曲線上,初期非常陡峭,尤其是非科班出身,沒有任何基礎,或者基礎相當薄弱。這是由於計算機語言的學習本身特性所導致。並且,計算機語言的特性充分體現了工科的特色,除了天才以外,最為穩妥的方法即是大量練習,而這和大多數人追求的「高效」相悖。

我提供你們想要高效學習的人一個思路。放棄上學的時候掌握的 理論-習題 的學習方法,採取 習題-理論- 習題的方式進行學習。 在初期試圖學習計算機理論,或者語言理論,是非常枯燥的,這雖然是好的開始,但是不符合你們浮躁的心態。我不贊成浮躁的心態,但是我認可你們擁有浮躁的心態並試圖學習成功。

首先,你從習題,也就是代碼直接入手,我們以JAVA為例子。我對於JAVA入門的初學者,向來是建議他們從bitnami開始,不要再去聽信那些人的jdk安裝,eclipse等等的infra調試,這些對你來說,是高效的大敵。我定義的高效,乃是在任何階段花費最少的時間,學到最多的東西。jdk在你上手初期,調試也好,安裝也好,常常遇到困難,而當你有幾個man month的effort以後,這些東西在數小時內就能完成。你去bitnami上下載一個完整的環境包,去eclipse下載一個for jave ee developer,包括下載時間,可以在2個小時內幫助你進入JAVA編碼階段,我看了相當多的初學者教程,都不及這個快。

第三個小時的目的,是hello world。你現在能打開eclipse,你應該去百度下「eclipse如何新建工程」,這個步驟你會花費半小時,你能得到的是一個空工程,一個默認包,一個空實體類,如果你找到的教程好一些,或者你細心一些,你還會獲得一個main方法。然後你會去搜索「java hello world」你會找到很多在notepad里寫,然後放到命令行下執行的教程,但是你足夠聰明的話,你會發現,核心就是在main方法裡面寫一句system out,好,你學會了,放進去,在菜單里找到運行。

第三個小時,你在命令窗口看到hello world,這時候,你已經開始準備好學習了。

這前三個小時,就是高效學習的關鍵開始:無挫折感,快速進入狀態。

接下去,你要暫時放下IDE,你要來學習一下理論,看下java入門的書,跳過任何其他內容,只看一種內容,編程語句的語法,其他的暫時以後再看,為了快速入門,你只看語句,我建議你看語句的時候,用一張紙,看到一條寫一條下來,你最後會發現,基礎語句只有很少的一頁而已。記住,只看核心包的語句,不看任何其他實現。

這可能需要8到12個小時,如果你完全順著我說的做的話。

再接下來,你可能要花費20到50個小時,閱讀幾段代碼,這些代碼最好來自於你看的入門書,不要是實際解決問題的實際代碼,實際代碼當中有太多為了實際情況妥協的場景,現在你並不能理解,你應該在一個真空實驗室里看完全無摩擦的小球下滑,而不是計算我的女兒在社區滑滑梯上下滑的模型。

你拿著你剛才記錄語句的紙,開始閱讀代碼,看不懂的,就看看你的紙,以加深映像。在如此50個小時,也就是全職搞一個星期之後,你大約能手寫出基礎的代碼,所謂基礎,基本上是個排序,或者是個隨機抽獎之類的,這時候你仍然在IDE里活動,並沒有伺服器相關的東西,你不知道你的代碼和實際的代碼之間有多大的差距,別怕,你已經在進步了。

接下去大約20個小時,你從代碼回來,你來看看語言的哲學,包括語言的歷史,他的分類,他的主要分支,比如java所分的三個大分支,現在的應用,這些的大部分,你可以從互聯網上獲得,更好的方法,是來知乎提個問題,或者中個牛人給你講半小時。

過了這20小時,你基本上可能不滿足於僅僅在IDE的控制台輸出些東西,是的,你要找一個伺服器了,tomcat向你招手。同樣的,你不要去自己搞伺服器,這個之後再說,你去下載完整的搭建包,只要雙擊,你就會有一個tomcat實例。

方法上,你只需要循環就可以了,你首先閱讀伺服器編程需要的語句,然後你嘗試閱讀基礎代碼,然後你自己開始寫。基本上到這裡,你基本上可以作為實習生助手參加一些開發工作,如果你能找到一些社區項目,你可以繼續精進了。

ok,有一些各種渠道過來的問題,我更新在這裡,本來打算開一個1塊錢的live統一回答一下,結果發現要微信錢包付500塊才能開live,可憐我沒有國內銀行卡,用不了微信錢包 2333

(bitnami上下載一個完整的環境包)這個環境包和sun公司下載的環境一樣的嗎?

首先sun已經是陳年舊事了,現在是oracle啦!bitnami上的整合包當然是用的一樣的jdk,一樣的tomcat,主要是調整了參數,提供了啟動界面,所以不需要自己設置很多東西了。


(為了快速入門,你只看語句)這個語句是main方法那一行的嗎?

不全是。你主要應該了解,循環怎麼寫,字元串怎麼處理,數字怎麼處理,這些是任何程序的基礎,你還不需要去做線程啊之類的底層操作,你目前只需要看和業務操作有關的方法就夠了


年齡:27,想開始學編程(興趣愛好,不要笑我),沒有任何的基礎知識,打算入手基本書籍或網站去自學,然後入手一部筆記本(預算幾千),請各位大神指點。

年齡不是問題。我轉行學編程也是27歲,文科生,之前做律師,做裝修。現在一個人從頭到尾的建站毫無壓力()

1、先學什麼比較好?目的是可以自己編寫程序(一個小遊戲、網站、app什麼的)

自學的話,強力推薦http://ASP.NET,文檔齊備,入門簡單,功能強大,C#語言優美流暢。

2、有什麼書籍或者網站可以推薦的?

相教於書籍,更推薦你先觀看視頻。因為編程不是學歷史政治,看看書背一背就行,必須要實際操作的。

無論是書籍還是視頻,別人的推薦用處都不大,別人的鞋子不一定適合你。書籍建議你去圖書館或書店,視頻可以優酷搜索,多比較一下,以自己讀/看得懂為原則挑選。

網站大致能想到的:

w3school 在線教程 :較為系統的html, css, javascript等前端入門知識

CSDN.NET:很老的論壇了,人氣一直不錯,在裡面提(初級)問題的話,回答還是蠻快的。

博客園 - 開發者的網上家園 :專註於.NET,以博客為主,初學者可以逛一逛。

一起幫·「一對一」的遠程互助平台:

自學編程最大的問題,其實是你照著書/視頻做都做不出來的時候。我一直強調要動手,是因為很多同學不動手;很多同學不動手,是因為他沒辦法動手。哪怕最簡單的一句「hello world」都搞不出來……你自己開始上手的時候你就明白了。

所以我推薦http://ASP.NET,它的環境配置幾乎是最最簡單的了,但還是有很多同學上不了手,Visual Studio都裝不起。這時候,對初學者而言,百度搜索論壇發帖幾乎是沒用的。

推薦一起幫,發帖求助,QQ共享你的桌面,讓別人遠程幫你解決問題,是最經濟最有效率的。

3、英文是不是隊伍編程學習很重要?目前4級水平左右,不過工作多年未接觸估計退步了,可以學習。

非常重要。

四級打底已經夠了,這樣以後慢慢就可以去Stack Overflow, The Official Microsoft ASP.NET Site之類的英文網站了。

4、什麼筆記本比較好?最好型號或配置什麼的。

這最微不足道的小問題,主流配置稍高即可。

++++++++++++++++

收錄進:野生程序員 - 收藏夾 - 知乎


我是國貿專業,只是接觸編程語言五個月,做了一個很簡單的網站http://www.yigudict.com 一開始的想法是做一個古文中文學習交流社區玩玩。但是我發現這並沒有什麼用,因為很大程度上是自身的技術以及創造力限制了整個想法落地的進程。所以現在就停留在這裡。

如果單純是想學習編程的話,現在很多網站都能夠滿足你的需求,翻牆之後google每一門語言,基本上出現的第一個網站就能滿足你學習的需求。然後過一遍基本上就可以做出一點東西出來了。三四個月自學做一個博客出來我覺得是綽綽有餘。我目前接觸的最多就是http://w3school.com(因為一開始就是直奔做網站去的)

但如果是想利用編程去創造出一些具有生產力,或者是真正幫助得到人們或者創造價值的工具,很明顯單純學習編程語言和花大量時間編程是幫助不大。誠然現在有很多開源工具基本上東湊西湊就可以把東西湊出來,但是真正切實需要的是整個工具背後的邏輯、設計美學、整體及具體架構和哲學。這些可能真的不能僅僅靠編程一兩年就可以解決的,需要的是一些理論體系去支撐,需要技術和知識和思想沉澱。所以需要的是大量的閱讀專業書本(包括演算法、數據結構、編譯原理,額外還要學習離散數學、線性代數等)這些基本上百度下就有非常多的推薦。

編程很好玩,很有趣。因為可以切實感受每一個部分都是自己親手打造出來,當產品上線的時候會覺得這是最幸福的事情。但如果你想玩得更高端,更溜,那麼你需要學習更加多的知識,需要投入更多的時間。不過,這不是很正常的么?對吧


十年學會編程 這應該就是輪子哥所說的文章的中譯版

不知道你的興趣能持續多久……

補充:Anyway, 感興趣就去學吧,編程能夠開擴你的思維和視野!不少人這樣覺得,如李笑來曾經學過編程,嗯,看篇文章吧,為什麼人人都要學編程

不過當你的興趣支撐不起你的努力換來的成果的時候,那就放棄吧~

答提問者 @誠實的人

你說得對,懶惰可能會影響你的執行力,但如果你的興趣不能抗衡你的懶惰,說明你只是停留在表面的感興趣而已,說不定一旦你去接觸,碰到點困難,沒有成就感,你可能很容易就會放棄,告訴自己「其實自己並沒有那麼喜歡」……

所以為了探索自己內心真正的想法,唯一的辦法就是馬上去嘗試!當然選對方向和不斷獲取成就感,是能夠持續堅持下去的源動力!加油!

//第一次這麼認真地回答問題 :)


翻譯手冊


我覺得可以從Python開始吧,小遊戲,嗯,可以;網站嘛,看看豆瓣就是用Python寫的,App,自然也是沒問題的。不過Python速度有點慢,但也可以接受。

書籍推薦 Python核心編程 入門一下 也可以看看廖雪峰的教程 http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/

2.7和3.4的都有

關於英語,還是有點重要的,如果英語好的話可以直接看英文教程啊什麼的,遇到錯誤不去百度谷歌也很容易理解哪裡錯了。不好也沒關係,慢慢學,我也就是四級水平,剛開始都不認識syntax,看到這種錯誤也得去查查,真是差勁。

電腦的話自然推薦MBP,買個二手的也好,聽說寫代碼最爽,不過我還沒有。只是學編程玩玩的話買個普通的四五千的筆記本也夠了。

我正在學Python,也沒多久,還很渣,普通筆記本,Windows,也是基於興趣的。

之前也接觸過C++,PHP,不過都沒好好學。

後來決定從Python重新開始,好好學習。

我建議可以從你自己的需求出發來學習。

比如我剛開始想寫個爬蟲去把我圖書館的收藏爬下來,並且能夠實時更新,這樣去結束方便,我就先在網上找了一個爬蟲的代碼,然後去改,改的過程中不得不去研究它是怎麼實現的,不然不知道改哪裡,怎麼改。就這樣先寫了一個簡單的爬蟲,然後又了解到其他爬蟲框架,繼續學習,發現發現需要學習的東西越來越多,也越來越有興趣。

後來發現天天複製粘貼撤銷,這太累呀,就知道了git,省事多了。

當然這些都是在有一點基礎的前提下進行的,完全沒有基礎的話先看看教程,了解基本語法,了解一些基礎的東西。

最重要的一點就是去寫,去想,不要光看,光學。

以上是一個新手的回答。


耐心和堅持。

我遇到過的想自學編程開發的沒有十個,也有七八個了。包括在校時的同學,出社會時認識的朋友;有毅力學到能寫出俄羅斯方塊的,一個也沒有。


不能算是回答,因為我也在自學的路上,而且和題主一樣也是出於興趣。我說下我自學的資源,希望對你有幫助。

我英語是過八級的,做過英文報社的記者。所以我從Hello World開始就翻牆學的。coding本身就是基於英文的類似語言的東西,所以我覺得用英語學起來比較方便,看中文反而反應慢,對術語的意思還要想半天。推薦你直接用英語學。

我買了一個VPN,訂閱了YouTube上面零基礎學編程的教程,選擇了一個英語口音我比較好聽懂的教程,然後每天邊看邊學。

然後推薦你訪問http://Codecademy.com,一個免費學編程的網站。我最初的入門就是它,大愛。

再就是http://stackoverflow.com,有很多資源在上面可以查。

還有W3school,一個無比全面的編程學習字典一樣的東東。

其他的話,我也不太懂,也是在摸索中,希望互相學習,加油。


這個問題苦苦困擾我多年,在經歷幾番苦苦掙扎後終於找到了答案,我給它起了個霸氣側漏的名字——2-8原則學習法

我發現大部分技術都遵循「2-8原則」。也就是在一項技術的體系結構中,最為核心、最為重要的知識點大概僅僅占整個知識體系的20%,剩下80%的知識點是相對次要的。那麼,如果我們需要在短時間內快速上手一項新技術,最關鍵的事情就是要找准這20%的核心技術點,先把它們理解透。並且將它們立即運用到實踐中去。畢竟寫代碼是一項熟能生巧的技術,動手實踐才能幫助你加深理解。在掌握了這20%的核心知識點後,這項技術基本可以上手使用。然後在接下來的時間中,如果需要使用到剩餘80%的知識點,再有針對性地學習。這樣經過一段時間後,你的知識體系結構樹漸漸枝繁葉茂。

舉個例子,如何快速上手Spring?

  1. 根據2-8原則學習法,我們首先要做的第一件事情就是找准Spring中20%的核心知識點——IoC和AOP(這需要花一定的時間和精力,磨刀不誤砍柴工)。
  2. 然後根據2-8原則學習法的思想,在找到這20%的核心知識點後,需要將他們理解吃透。(這時候需要充分發揮我們的信息搜索能力,去Spring官網、牛人博客充分理解Spring的這兩大核心思想)。
  3. 在理解IoC和AOP的原理後,你需要立即上手實踐。
  4. 此時,你已經具備了使用Spring的能力。Spring剩餘80%的知識點暫時不必深究。
  5. 在使用Spring的過程中,如果需要用到剩餘80%知識點,再有針對性地補充。

OK,隨著實踐的推進,你的Spring技能樹將逐漸枝繁葉茂。

以上是我個人感悟,如有不同意見,歡迎拍磚!

還不趕緊關注我的公眾號!


1.想做遊戲的話可以學H5或者Android

2.google

3. 重要,像我這種英文水平,看個論文或者文檔真是費勁

4. 一般的電腦就行,千萬別買配置太高的,否則你會誤以為是自己程序寫得棒,而不是電腦CPU跑得快。


首先,你要有個需求!


先學好英語,可以後來居上。


每天實踐至少一小時


我是一名學習軟體的學生,如果有說的不對的,希望大家多多指正,如果你沒確定學編程又想學只是擔心學不會的話,我首先建議你看一下這本書《大道至簡:軟體工程實踐者的思想》,如果只是想做一個簡單的app,網站,軟體的話app無論是安卓還是ios如果只是做一個樣本都還是比較好開發的,windows桌面軟體的話建議學一下c#,靜態網站基礎就是html,css,js,這些都是一些見效快的編程語言,他們集成了大量的控制項可以快速開發,可以說你看一點就可以做點小程序了,這些資料在網上有很多,如果想入門的話建議先從一門簡單的語言培養興趣,然後學習c++語言(只要是高級語言都是相通,學好一門後再學習其他的就快了),以此為跳板學習數據結構,演算法,彙編,操作系統。。,這些可以幫助你理解軟體,在學這些基礎課的時候注意他們的設計思路,學習過程中注意培養面向對象的編程思想


首先,知乎關注輪子哥,也就是@vczh然後你就會忘記學編程的事,記得多吃幾個雞蛋


我的情況跟樓主差不多不,過我卻想把編程作為一個職業來發展,我也二十七歲,不知道現在開始努力,算不算晚?


建議從HTML開始學起,然後CSS,再接觸一點C語言。

想要寫網站的話,PHP是世界上最好的語言(笑),自學沒問題的,再加上JS 。

小遊戲和程序什麼的可以學JAVA,

其實我建議學.net比較好,比較系統,一個VS解決一切,


先找到一個足以讓你堅持6個月的興趣,才會持續的去努力實現它。

p.s 不要低估你的能力,也不要高估你的毅力


說下我學Delphi的經歷吧,買了兩本書,書名不記得了,一本很薄,基本就是入門的,一本很厚,算進階的吧,全是實例。

先把入門的一章一節地看,並手輸代碼,如果有其他想法,暫時沒能力寫的在後面注釋出來,有能力寫的,重新按自己想法寫一份。花了大約2-3周時間。

接下來的大半年業餘時間,基本上都是在啃那本實例。

但是做法又不一樣了,因為那本實例會在前面寫出實現方法,然後再給出代碼,我的做法是,先看完實現方法,然後根據這個,自己在盡量不找別人的東西的情況下,寫一份代碼,然後與書中的代碼對比,不符,或者差距明顯的,手動輸入代碼一遍,並把兩份代碼放一個文件夾,做好索引,然後在學習筆記中寫清楚感受與得失。

個人不推薦看電子教程學,特別是寫實例代碼的時候,與看書然後敲進電腦比,看電子版,個人感覺,會少一個記憶過程,特別是在我特意不讓書與顯示器同時處於視線內的情況下

不過這樣我並不敢說我學會了,我覺得我也只是才入門而已。

後來繼續學習Delphi不說,又自殺一次(重新開始自學高數),學資料庫,學演算法,各種不停

學無止境啊。

從開始學編程直到我得了神經性頭疼,一旦長時間用腦,就疼給我看,只得放棄編程為止,我幾乎沒有中斷過學習


推薦閱讀:

視頻網站的彈幕是如何保存的?
象棋和國際象棋的電腦程序是如何設計的?
為什麼在目前開發工資這麼高的情況下還是在知乎上看到很多程序員想轉行?
單片機編程最早是彙編,然後從彙編轉為c語言,那麼,c++會不會替代c語言來進行單片機編程 ?
計算器為什麼能實現保留根式、分數或含π的結果的功能?

TAG:編程 | 計算機 | 程序 |