編程的學習路線
Ⅰ 如何學習編程
最近有幾個朋友私信問我如何學編程。我上知乎基本就是隨便寫點代碼來著,這種誤人子弟的問題我真的不敢亂說。也罷,找個問題隨便談談吧,聊勝於無。千萬不要當真。
我覺得SICP作為第一本編程書非常合適。SICP可以讓我們從零開始建立起整個對於程序語言和程序語言如何被解釋的粗淺認識。

知道什麼是數據,數據結構如何用一個小小的cons組織起來,什麼是過程,過程可以接受過程做參數並且返回過程,還有和解釋器息息相關的囿變數、自由變數、環境,等等這些重要的概念。
然後我們需要接觸機器相關的知識了。我建議學匯編。8086匯編就行了(硬核的話,或許可以學PDP-6匯編)。注意一開始從最基礎的move,add,lea開始。
然後引入棧的push和pop指令,有了棧就可以很方便的復用過程了。棧一定要好好理解,這是過程在機器裡面如何抽象的關鍵。然後引入call和ret兩個語法糖。學會匯編寫二叉樹就夠了。
因為用匯編寫二叉樹,一大堆dword,lea,肯定迷糊死了。這個時候可以上c語言了。看TCPL就行,簡單了解C語法就夠了。
C語言有指針和int等基礎類型,用C寫一遍二叉樹,明顯能體會到類型的好處。另外,C是匯編語言的又一層抽象,這里可以結合SICP里的數據抽象和過程抽象好好理解,C到底是怎麼抽象匯編的。
寫過一些C之後,了解類型的好處了。這個時候可以看TAPL。結合SICP就知道scheme基本上就是λNB的少糖形式。TAPL也是SICP這種從零開始逐漸復雜的結構,非常適合萌新看。完全弄懂λ cube和subtype就夠了。TAPL裡面還有很多細節,萌新看的時候可以忽略。
到這,編程基本上就入門了。對機器底層感興趣的去學體系結構;對數據結構和演算法感興趣的去打ACM;對PLT感興趣的繼續看ATTAPL,SF;對錢感興趣的忍著自己對C++語法的惡心去學C++;對John McCarthy感興趣的去學ML,等等。安排的明明白白。
Ⅱ 如何自學編程求指點。
要熟悉編程範式,尤其是面向過程及面向對象這兩種;要廣泛閱讀,多用編譯器及IDE(網上有許多免費的)練習編程。
選擇一種編程語言。初學者一定要從主流語言開始學習,比如中級語言C和C++。這兩種語言是任何一名合格、專業的程序員都必須掌握的,因為它們稱得上是軟體開發界的主流。
但是最好不要從高級語言開始學,如java,因為這些語言對於初學者來說難度未免太高(高級語言可以以後再學,但是C語言和C++應該作為你的基礎)。
然而對於完完全全的門外漢的來說,可能C和C++都有點困難,那麼你也可以從python開始學,這種語言被大家廣泛認為是適合初學者的。
Ⅲ 學習Java軟體開發的學習路線
自21世紀進入信息時代以來,信息技術給人類的生產和生活方式帶來了深刻的變化。信息產業已成為推動國民經濟發展的主導產業之一。Java作為一種含金量高的IT技術,很多人想從事這個行業,那麼應該如何學習Java呢?下面雲南昆明java軟體開發為大家介紹學習Java開發的學習路線。
1、基礎知識
在學習Java之前先學習計算機的基礎知識,然後學習常用命令、Java概述、JDK環境安裝配置、環境變數配置、配置JDK和環境變數等知識,隨後昆明計算機學校建議就可以著手准備編寫Java程序。
2、編程格式
此時需要了解編程的具體過程,在開發過程中要進行文字「注釋」,還要掌握使用「關鍵字」的注意事項。並且昆明北大青鳥認為需要對「標識符、常量和變數、數據類型、運算符、過程式控制制語句、數組、方法」等相關知識進行理解和熟練使用。
3、面向對象
生活中隨處可見的都是對象。對象分為靜態對象和動態對象。如果您真的想理解Java面向對象,您需要首先理解「面向對象思想,類和對象,成員變數和局部變數,匿名對象,封裝,此關鍵字,結構方法,繼承,多態性,抽象類,介面和內部類」等相關知識。雲南計算機學習認為只有掌握這些對象才可以在開發過程中熟練使用。
Ⅳ 我想學編程,應該從什麼地方開始
從認識什麼是編程開始
要學習編程,首先要了解什麼是編程。
理解了編程是什麼之後開始培養編程興趣,並選擇一門語言,這里比較推薦的是Java。
如果是自學拿來玩,單純培養興趣,陶冶情操的,還是推薦python。
然後便是要學習入門的編程知識,從零開始學習了。
我這里有一些Java和python學習的推薦,
學Java看這里:
先上一份計算機科學速成課,也不多,周末看看就看完了。不是很復雜的視頻,挺生動有趣的。看到啥程度呢?個人認為只要看到不太懂的地方暫停一下思考思考就可以了。
為啥看這個呢,看題主的問題描述,推測你還沒開始學習很多內容,那麼先來了解了解計算機科學大概是個什麼樣子的,對計算機科學有一個整體認識。沒准還能幫助找到你的興趣所在。畢竟計算機科學還是挺大范圍的。
編程學習隨時可以開始,其實沒有多少前期要求,可能無非就是耐心比較重要吧(比如不要一上來就被配置編程環境打趴下就不學了,實在不行先在線編程工具上手也行),你可能會碰到各種各樣的問題,有些坑甚至網上也找不到現成的答案(不過還是強調一下,初學者大部分問題還是能搜索到的,搜索能力對於計算機學習很重要!多鍛煉鍛煉,搜不到大多情況下是你關鍵詞沒用好,搜索技巧不行)。
關於求助別人,可以看下經典文章《提問的智慧》,用不了多久的。其實就是搞明白如果碰到問題怎麼請教別人,如何讓別人會更願意幫助你解答,以及更有效的幫助到你。
以高中生的知識水平和學習能力而言,是完全可以從主流編程語言選一門開始入坑的。可選的主要就是C,C++,Java,Python
我不認為太偏門的,或者適用面比較狹窄的語言作為編程小白的第一門語言。各種編程語言都有自己適用場景,雖然大家喜歡開玩笑PHP是最好的語言,但主流編程語言沒有啥高下之分,只是長處和短處各不相同而已。
當然,有充分理由,比如確定就是要學做網頁,那從JavaScript開始學習編程也是可以的。退一步說,第一門編程語言只要是主流編程語言都可以(啥叫主流編程語言,比如TIOBE排行榜上哪些,排名靠前的肯定是用的人多的)。
但是為什麼建議從這四種裡面選呢?
區別在於,C,C++這種語言,尤其是C(國內大學計算機類專業里,C基本是必學語言)是更接近底層和機器的語言,整個的思路很符合計算機的工作原理,從這倆入手,對理解計算機原理更有幫助。學習的過程中可能你會接觸到更多計算機原理的知識比如操作系統的內存管理,匯編層面的調用約定等,有利於更好地理解計算機工作原理。另外其實有C/C++基礎,學別的編程語言慢不到哪裡去的,甚至像Python這樣的可以一天學會基本語法。C++相對於C多出來的東西中,一個很重要的東西就是面向對象,C++, Java, Python都是支持面向對象編程的語言,面向對象是學編程遲早要了解和有必要掌握的一種編程方式。
這幾門編程語言到底選哪一個其實都無所謂,你想要全部試一遍也行(反正是嘗試嘛),甚至你想同時學習幾門語言也是完全可以的。不過先熟練一門語言,有需求了再學別的編程語言,可以和學過的語言對比學習,會發現自己學起來還是挺快的,畢竟已經學習了一些編程的思想。
比如我之前學C++,後來一直用Python比較多,有時要寫起來C++,寫個for循環順手就敲了個for i in range(100)出來(C++裡面是這樣寫的for (int i = 0; i < 100; i++)),但其實完全不必擔心同時學幾門語言會有啥副作用。 另外你真正開始學習編程之後其實慢慢的就會了解自己要學些什麼內容了。
據我了解(自己踩坑過2333)有一些那種編程啟蒙游戲,還是不要拿來學習編程了。高中生的智力程度(咳咳)正正經經上手編程就好,不用前期准備:)
還有一個小提示就是:Python真香,可以盡早開始學習,Python用起來相當方便順手,其包管理器pip也很方便使用,第三方庫十分豐富,想要實現什麼功能,用pip安裝對應的模塊很快就能開始coding,而不是花半天時間找第三方庫,安裝庫...... 無論是作為計算器用,還是寫點腳本幫你免去某些重復勞動,又或是想要驗證一些別的語言代碼的思路但又想偷懶(以上都是我經常乾的hahaha),Python都是極佳的選擇(正道の光)!
學習編程的過程中,初學者和已經入門的人的視野是不一樣的,先學起來,你才能看到更多的東西,了解計算機的各個方向。比如計算機圖形學,機器學習,軟體工程,當然也有硬體的,機器人呀,單片機呀,另外如果想當白帽子黑客,來學信息安全也是很不錯嘛。計算機的東西很多是觸類旁通的,你盡管學,慢慢的整個計算機科學的知識大樓就在你腦子裡面搭起來了。
Ⅳ 怎樣學編程課程
編程學習方法與途徑如下:
學習編程常見的途徑,其實可以概括為兩種:自學、培訓。

很多人問,學編程要電腦嗎?那不廢話嗎,用手肯定是做不出軟體的。
所以學習編程前,需要准備一個不錯的電腦,MacWindows 均可。最後,很多人問編程能速成嗎?說速成的都是騙子,編程沒有速成的秘訣。
給大家的忠實建議如下,明白了這幾點,學編程和切菜沒什麼區別。
編程是一門做中學的學科,所以動手很重要(狂敲代碼)
好記性不如爛筆頭,所以筆記很重要(加深記憶,快速回顧)
時間在哪,成就在哪,所以堅持很重要(保持亢奮,學會嘚瑟)
開發經驗就是解決問題的能力,所以查閱資料很重要(谷歌度娘)
圈子很重要,氛圍很重要
Ⅵ 如何零基礎自學編程
怎樣自學編程入門?要掌握以下基礎知識。
1、軟體環境的安裝,
2、輸入、輸出語句的使用3、各種表達式的使用4、變數的理解和使用5、選擇、循環結構的使用6、文件操作。
編程,就是利用特定的語言控制計算機,或者說和計算機進行交流。作為初學者掌握以上基礎知識就算入門了。
Ⅶ C語言學習路線
一,UNIX下C語言的學習路線。
工具篇
「公欲善其事,必先利其器」。編程是一門實踐性很強的工作,在以後的學習或工作中,將常常會與以下工具打交道, 下面列出學習C語言編程常常用到的軟體和工具。
(一)操作系統
在UNIX或linux系統中學習C很方便,所以在開始的學習旅程前請先選擇一個UNIX或Linux操作系統。
目前可供個人免費使用的UNIX或Linux系統有FreeBSD、RedHat Linux、SUSE Linux等,而且在安裝包中還提供很多實用的工具,如:gcc, make等。
如果您一直使用Windows,身邊又沒有多餘的機器安裝UNIX,則可以使用VMware,通過VMware安裝虛擬系統。
(二)編譯工具
目前絕大多數Unix或Lnux系統都提供CC或GCC編譯器,最簡單的cc命令格式如下:
cc -o hello hello.c
在unix shell環境中敲入上面的代碼會將hello.c程序編譯成可執行文件hello。
make 工具如 GNU make、System V make 和 Berkeley make 是用來組織應用程序編譯過程的基本工具,但是每個 make 工具之間又有所不同。
大部分UNIX和Linux程序都是通過運行make來編譯的。make工具會讀取一個包含指令的文件(這個文件的名字通常都是 makefile 或 Makefile,不過後文中統一稱之為 「makefile」),並執行各種操作來編譯程序。
(三)調試工具
最簡單的調試工具:為程序添加列印語句
在對程序的運行機制有了一定的了解後,可以實用一些工具幫助進行調試,當然得學習一下這些工具得使用,如:dbx,gdb等。
還有一些內存工具可以幫查找內存泄漏或緩沖區溢出等一些問題,如:memwatch,yamd等
(四) 其他工具
1. vi或vim
Unix下文本編輯器。主要靠一堆命令來編輯文本文件,學Unix編程最好熟悉並熟練使用vi編輯器。
當然在實際工作中,可能需要一個集成編碼環境或一個功能強大的圖形化編輯工具。
2.netterm
最著名的網路終端軟體之一,可以使用它方便的連接到主機系統中。
3.Secure shell
一個支持ssh協議得客戶端工具,多數情況下用來連接linux系統。
書籍篇
「書是人類進步得階梯」。學習一門新的知識,當然要選擇幾本適合自己得書籍,下面介紹一些我自己學習C語言使用過的書籍:
1.《C primer plus》
推薦理由:適合作為入門書和基本函數查詢得參考資料。本書最新版為第五版,以ANSI C99為標准詳細介紹了C語言。
2.《The C programming_Language》
推薦理由:C語言之父得作品權威性毋庸置疑。雖然書籍出版時間比較老,好像也沒更新,不過仍不失為經典書籍,網上有這本書得英文電子版提供下載。
3.《C 專家編程》
推薦理由:本書可以幫助有一定經驗的C程序員成為C編程方面的專家,最關鍵的是本書寓教於樂,充分享受編程的樂趣。
4.《C缺陷與陷阱》
推薦理由:書中所揭示的知識能幫助繞過C語言自身得陷阱和缺陷,減少代碼中許多常見的Bug。
5.《unix環境高級編程》
推薦理由:既然是UNIX環境下C編程,就不得不說說UNIX編程書籍。Stevens先生的《unix環境高級編程》是竭力推薦的,也是案頭必備(如果對網路編程有興趣的,可以學習一下Stevens先生的《UNIX網路編程》兩卷,如果覺得還不過癮,可以再看看《TCP/IP詳解》三卷)。
6.《計算機編程藝術》
推薦理由:演算法大師得嘔心瀝血之作。計劃出版五卷書,目前好像已出版3卷。對演算法有興趣得可以研究一下。
過程篇
1.學習C語法
語法的學習對於一個具有編程底子的來說,就很輕鬆了;即使以前沒有學習過其他編程語言,我相信有2個星期,也能輕松搞定。
需要注意的是,不要太糾纏於語言的細節,比如:運算符優先順序與結合性的問題等。
2.學習C標准庫
ANSI C庫把函數分為不同的組,每個組都具有與之相關的頭文件。C語言標准庫相對於其他語言,比如C++,Java來說是非常短小精悍的,但首先應著重對以下庫進行學習:
ctype.h:字元處理
math.h:數學庫
stdio.h:標准I/O庫
stdlib.h:通用工具庫
string.h:字元串處理
time.h:時間和日期
如果想了解完成的ANSI C庫,可以購買相關的書籍,這些書籍一般會詳細介紹每個函數的用戶和一些注意點;
3.攻克C的難點
C語言聲明:
C語言的聲明確實覺得恐怖,比較晦澀難懂,而且聲明的形式和使用的形式還類似。比如如下的聲明恐怕就連很多熟悉C多年的程序員也不是一眼就能看出來的:
char * const * (*next)();
那麼有沒有一種好的記憶方法或規則來搞清楚呢,好像沒有,如果有的話也不是這樣折磨人了。不過可以看看《C專家編程》第三章的內容,或許會有所收獲。
也只能多學多練了,所謂熟能生巧嘛,希望這個問題不要在你的心靈上留下陰影。
數組與指針:
數組與指針的關系,在標准中並沒有作很詳細的規定,而且好多C入門的書籍在這個問題上並沒有給出很詳細的說明,所以會給人造成很多誤解。
對於這個問題,可以參考《C缺陷與陷阱》4.5節和《C專家編程》第4,9,10章,相信這裡面的內容搞透徹,以後就不會再被這個問題搞迷惑。
指針與內存:
如果以後編寫規模較大的程序,可能發現這個問題可能會是最大的煩惱,而且可能會是消耗最多調試時間的事項。
C版本的問題:
得特別小心該問題,最好不要的程序中混合使用不同版本C的特性,否則會帶來很迷惑的問題。如果一定要用,最好清楚自己在做什麼。
4. UNIX環境編程
學習了以上內容之後,就可以進行unix環境編程了。不過可能需要對操作系統理論有一點點的了解,這樣學起來會比較輕松一些。
Unix環境編程,應該著重IO和進程兩大塊內容。《Unix環境高級編程》中對Unix環境編程有著非常詳細且深入的論述,而且書中有大量實用性例子程序,不過可能得花上幾個月得時間,好好啃一啃了。
在扎實掌握以上內容,不代表得C語言學習支路已經完成,相反,才剛剛開始。以後需要用學到得知識去解決大量不同實際問題,在不斷得實踐過程中,會近一步加深對C的理解。有了以上基礎之後,會發現,在實踐過程中需要的其他知識,會非常快速的掌握。
二,Windows程序員的學習路線
1.當然要熟悉下C語言了 入門可以選用潭浩強的 《C程序設計》(當然最好能讀C Programming Language)特別要對其中的指針,結構體等東西一定要搞清楚了(要學好的很好至少要花費一個月時間) 為什麼要從C開始呢:<1> C好學 <2> 大多數的操作系統核心部分是用C開發的 <3> C的效率高且語言成熟
2.在1的基礎之上一定要認真學習一下數據結構 對C++程序員來說良好的數據結構可以讓一個程序員很輕松的完成程序設計 糟糕的數據結構可以把一個程序員累死 推薦書籍:嚴蔚敏的《數據結構(C語言版)》或北京大學的一本中C++版的數據結構 書中說到的每個主體在程序設計中都會用到 認真學好會對的以後的C++程序設計有太多的好處 (3個月時間)
3.學好了2之後可以學習下《C++ PROGRAM DESIGN》這本書初步介紹了C++和如何使用C++寫出Windows下的程序(要學好至少要花費3個月時間)
4.在3的基礎之上可以讀一本叫《Windows 95 程序設計》(它的最新版本是Programming Windows)這是一相Windows程序設計的領域的不朽之作(3個月時間) 通過2和3的學習已經成為了一個可以設計Windows程序的程序員了 要想更好的設計Windows程序設計 一定要藉助框架結構不可 為什麼:框架結構可以加快我們程序設計的速度 雖然使用框架使得我們的程序的效率低了那麼一點 但隨著當今計算機的運算能力的提升,不會感覺到這一點點的性能損失的反而會因為你使用的框架結構而使你的程序設計加快了速度 使用框架結構才算一個真正的VC++程序員
5.在4的基礎之上可以看一些簡單的MFC程序設計的書比如《Visual C++入門教程》之類的圖書 這可以使你能寫出一些帶有通用控制項的MFC程序 (1個月時間)
6.在5的基礎之上已經可以很快開發一個軟體了 但不了解MFC框架運行機制是很不好的 了解MFC的運行機制可以使以後的MFC程序設計工作做的更好 推薦書籍侯傑的《深入淺出MFC》 但這本書真的不適合初學者當你有了一定的開發經驗以後這本書對來說確實很好 若很熟悉Windows下的SDK程序設計並打算或已經開始使用MFC進行軟體開發 那這本書對來說再好不過了 (2個月時間)
7.在6的基礎之上可以看下這本書《VC++技術內幕》由潘愛民譯的 推薦看原著(3個月)
8.在以上基礎之上為了更好的使用VC++這個工具 推薦看一下《VC++6.0寶典》(3個月) 從開發工具的角度講這本書寫的很好
9.為了更好的工作可以參考一下VC++程序設計百例
10.之後可以看一下《Windows核心編程》 這本書很好的講解了Windows的編程 對你寫系統程序很有好處的 推薦看原版
11.只了解其形不算真正的了解 之後還要認真的讀一下Windows的內核源碼 相信WRK 很容易找到的 可以配合《深入解析Windows操作系統》《Windows內核原理與實現》和《Windows內核情景分析》
12.其它一些東東《COM原理》(潘愛民) OpenGL D3D VC的資料庫編程 圖形圖像 音視頻處理和網路都要有所了解和會使用
13.要做到一個好的程序員一定要對驅動程序有所了解所以寫一個文件驅動之類的東東是很有必要的
14.經過以上各步的學習完全成為一個優秀的Windows程序員了(前提是每一步要學好)
15.漏了一些重要的東東 編譯原理 匯編及 組成原理 和設計模式等也是很重要的東東 只有學好了這些才能明白語言為什麼要這樣組織才能高效。
Ⅷ 新手如何學習編程
熟悉以下關鍵東西,可以邊學邊做,定期訓練,經常思考,長期積累:
1、語法。
2、基礎理論(數學、數據結構、演算法等)。
3、設計方法(編程原則、設計模式、框架設計等)。
4、庫(核心、基礎、UI、擴展、游戲引擎等)。
5、計算機相關(操作系統、網路、圖形學等)。
6、領域知識(游戲設計、網站設計等)。
7、開發工具(編輯器、IDE、自動部署等)。
8、項目管理(進度管理、分工協作、Bug管理、版本控制等)。
最普遍也是最重要的能力:創造力。努力分析並理解好做什麼以及怎麼做。要知道上面那些東西一開始都是不存在的。

具體方法包括:
1、快速閱讀入門教程和書籍,適合學習語言和基礎庫。比如我學Java讀的《Java編程思想》,練習題做過一點,然後學ActionScript就沒讀過書,只讀過Adobe官方文檔《ActionScript 3.0編程》。
2、閱讀庫的文檔、實例、源碼。比如Flash、Flex開發,熟悉官方API很重要,很多細節要具體使用時才注意到,這時候最好做個筆記,雖然我從沒看過我的筆記。
3、做一個自己感興趣或熟悉的小項目,比如我就以黑白棋游戲作為多個語言的試水項目,一樣的邏輯,便於把關注點放在語言特點上。
4、自己動手豐衣足食。廚師有菜譜,程序員可沒菜譜。比如我做游戲,最關鍵的游戲編程知識全部是動手學出來的,很少有專門針對某個業務領域(如游戲)的編程書籍,要麼是入門書,要麼是模式書(如演算法)、理論書(圖形學),很少有書籍教你如何開發一個45度角地圖系統加編輯器的,全靠自己思考,以及看前人的代碼,需要時找些網路資料。關鍵是,可以培養最重要的創造力。
對於演算法和設計模式,可以研讀下,但是關鍵還是靠平時如何使用了。新手勉強不來的。
項目管理方面的,就得靠工作經驗了,多思考多提意見不要只走流程。
Ⅸ 如何學習編程
先了解一些基本知識
c語言的背景

另一種是以basic為主導的程序語言,如FoxPro、VBScript等,它也有類似的函數調用、程序語句編寫和循環控制,但不同於C語言家族。所以如果是從QBASIC開始的,在學習C語言之前最好先洗腦。不要在C語言上使用基本的學習方法和思想。
(9)編程的學習路線擴展閱讀:
首先明確學習目標,看你要學到什麼程度,以及用來干什麼。
如果你是要學到足以找一份高薪的工作那最好就是考研。
如果是急著找份初級程序員的工作可以了解一下各種編程語言適合做啥然後根據自己的興趣報個培訓班,不過很貴而且還會被鄙視。
如果是覺得編程很好玩兒想簡單了解一下,可以買一本計算機導論的書,學一門入門語言,C語言 java python 等等都行。不想看書網上視頻教程也很多,慕課網之類的。
如果不是為了工作但是有明確的目標,比如我要學黑客,我要學做游戲,我要學做網站之類的,可以自行網路XX學習路線之類的。然後再輔以計算機專業基礎課,比如計算機原理、數據結構演算法什麼的,同樣可以自行網路,很容易找到。
