学习编程有几年了,感受走了很多弯路,而很多的学弟学妹又在重蹈我当初的覆辙,难免有些痛心。最近在网
上也看了许多前辈们的经验建议,再结合本身的学习经历在这里谈谈基础的重要性,但愿帮助你们少走些弯
路。
什么是基础呢?就是要把咱们大学所学的离散数学,算法与数据结构,操做系统,计算机体系结构,编译原理
等课程学好,对计算机的体系,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个星期就能学得很是熟练。 php
教的表面看来是马步冲权实则都是内功心法,郭靖拜师洪七以后开始练习降龙十八掌凭借的就是这深厚的内
功,吞食蝮蛇宝血又加上练习了周博通传授的九阴真经和外加功夫双手互博技以后,终于练就行走江湖的武
功,因而可知马玉道长传授给了郭靖的是最基础的,也是最重要的观念,编程也比如盖高楼,根基没打好迟早有
一天会挎掉的,并且盖得越高,损失也越惨重。这些底层知识和课本不是没有用也不是高深的不能学,而是我
们必须掌握的基础。
这些是我的的愚见,说的不是很清楚,你们能够看看这些前辈们的经验,相信看完后你们必定会有所体会
说了这么多无非是想告诫你们要打好扎实的基础,不要只顾追求时髦的技术,打好基础再去学那些技术或是
参加些培训,对自身的发展会更好的。
基础这么重要怎样学好它呢?我以为学好它们应该对照这些基础课程所涉及的方面,多看一些经典书籍,像算
法导论,编程珠玑,代码大全(具体介绍在本论坛每本书的版块里)等,这些经典书籍不只能帮助咱们打好基础,并且
对咱们的程序人生也能产生莫大的影响,相信认真研究看完这些书籍后,咱们的程序之路会十分顺畅。然而这
些书籍并很差读,有些甚至至关难读,国内的大学用这些书当教材的也很少,这些书又偏向理论,本身读起来不免会
有些枯燥无味。因而就想到建一个论坛,你们共同讨论学习这些书籍,就会学的更踏实更牢固更有趣,这样就能
为之后的学习打下扎实的基础。
1.为计算机初学者或基础不太扎实的朋友指明方向,要注重内功
2.为学习者推荐经典书籍,指明应看哪些书籍,怎样练内功
3.为学习者提供一个交流的地方,更容易学好,不会那么枯燥
4.对每本书分章分别讨论,更专,会学的更踏实更牢固
5.讨论的都是经典书籍,每一本都会让咱们受益不浅,对每本书分别讨论是颇有意义的。css
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编程规范
html
些书籍并很差读,有些甚至至关难读,国内的大学用这些书当教材的也很少,这些书又偏向理论,本身读起来不免会
有些枯燥无味。因而就想到建一个论坛,你们共同讨论学习这些书籍,就会学的更踏实更牢固更有趣,这样就能
为之后的学习打下扎实的基础。
1.为计算机初学者或基础不太扎实的朋友指明方向,要注重内功
2.为学习者推荐经典书籍,指明应看哪些书籍,怎样练内功
3.为学习者提供一个交流的地方,更容易学好,不会那么枯燥
4.对每本书分章分别讨论,更专,会学的更踏实更牢固
5.讨论的都是经典书籍,每一本都会让咱们受益不浅,对每本书分别讨论是颇有意义的。
java
bbs.theithome.com linux
编程就比如练功,若是学习.net,mfc,vb等具体的语言和工具是外功(招式),对基础的学习就是内功,只注重 招式而内功不扎实是不可能成为高手的。不少人会认为《射雕英雄传》中马玉道长什么都没有教郭靖,马道长程序员
教的表面看来是马步冲权实则都是内功心法,郭靖拜师洪七以后开始练习降龙十八掌凭借的就是这深厚的内 功,吞食蝮蛇宝血又加上练习了周博通传授的九阴真经和外加功夫双手互博技以后,终于练就行走江湖的武 功,因而可知马玉道长传授给了郭靖的是最基础的,也是最重要的观念,编程也比如盖高楼,根基没打好迟早有 一天会挎掉的,并且盖得越高,损失也越惨重。这些底层知识和课本不是没有用也不是高深的不能学,而是我 们必须掌握的基础。ajax
这些是我的的愚见,说的不是很清楚,你们能够看看这些前辈们的经验,相信看完后你们必定会有所体会
的。为了方便你们阅读,我把这些前辈们的建议的文章整理成了pdf,你们在下面下载吧!但愿对你们有帮助。pdf 地址:http://bbs.theithome.com/read-htm-tid-123.html算法
说了这么多无非是想告诫你们要打好扎实的基础,不要只顾追求时髦的技术,打好基础再去学那些技术或是 参加些培训,对自身的发展会更好的。
基础这么重要怎样学好它呢?我以为学好它们应该对照这些基础课程所涉及的方面,多看一些经典书籍,像算 法导论,编程珠玑,代码大全(具体介绍在本论坛每本书的版块里)等,这些经典书籍不只能帮助咱们打好基础,并且 对咱们的程序人生也能产生莫大的影响,相信认真研究看完这些书籍后,咱们的程序之路会十分顺畅。然而这 些书籍并很差读,有些甚至至关难读,国内的大学用这些书当教材的也很少,这些书又偏向理论,本身读起来不免会 有些枯燥无味。因而就想到建一个论坛,你们共同讨论学习这些书籍,就会学的更踏实更牢固更有趣,这样就能 为之后的学习打下扎实的基础。 sql