下面這個(gè)可以參考一下,具體還要看個(gè)人的情況。
我覺(jué)得應該根據你的工作需要或者說(shuō)你的發(fā)展方向而定。基本上兩大類(lèi)吧:C/C++和Java。比如,如果你要做企業(yè)級應用的你應該學(xué)習Java和C#;如果你想做嵌入式,那么應該學(xué)好C語(yǔ)言;其他情況下,在你不知道要做什么之前你可以選擇學(xué)習C/C++。學(xué)會(huì )這兩大類(lèi)中的一類(lèi),對于你學(xué)習其他語(yǔ)言都將是比較輕松,包括腳本語(yǔ)言,動(dòng)態(tài)語(yǔ)言??呵呵,這里想就自己的學(xué)習經(jīng)歷和情況給大家一個(gè)建議,僅供參考。
1、我的入門(mén)是從學(xué)習C語(yǔ)言開(kāi)始的(其實(shí)課程是C++),這是我們學(xué)校的公共課,我上課比較認真(雖然老師講得很差,而且一段時(shí)間后,我就發(fā)現自己的基礎掌握比她好,當然理解深度沒(méi)她好),因此,我認為對于完全沒(méi)有基礎的人而言,聽(tīng)別人講比較容易入門(mén)。當時(shí)的教材是學(xué)校自己編的,挺爛的。
建議一(以C/C++為例),對于剛想進(jìn)入編程的人(就是從來(lái)都沒(méi)有接觸過(guò)編程的人),最好是聽(tīng)課的方式(自己看的話(huà)估計要很慢,而且很痛苦),可以找視頻或者培訓等。C語(yǔ)言推薦入門(mén)教材:譚浩強的C語(yǔ)言,最新版是第三版,不過(guò)第二版應該也可以了(藍色的)。說(shuō)明一下:堅決不同意直接看K&R的《The C programming language》,這本書(shū)絕對不是初學(xué)者可以看懂的,里面講語(yǔ)法的并不多,語(yǔ)法都是合在程序里面講。不過(guò)這本書(shū)非常好,入門(mén)以后一定要看的一本書(shū)。
當然可以從C++直接入門(mén),C++之父強烈推薦從C++直接入手。C++推薦入門(mén)教材:錢(qián)能的C++(紅色的,清華大學(xué)出版),這本書(shū)第一版不是ISO C++,不過(guò)比較經(jīng)典,作者現在也出了第二版了,第二版好像不是太好。國外的最好的入門(mén)教材據說(shuō)是:《Acclerated C++》作者是Koenig和Moo夫婦,非常厲害。他們的著(zhù)作還有《c陷阱與缺陷》《c++沉思錄》。《Acclerated C++》這本入門(mén)的書(shū)我沒(méi)有看過(guò),我覺(jué)得還是先找本國內的書(shū)好好看,看的差不多了,國外的經(jīng)典書(shū)籍隨便看就會(huì )覺(jué)得很有味道,否則你可能會(huì )很受打擊。入門(mén)的書(shū)至少要看兩三遍(要徹底理解哦 ):)。如果是C++,我建議后面類(lèi)的部分至少要理解三到五遍。說(shuō)明一下,c++模板的部分可以先不用看,如果有興趣的話(huà),等把c++學(xué)的差不多了,我覺(jué)得可以把模板、STL、泛型編程結合起來(lái)學(xué)習,這個(gè)又是一個(gè)很大的工作量了,又得下很大的功夫。所以說(shuō),C++博大精深啊。
建議二、學(xué)習過(guò)程中要結合簡(jiǎn)單的算法,像冒泡還有類(lèi)似c語(yǔ)言程序百例這樣的小例子做做;更進(jìn)一步應該做點(diǎn)大一點(diǎn)的項目,最好是控制臺程序。或者你已經(jīng)著(zhù)手學(xué)習win32、MFC或linux,你也可以結合平臺做點(diǎn)小的項目。
2、第一階段是最苦的,接下來(lái)相對就知道應該怎么去學(xué)習了。這時(shí)候假設你已經(jīng)有了扎實(shí)的c++基礎。這是你可以選擇也應該選擇發(fā)展方向了,做企業(yè)級應用,還是系統開(kāi)發(fā),嵌入式設計或者游戲開(kāi)發(fā)?? 那時(shí)我其實(shí)并沒(méi)有考慮那么多,因為我不是學(xué)計算機的,因此我就把參加一些計算機之類(lèi)的考試當作學(xué)習目標。我當時(shí)其實(shí)C++語(yǔ)言基礎已經(jīng)很不錯了,但是上機實(shí)踐很少(那時(shí)我沒(méi)有電腦),因此參加省計算機二級,全國計算機三級和全國計算機四級考試,結果上機都沒(méi)有通過(guò)。我很郁悶,二級的時(shí)候是我不知道怎么樣進(jìn)那個(gè)DOS界面把題目調出來(lái),三級的時(shí)候是很快就編好了,也通過(guò)運行了,可是成績(jì)出來(lái)卻不及格,四級的時(shí)候是編好了,可能是我那題目比較難,好像用了兩次循環(huán),結果那破機器竟然承受不了。后來(lái)一亂就毀了(當然主要是上機太少了)。不過(guò)我那些上機都沒(méi)有去補考。二級和三級的時(shí)候是自恃水平已經(jīng)遠遠超過(guò)考試要求了,四級的時(shí)候則因為自己已經(jīng)通過(guò)高級程序員考試,覺(jué)得補考上機好像沒(méi)必要。(我高程和四級都是在2003年考的)。
建議三:定位學(xué)習方向,并好好學(xué)習計算機基礎知識。在你還不確定學(xué)習方向,或者你還在大學(xué)本科期間,那么我認為應該先把計算機的基礎知識好好學(xué)習一下。我認為計算機必學(xué)的基礎課程而且要精學(xué)——首先是數據結構,其次是操作系統、軟件工程,數據庫。這四門(mén)課不管你將來(lái)想從事哪個(gè)方向的基本上都會(huì )用到。當然,有時(shí)間的話(huà),其他基礎課都是應該掌握的,離散數學(xué)、組成原理、體系結構、網(wǎng)絡(luò )、編譯原理甚至跨學(xué)科的。方向是很重要的,因為知識其實(shí)是無(wú)限的,一個(gè)小小的領(lǐng)域就夠你研究很久了。本科生可能還沒(méi)有什么方向的感覺(jué),但是到了研究生你一定要清楚自己到底想要做什么,要往哪個(gè)方面發(fā)展,不要盲目學(xué),瞎學(xué)亂學(xué),否則最后可能看似什么都會(huì ),其實(shí)什么都不會(huì )。
編程入門(mén)的話(huà)你選C語(yǔ)言的話(huà)我可以給你點(diǎn)建議。
C語(yǔ)言的入門(mén)書(shū)籍可以選譚浩強的《C程序設計》,很多C語(yǔ)言程序員都是通過(guò)譚浩強老師的教程入門(mén)的。這本書(shū)學(xué)完了可以看下嚴蔚敏的《數據結構》。
另外,學(xué)習編程需要多練習。學(xué)編程急不得,上來(lái)就學(xué)VC肯定碰一頭灰,說(shuō)VC難就難在這點(diǎn)上了。
如果硬上,意志堅強的話(huà)也許能挺過(guò)來(lái),但也是會(huì )缺乏后勁,不得不回過(guò)頭來(lái)補習基礎知識。意志不堅強的話(huà),很有可能就此放棄了,并留下一個(gè)VC難得不得了的印象。
其實(shí),只要踏踏實(shí)實(shí)一步一步來(lái),VC也就是很簡(jiǎn)單點(diǎn)事。在這里我說(shuō)一下,如果你還只是一個(gè)初中生,那么你就應當仔細考慮一下了。
首先,限于你的知識和思維能力,學(xué)學(xué)C語(yǔ)言還應該沒(méi)問(wèn)題,但要學(xué)VC是要下相當大的功夫的。而且,你現在學(xué)到的東西將來(lái)一定會(huì )過(guò)時(shí),所以不如把精力放在算法的研究上,畢竟這些東西永遠都不會(huì )過(guò)時(shí)。
可以買(mǎi)本教材自學(xué)、也可以跟著(zhù)教學(xué)網(wǎng)站的教學(xué)課程學(xué)習。
補充:編程怎么入門(mén)及需要什么技能。
1. 需要有一定的數學(xué)基礎。編程語(yǔ)言首先就是各個(gè)算法的羅列。代碼中最重要的往往是對各種數據的處理、存儲和應用。這里面普遍都會(huì )用到數學(xué)思維。
2. 選擇自己的方向。編程方向有很多種,比如當前流行的移動(dòng)客戶(hù)端編程(包括安卓編程和ios編程)、JAVA編程、vs.net編程、和硬件打交道的C語(yǔ)言編程、游戲開(kāi)發(fā)等等。
3. 入門(mén)書(shū)很重要。入門(mén)往往是從一本由淺入深的教材開(kāi)始的,現在有很多從入門(mén)到精通的教科書(shū),你可以選擇其中一本,認真研讀。
4. 基本變量的使用。代碼中的基礎是各種各樣的變量,這些變量是每一句代碼都會(huì )用到的,所以一定要牢記變量的定義和用法,至少要了解最常用的一些變量。
1、《深入理解計算機系統》從c語(yǔ)言到匯編語(yǔ)言到硬件再到操作系統,寫(xiě)得非常好。
是一本能幫助深入理解計算機系統的書(shū)。基本上把這本書(shū)吃透面試操作系統的大部分問(wèn)題都不是問(wèn)題。
2、《算法導論(第三版)》被很多acmer coder奉為學(xué)算法的經(jīng)典之作,但不太適合初學(xué)者,因為它這本書(shū)很多內容只提供了偽代碼,而沒(méi)有具體實(shí)現。但可以從這本書(shū)學(xué)數據結構和算法好,因為日后的編程語(yǔ)言對實(shí)現而言實(shí)際上并沒(méi)有特別大的障礙,只是適合與不適合的選擇罷了,而把想法轉換成編程語(yǔ)言才是對算法知識的考驗。
如果不想太過(guò)深入的話(huà)可以忽略掉第四部分(高級設計和分析技術(shù))第五部分(高級數據結構)和第七部分(算法問(wèn)題選編),你會(huì )發(fā)現書(shū)其實(shí)比你想象中薄很多噢!3、《計算機網(wǎng)絡(luò ):自頂向下方法》軟件學(xué)院的計算機網(wǎng)絡(luò )教材,非常適合初學(xué)者,里面將計算機網(wǎng)絡(luò )從頂層到底層逐章分析了一遍,如果能夠結合一些實(shí)驗來(lái)輔助理解會(huì )更好,因為里面的講解比較抽象。4、《STL源碼剖析》如果你是經(jīng)常用c++刷算法題的同學(xué),那么一定經(jīng)常用STL的各種集合, vector, set, stack, queue等等。
它們的實(shí)現原理,在源碼面前,完全沒(méi)有秘密。5、《圖解HTTP》日本人著(zhù)的介紹HTTP協(xié)議的書(shū),對理解HTTP協(xié)議的一些細節有非常大的幫助,插畫(huà)也很多,感覺(jué)就像看漫畫(huà)一樣,很容易理解的。
6、《TCP/IP詳解卷一》這本書(shū)能把枯燥的知識講得很細致,強烈推薦這本,看完相應章節后大概能夠明白為什么TCP/IP要這么設計了。面試的時(shí)候經(jīng)常問(wèn)到三次握手和四次揮手,還有各種狀態(tài)的轉移, TIME_WAIT的時(shí)間為什么是2*MSL······7、《UNIX網(wǎng)絡(luò )編程卷一:套接字聯(lián)網(wǎng)API(第三版)》中文版快800頁(yè),不過(guò)我只看了一些章節,這本書(shū)也是把TCP/IP的細節講得很深很深,此外還有非常重要的基本套接字編程,就是寫(xiě)網(wǎng)絡(luò )程序的時(shí)候那些bind, accept, listen, send, receive函數之類(lèi)的,內容非常多,但是這些是理解多路復用模型所需要掌握的······select/poll/epoll這些系統調用解決了什么問(wèn)題?事件機制能不能理解?就看這本書(shū)的前六章了。
8、《數據庫管理系統(原理與設計)》這個(gè)也是web開(kāi)發(fā)中離不開(kāi)的東西,必須劃重點(diǎn)學(xué)會(huì )的是ER圖/SQL語(yǔ)句/存儲數據(磁盤(pán)|文件|RAID|緩沖池等)/三大范式/索引以及相應的數據結構/事務(wù)相關(guān)的所有概念,尤其重點(diǎn)學(xué)習SQL 。之后學(xué)會(huì )使用mysql workbench來(lái)進(jìn)行數據庫建模/逆向工程生成建表語(yǔ)句/根據SQL生成JAVA實(shí)體類(lèi)等就不贅述了,開(kāi)發(fā)過(guò)程中百度谷歌一下就知道啦,然后如果習慣在windows下開(kāi)發(fā)的同學(xué)推薦利用navicat這個(gè)好東西。
編程有好多語(yǔ)言的,不知道你要學(xué)哪一種??比如c語(yǔ)言的譚浩強的《C程序設計》
先學(xué)c語(yǔ)言 了解類(lèi)c語(yǔ)言的基本語(yǔ)法 學(xué)習數據結構和算法 之后弄明白二進(jìn)制和溢出 接下來(lái)了解內存和指針 這其中要穿插著(zhù)學(xué)習 計算機基礎 做到能手寫(xiě)個(gè)鏈表排序 基本算是入門(mén)了 有這個(gè)基礎找工作還是很難的 之后學(xué)習一門(mén)面向對象語(yǔ)言C# java C++ 找工作就比較容易了
如果想速成就去報個(gè)班 java的C#的 自學(xué)的話(huà)很難尤其是身邊沒(méi)有高手 相對的自學(xué)還是還是c語(yǔ)言簡(jiǎn)單點(diǎn)(語(yǔ)法部分) 推薦本書(shū)譚浩強的《c語(yǔ)言程序設計》 之后看看C++或者java的書(shū)了解一下面向對象語(yǔ)言的重要特性和高級語(yǔ)言的重要元素
其實(shí)到最后 除了特別偏的語(yǔ)言之外 很多語(yǔ)言都是“差不多”的 不外乎數據結構和算法 語(yǔ)法不會(huì )寫(xiě)查一下api或者問(wèn)一下就搞定了 重要的是設計模式和業(yè)務(wù) 高級程序員重設計懂業(yè)務(wù) 代碼
程序員最好會(huì )點(diǎn)linux 如果學(xué)習c或者java的 建議使用linux平臺 如果想從事linux相關(guān)行業(yè) 最好會(huì )python(和java很想 在linux下有取代java的趨勢)
到你找工作的時(shí)候最好能在你簡(jiǎn)歷上這么寫(xiě)
熟悉java/C# 了解c/c++
熟悉常用基本算法和數據結構
熟悉linux命令 熟悉或了解python
如果是web開(kāi)發(fā)還要熟悉前臺重要技術(shù) CSS DIV javascript 等
如果是wen開(kāi)發(fā)最好有項目經(jīng)驗
入門(mén)書(shū)籍
程序設計:
基礎理論:編碼:隱匿在計算機軟硬件背后的語(yǔ)言
C:C和指針
C++:C++程序設計原理與實(shí)踐
Java:Java核心技術(shù)(第9版)
C#:精通C#(第6版)
JavaScript:JavaScript DOM編程藝術(shù)(第2版)
Python:Python基礎教程(第二版)
編程語(yǔ)言理論:編程語(yǔ)言實(shí)現模式
程序設計:程序設計方法
算法與數據結構:算法(第4版)
程序調試:調試九法——軟硬件錯誤的排查之道
軟件開(kāi)發(fā):
編程實(shí)踐:程序設計實(shí)踐
面向對象程序設計:Head First設計模式
重構:重構
軟件測試:How to Break Software
項目管理:極客與團隊
專(zhuān)業(yè)開(kāi)發(fā):程序員修煉之道:從小工到專(zhuān)家
大師之言:奇思妙想:15位計算機天才及其重大發(fā)現
界面設計:寫(xiě)給大家看的設計書(shū)
交互設計:通用設計法則
個(gè)人成長(cháng):
職業(yè)規劃:軟件開(kāi)發(fā)者路線(xiàn)圖
思維方式:程序員的思維修煉:開(kāi)發(fā)認知潛能的九堂課
求職面試:金領(lǐng)簡(jiǎn)歷:敲開(kāi)蘋(píng)果微軟谷歌的大門(mén)
英語(yǔ)寫(xiě)作:The Only Grammar Book You'll Ever Need
必讀書(shū)籍
基礎理論:深入理解計算機系統(第2版)
編程語(yǔ)言:
C:C程序設計語(yǔ)言(第2版)
C++:C++程序設計語(yǔ)言(第4版)
Java:Effective Java(第2版)
C#:CLR via C#(第4版)
JavaScript:JavaScript語(yǔ)言精粹
Python:Python參考手冊(第4版)
編程語(yǔ)言理論:程序設計語(yǔ)言——實(shí)踐之路(第3版)
程序設計:計算機程序的構造與解釋?zhuān)ǖ?版)
算法與數據結構:編程珠璣(第2版)
程序調試:調試九法——軟硬件錯誤的排查之道
編程實(shí)踐:代碼大全(第2版)
面向對象程序設計:設計模式
重構:修改代碼的藝術(shù)
軟件測試:xUnit Test Patterns
項目管理:人月神話(huà)
專(zhuān)業(yè)開(kāi)發(fā):程序員職業(yè)素養
大師之言:編程人生:15位軟件先驅訪(fǎng)談錄
界面設計:認知與設計:理解UI設計準則(第2版)
交互設計:交互設計精髓(第3版)
職業(yè)規劃:軟件開(kāi)發(fā)者路線(xiàn)圖
思維方式:如何把事情做到最好
求職面試:程序員面試金典(第5版)
英語(yǔ)寫(xiě)作:風(fēng)格的要素
四大名著(zhù)之《Java核心技術(shù)(第10版)》
提起Java入門(mén)必讀,四大名著(zhù)是少不了的。《Java 核心技術(shù)》就是其中之一,分卷一、卷二兩冊,卷一講基礎,卷二為進(jìn)階。全書(shū)對于Java語(yǔ)言的核心概念、語(yǔ)法、重要特性和開(kāi)發(fā)方法講解地非常細致,可以說(shuō)是一部有關(guān)Java的百科全書(shū)。
四大名著(zhù)之《EffectiveJava中文版(第 2 版)》
“神書(shū)”、“整本書(shū)都是精華”、“內容永不過(guò)時(shí)”、“Java 程序員必讀”……這些標簽都是屬于《Effective Java中文版》的。
這本書(shū)不是講理論基礎的,而是講實(shí)戰的。書(shū)中介紹了78條極具實(shí)用價(jià)值的經(jīng)驗規則,涵蓋了大多數開(kāi)發(fā)人員每天所面臨的問(wèn)題的解決方案,并且通過(guò)代碼例子進(jìn)一步進(jìn)行佐證,讓你知其然,也知其所以然。
哪怕不是Java程序員,也能買(mǎi)來(lái)看看,書(shū)中絕妙的編程觀(guān)是跨語(yǔ)言、跨平臺的。
四大名著(zhù)之《Java 編程思想(第 4 版)》
這同樣是一本Java領(lǐng)域的經(jīng)典書(shū)籍,從Java編程的基礎知識點(diǎn)開(kāi)始講起,慢慢深入,一直到Java的高級特性。作者用了大量通俗易懂的代碼對理論進(jìn)行佐證,讓讀者在實(shí)際操作中可以深入理解操作符、枚舉類(lèi)型、接口等相關(guān)知識。
這是一本被廣大讀者評價(jià)為“不管什么時(shí)候閱讀都會(huì )有收獲”的書(shū),不論你是否剛接觸 Java,都可以在閱讀中獲得啟迪。
《深入理解Java虛擬機:JVM 高級特性與最佳實(shí)踐(第 2 版)》
用Java卻不懂JVM是說(shuō)不過(guò)去的,但市面上有關(guān)JVM 的書(shū)很少,這本書(shū)更是少有的國內講解此方面備受好評的書(shū),甚至可以說(shuō)是JVM書(shū)籍最好的讀物之一。
本書(shū)整體內容更偏向實(shí)戰,難易適中。從內存管理、執行子系統、程序編譯與優(yōu)化、高效并發(fā)等核心主題講解JVM。第2版根據JDK1.7進(jìn)行了內容升級,整體上不光適合入門(mén),而且對于已經(jīng)接觸JVM的人來(lái)說(shuō),也會(huì )常讀常新。
《Java語(yǔ)言程序設計(基礎篇)(原書(shū)第 10 版)》
這應該是很多程序員,尤其是Java程序員倍感親切的書(shū),因為這本書(shū)可以說(shuō)是他們當中很多人的入門(mén)初心。
本書(shū)從最基本的程序理論知識出發(fā),哪怕你完全沒(méi)有Java基礎,也可以通過(guò)這本書(shū)了解Java基本的程序設計、語(yǔ)言結構、面對對象程序設計等知識。書(shū)中還配了大量的代碼和課后習題,讓讀者在了解有關(guān)Java的基礎知識的時(shí)候,也能進(jìn)行實(shí)踐深入理解。
非常適合零基礎、Java 和編程愛(ài)好者來(lái)讀。
《Java 高并發(fā)編程詳解:多線(xiàn)程與架構設計》
全書(shū)主要分為四個(gè)部分:第一部分主要闡述Thread的基礎知識;第二部分引入了 ClassLoader; 第三部分詳細、深入地介紹volatile關(guān)鍵字的語(yǔ)義;第四部分也是最重要的一部分,站在程序架構設計的角度深入講解了如何設計高效靈活的多線(xiàn)程應用程序。
上述就是推薦的幾本學(xué)Java要看的書(shū)籍。
看書(shū)貴精不貴多,從基礎開(kāi)始。
我計算機專(zhuān)業(yè),大一時(shí)我們開(kāi)了C語(yǔ)言,就是清華出的《C語(yǔ)言程序設計(第二版)》,譚浩強的。
后來(lái)就一直沒(méi)開(kāi)專(zhuān)業(yè)課,直到現在大二。
我曾經(jīng)想試著(zhù)看《匯編原理》、看《計算機組成原理》,可是一遇到有不會(huì )的心里就很不踏實(shí)。本來(lái)我自認為自學(xué)能力很強,以前遇到不會(huì )的仔細鉆研一下就能把問(wèn)題解決,從來(lái)沒(méi)有覺(jué)得有什么不踏實(shí)。
后來(lái)終于明白,自己的基礎太差,也就是C語(yǔ)言沒(méi)有學(xué)好。沒(méi)學(xué)好時(shí)就又去學(xué)別的,難免會(huì )一樣也學(xué)不成。所以現在又重新拾起C語(yǔ)言開(kāi)始啃,也常來(lái)論壇交流,覺(jué)得受益良多。
所以建議每位想學(xué)好編程的人,一定要學(xué)一門(mén)通一門(mén),不要馬馬虎虎了事就去學(xué)別的。再就是基礎很重要。
說(shuō)了這些都是自己的一點(diǎn)點(diǎn)體會(huì ),不知對不對。可以共同探討。
聲明:本網(wǎng)站尊重并保護知識產(chǎn)權,根據《信息網(wǎng)絡(luò )傳播權保護條例》,如果我們轉載的作品侵犯了您的權利,請在一個(gè)月內通知我們,我們會(huì )及時(shí)刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習?shū)B(niǎo). 頁(yè)面生成時(shí)間:3.488秒