基礎的重要性(程序員之路)


學習編程有幾年了,感覺走了不少彎路,而不少的學弟學妹又在重蹈我當初的覆轍,不免有些痛心。最近在網
上也看了許多前輩們的經驗建議,再結合自己的學習經歷在這里談談基礎的重要性,希望幫助大家少走些彎
路。
什么是基礎呢?就是要把我們大學所學的離散數學,算法與數據結構,操作系統,計算機體系結構,編譯原理
等課程學好,對計算機的體系,CPU本身,操作系統內核,系統平台,面向對象編程,程序的性能等要有深層次的掌握。
初學者可能體會不到這些基礎的重要性,學習jsp,donet,mfc,vb的朋友甚至會對這些嗤之以鼻,但是一開始沒學
好基礎就去學jsp或donet會產生很壞的影響,而且陷入其中不能自拔。
我上大二的時候還對編程沒什么概念,就上了門C++也不知道能干什么,老師說MFC也不知道是什么東西,
看別的同學在學asp.net就跟着學了,然后就了解到.net,j2ee,php是什么了,就覺得軟件開發就是用這些了,而上
的那些專業課又與我們學的sqlserver啊,css啊,ajax啊,毫無關系,就感慨啊,還不如回家自學去就為一個文憑嗎?
還不如去培訓,浪費這么多錢.於是天天基本上沒去上什么課,天天就在做網站,幾個學期就做了三個網站。感覺做
這些網站就是學到些技巧,沒什么進步,這些技巧就好比別人的名字,告訴你你就知道了,網上也都可以搜到。那時
候就覺得把.net學好就行了,搞j2ee的比較難,搞api編程就別想了,操作系統更是望塵莫及了。后來隨着學習
的深入和看了網上許多前輩們的建議才對這些基礎的重要性有所體會。
雖然.net或java的開發並不直接用到匯編,操作系統這些,但是不掌握這些基礎是有很大問題的,因為你只知
其然不知其所有然,在mfc和.net里面控件一拖什么都做好了,很方便,但是出了問題可能就解決不了,有些在
網上搜都搜不到。這就是基礎沒打好,不知道它的原理就不知道出錯的原因。在學.net的時候常會討論那些控件
該不該用別人說盡量別用也不知道為什么?不讓用是因為你在高層開發,你不知道它的原理出錯了你可能解決不
了,但其實是應該用的,不然人家開發它干嘛,但要在了解它的原理后去用就會很方便。
要編寫出優秀的代碼同樣要扎實的基礎,如果數據結構和算法學的不好,怎么對程序的性能進行優化,怎樣
從類庫中選擇合適的數據結構。如果不了解操作系統,怎樣能了解這些開發工具的原理,它們都是基於操作系統
的。不了解匯編,編譯原理,怎么知道程序運行時要多長時間要多少內存,就不能編出高效的代碼。
如果沒有學好基礎一開始就去學.net,java這些越往后就會覺得越吃力,它們涉及的技術太多了,而且不但
在更新,對於三層啊,mvc,orm這些架構,你只會用也不明白為什么用,就感覺心里虛,感覺沒學好。而你把
面向對象,軟件工程,設計模式這些基礎學好了再去看這些就可以一不變應萬變。
大家不要被新名詞、新技術所迷惑.NET、XML等等技術固然誘人,可是如果自己的基礎不扎實,就像是在
雲里霧里行走一樣,只能看到眼前,不能看到更遠的地方。這些新鮮的技術掩蓋了許多底層的原理,要想真正
的學習技術還是走下雲端,扎扎實實的把基礎知識學好,有了這些基礎,要掌握那些新技術也就很容易了。
開始編程應該先學C/C++,系統api編程,因為它們更接近底層,學習他們更能搞清楚原理。學好了c/C++
編程和基礎,再去學習mfc,.net這些就會比較輕松,而且很踏實。假設學習VB編程需要4個月,學習基礎課程和
VC的程序設計需要1年。那么如果你先學VB,再來學習后者,時間不會減少,還是1年,而反過來,如果先學習
后者,再來學VB,也許你只需要1個星期就能學得非常熟練。

 

 

教的表面看來是馬步沖權實則都是內功心法,郭靖拜師洪七之后開始練習降龍十八掌憑借的就是這深厚的內
功,吞食蝮蛇寶血又加上練習了周博通傳授的九陰真經和外加功夫雙手互博技之后,終於練就行走江湖的武
功,由此可見馬玉道長傳授給了郭靖的是最基礎的,也是最重要的觀念,編程也好比蓋高樓,根基沒打好早晚有
一天會挎掉的,而且蓋得越高,損失也越慘重。這些底層知識和課本不是沒有用也不是高深的不能學,而是我
們必須掌握的基礎。
這些是個人的愚見,說的不是很清楚,大家可以看看這些前輩們的經驗,相信看完后大家一定會有所體會
說了這么多無非是想告誡大家要打好扎實的基礎,不要只顧追求時髦的技術,打好基礎再去學那些技術或是
參加些培訓,對自身的發展會更好的。
基礎這么重要怎樣學好它呢?我覺得學好它們應該對照這些基礎課程所涉及的方面,多看一些經典書籍,像算
法導論,編程珠璣,代碼大全(具體介紹在本論壇每本書的版塊里)等,這些經典書籍不僅能幫助我們打好基礎,而且
對我們的程序人生也能產生莫大的影響,相信認真研究看完這些書籍后,我們的程序之路會十分順暢。然而這
些書籍並不好讀,有些甚至相當難讀,國內的大學用這些書當教材的也不多,這些書又偏向理論,自己讀起來難免會
有些枯燥無味。於是就想到建一個論壇,大家共同討論學習這些書籍,就會學的更踏實更牢固更有趣,這樣就能
為以后的學習打下扎實的基礎。
1.為計算機初學者或基礎不太扎實的朋友指明方向,要注重內功
2.為學習者推薦經典書籍,指明應看哪些書籍,怎樣練內功
3.為學習者提供一個交流的地方,更容易學好,不會那么枯燥
4.對每本書分章分別討論,更專,會學的更踏實更牢固
5.討論的都是經典書籍,每一本都會讓我們受益匪淺,對每本書分別討論是很有意義的。

 

1.計算機科學概論
計算機科學概論
2.計算機數學基礎
高等數學
線性代數
概率論與數理統計
離散數學及其應用
離散數學教程(北大版)
什么是數學
具體數學:計算機科學基礎
3.C語言
譚浩強C程序設計
C primer plus
The C programming language
C和指針
C專家教程
C陷阱與缺陷
c語言解惑
C標准庫
你必須知道的495個C語言問題
4.算法與數據結構
數據結構(清華版)
數據結構與算法分析—C語言描述
編程珠璣
編程珠璣II
算法導論
計算機程序設計藝術卷1
計算機程序設計藝術卷2
計算機程序設計藝術卷3
5.電子技術基礎
模擬電子技術(童詩白版)
數字邏輯與數字集成電路(清華版)
6.匯編語言
匯編語言(王爽版)
80X86匯編語言程序設計教程
Intel匯編語言程序設計
IBM PC匯編語言程序設計(國外版)
高級匯編語言程序設計
保護方式下的80386及其編程
黑客反匯編揭秘
Windows環境下32位匯編語言程序設計
7.計算機硬件原理
計算機組成-結構化方法
微機原理與接口技術(陳光軍版)
計算機體系結構(張晨曦版)
計算機組成與設計硬件/軟件接口
Intel微處理器結構、編程與接口
計算機體系結構(量化研究方法)
編程卓越之道卷1
編程卓越之道卷2
深入理解計算機系統
編碼的奧秘
8.數據庫系統原理
數據庫系統概念
數據庫系統導論
數據庫系統實現
計算機經典書籍匯總,下載地址:http://bbs.theithome.com/read-htm-tid-308.html
9.編譯原理
編譯原理(清華第2版)
編譯原理及實踐
編譯原理:原則,技術和工具
現代編譯原理-C語言描述
高級編譯器設計與實現
10.操作系統原理
操作系統概念
現代操作系統
鏈接器和加載器
程序員的自我修養:鏈接、裝載與庫
自己動手寫操作系統
操作系統設計與實現
11.計算機網絡
計算機網絡(Computer Networks)
TCP-IP詳解卷1
TCP-IP詳解卷2
TCP-IP詳解卷3
用TCP/IP進行網際互聯(第一卷)
用TCP/IP進行網際互聯第二卷
用TCP/IP 進行網際互聯第三卷
12.軟件工程和面向對象程序設計
C++編程思想卷1
java編程思想
軟件工程(Software.Engineering)
軟件工程:實踐者的研究方法
深入淺出面向對象分析與設計
head first設計模式
道法自然:面向對象實踐指南
面向對象分析與設計
敏捷軟件開發:原則、模式與實踐
設計模式:可復用面向對象軟件的基礎
測試驅動開發
重構—改善既有代碼的設計
代碼大全
程序設計實踐
程序員修煉之道:從小工到專家
卓有成效的程序員
代碼之美
人月神話
計算機程序的構造和解釋
觀止-微軟創建NT和未來的奪命狂奔
代碼優化:有效使用內存[美]克里斯·卡巴斯基
編程高手箴言(梁肇新)
游戲之旅-我的編程感悟(雲風)
13.windows編程基礎
Windows操作系統原理
Inside Windows 2000
深入解析Windows操作系統
天書夜讀:從匯編語言到Windows內核編程
windows程序設計
WINDOWS核心編程
14.linux/unix編程基礎
鳥哥的Linux私房菜:基礎學習篇
鳥哥的Linux私房菜:服務器架設篇
linux程序設計
UNIX環境高級編程
Unix網絡編程卷1
UNIX網絡編程卷2
UNIX編程藝術
UNIX Shell范例精解
15.Linux/unix內核源代碼和驅動程序
Linux內核設計與實現
LINUX內核源代碼情景分析
深入理解LINUX內核
Linux內核完全注釋
Linux設備驅動程序
16.C++語言
C++編程思想2
Essential C++
C++ primer
C++程序設計語言
C++語言的設計和演化
Accelerated C++
Effective C++
More Effective C++
Exceptional C++
More Exceptional C++
C++設計新思維
深度探索C++對象模型
C++沉思錄
C++ Templates: The Complete Guide
C++ FAQs
17.標准庫STL使用
C++標准程序庫
Effective STL
泛型編程與STL
18.STL源代碼
STL源碼剖析
19.java語言
java編程思想
Java編程規范

 

 些書籍並不好讀,有些甚至相當難讀,國內的大學用這些書當教材的也不多,這些書又偏向理論,自己讀起來難免會
有些枯燥無味。於是就想到建一個論壇,大家共同討論學習這些書籍,就會學的更踏實更牢固更有趣,這樣就能
為以后的學習打下扎實的基礎。
1.為計算機初學者或基礎不太扎實的朋友指明方向,要注重內功
2.為學習者推薦經典書籍,指明應看哪些書籍,怎樣練內功
3.為學習者提供一個交流的地方,更容易學好,不會那么枯燥
4.對每本書分章分別討論,更專,會學的更踏實更牢固
5.討論的都是經典書籍,每一本都會讓我們受益匪淺,對每本書分別討論是很有意義的。


bbs.theithome.com 

編程就好比練功,如果學習.net,mfc,vb等具體的語言和工具是外功(招式),對基礎的學習就是內功,只注重 招式而內功不扎實是不可能成為高手的。很多人會認為《射雕英雄傳》中馬玉道長什么都沒有教郭靖,馬道長

教的表面看來是馬步沖權實則都是內功心法,郭靖拜師洪七之后開始練習降龍十八掌憑借的就是這深厚的內 功,吞食蝮蛇寶血又加上練習了周博通傳授的九陰真經和外加功夫雙手互博技之后,終於練就行走江湖的武 功,由此可見馬玉道長傳授給了郭靖的是最基礎的,也是最重要的觀念,編程也好比蓋高樓,根基沒打好早晚有 一天會挎掉的,而且蓋得越高,損失也越慘重。這些底層知識和課本不是沒有用也不是高深的不能學,而是我 們必須掌握的基礎。

  這些是個人的愚見,說的不是很清楚,大家可以看看這些前輩們的經驗,相信看完后大家一定會有所體會

的。為了方便大家閱讀,我把這些前輩們的建議的文章整理成了pdf,大家在下面下載吧!希望對大家有幫助。pdf 地址:http://bbs.theithome.com/read-htm-tid-123.html

  說了這么多無非是想告誡大家要打好扎實的基礎,不要只顧追求時髦的技術,打好基礎再去學那些技術或是
參加些培訓,對自身的發展會更好的。

基礎這么重要怎樣學好它呢?我覺得學好它們應該對照這些基礎課程所涉及的方面,多看一些經典書籍,像算 法導論,編程珠璣,代碼大全(具體介紹在本論壇每本書的版塊里)等,這些經典書籍不僅能幫助我們打好基礎,而且 對我們的程序人生也能產生莫大的影響,相信認真研究看完這些書籍后,我們的程序之路會十分順暢。然而這 些書籍並不好讀,有些甚至相當難讀,國內的大學用這些書當教材的也不多,這些書又偏向理論,自己讀起來難免會 有些枯燥無味。於是就想到建一個論壇,大家共同討論學習這些書籍,就會學的更踏實更牢固更有趣,這樣就能 為以后的學習打下扎實的基礎。 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM