注册 登录
编程论坛 VB.NET论坛

[精华]编程之道(新手必看!!)想学好程序的就进来!

Viviwei 发布于 2007-03-12 15:24, 10361 次点击

前些日子看到一篇文章,虽然是写笔者的人生经历,但里面提及的技术让我目瞪口呆(呆了半天说不出话来),(高中生的写尼姆达病毒源代码析,清华研究生写了Linux服务器集群系统,Lion 是四年制中专生.....),嗨,想想这些,再看看自己,都20来岁了,想想在这方面不可能有多大建树了,真是有些伤感。静下心来,参考了一些资料,总结了一些专家点评再加上一点个人的感悟,写了这篇文章希望能对后来者有些帮助使后来者少走些弯路:

曾几何时,为了一段程序的通过,翻阅了不知多少本册子,设置了不知多少个断点,耗费了不知多少个时辰,流了不知多少的汗水,哦,忘记了吃饭,忘记了睡觉。累乎?
曾几何时,当调试窗口出现 0 Error 0 Warning ,程序按照意图通过,一切的一切,全然不在话下,征服的快感顿生,哦,忘记了吃饭,忘记了睡觉。乐乎?
要学习编程是要有很大恒心和毅力的,首先你要明确自己的目标,想好自己编程是为了干什么。如果你学习仅仅只是一时想编出QUAKE和成为比尔盖次的冲动,那么我劝你还是应该不要开始学习,因为这样的目标很难支持你日后大量的学习。而且你的年龄不能太大(最好是中学或者大学生)。

1 无论学习编程还是计算机的其它方面,首先是培养兴趣,这点非常重要,如果有兴趣,编程会使你有强烈的兴奋感,你自然就有了强烈的求知欲。不然它就会是一份枯燥的工作,你也不可能深入学习下去。一开始可以看一些计算机软硬件杂志比如说<<电脑报>>,对于里面提及的计算机操作技巧尽量动手试试,这样会使你有些成就感,这很好,要的就是这个。其实学习一些“Crack技术”也是培养兴趣的一条捷径,上网看看,或去书店找找《黑客,就这么几招》之类的东东看看(想想这些"漫画书":->的作用这就于限此吧),当你发现开始对计算机产生兴趣后,那么就开始学习专业知识吧,上面提及的东东可以不用再看了,你可能觉得从中学了不少知识,但要清楚的是这些都是一些三流的非专业知识。你还有很长的路要走,得赶快上路,不要在上面浪费时间了!

2 一开始你可以学习BASIC语言,这个语言并不会耽误你太多的时间,学习它完全是为了入门,让你对电脑编程有一个比较初步的认识。,知道一些最基本每条语句的功能,搞清楚一些基本的数据结构(尤其是数组)对于一些其余用途的函数最好不要做任何学习,因为这样只会分散你的注意力,并天马行空地多写些小程序自娱自乐,当你能够可以熟练的运用BASIC编出猴子选大王,以及电脑出题考试之类的程序时,你就可以开始后面的学习了。(之所以选择BASIC也是为了培养兴趣,选择C就显得有点不适合了,就教材而言BASIC教材上的的屏控制比C教材上来得丰富得多,而一般的C教材上基本上没有这方面的介绍,这对于自己想些小程序来做很有利)。

3 接下来是可以看C了,学C主要是学过程化的程序设计,学会把自己的程序分成许多的函数(或过程),养成良好的编程习惯。这时可以多看一下高人的程序,不一定要懂意思,主要是学会别人程序的格式(比如变量如何起名,怎么划分函数)。除开掌握基本的控制流语句外,应该学习一些很简单的I/O函数和数学函数。C的学习主要是你舍弃原来BASIC程序那种把所有语句积成一大堆的风格,要学会使用函数,提高代码重用性。对于指针之类的东西如果实在看不懂可以先不去管,到后面会有办法。当你能够比较自如的用C编写一些小的计算程序时,你就可以开始你的数据结构的学习了(数学的学习主要是在学校,自己要多用心)。数据结构你可以一点一点慢慢看,并不需要专门空出一段时间来专门研究,这样的目的是让你能够很好的掌握它,要学会用数据结构的知识来规范自己的程序设计和提高程序的效率。对数据结构引起足够的重视。如果说计算机专业的学生与非计算机专业的最根本的差别绝对是数据结构(数学大家都一样学了,主要看你自己学得好坏)。对数据结构的掌握与运用能力是衡量你编程能力的一个很重要的指标。有的人对于看了链表,栈,树,广义表这些东西就头痛。然而这些东西往往能使你的程序的效率比别人高出百倍

4 学完C我认为接着最好学习汇编。从最基本的DOS汇编开始,买本《IBM PC汇编程序设计》(清华黄皮)一定要一点一点吃透,实在看不懂就跳,反复的严读是一定可以看懂的。汇编是一定要掌握的,因为它涉及到很多最基本的知识。掌握了汇编和对I/O有了个很彻底的认识后,应该去学编译原理。这个东西并不要精通,但是一定要知道,在大脑里要有一个这样的概念,这对你对程序语言的控制能力都有很大的帮助。这样最基本的学习就算完成了。一般智力正常的人前一段东西应该都是可以掌握的。接着后面的学习就要看你自身的造化了。这个时候你应该研究一下数据结构,不要分散自己学习的注意力,要知道数据结构是异常重要的如果你觉得自己已经对于树,连表,堆栈之类的东西和排序,递归之类的算法已经十分清楚,就可以开始学习Window程序设计了(Microsoft毕竟是老大)。

5 对于SDK的学习非常重要,写Windows程序的人对API不了解是不可想象的,它就相当于计算机专业的学生得学操作系统和组成原理这两门基础课一样(当然SDK可比这两门课来得有趣和重要得多)搞清windows基本消息机制和系统原理,为以后的编程打下基础,以后学RAD也就快得多得多,对于API没有必要去硬记,只要理解了有个印象就行。千万不要一开始就学VB,DELPHI,BCB之类的东西(这是一个很多人都容易犯的错误,而且很多人犯了这样的错误,自己都没觉得,如果你有作职业选手的心,一开始学这些东西是绝对的错,我也犯过这样的错,好痛),这些东西 在一开始学会对你造成很坏的影响。有可能会把 你引入另外一个错误的学习方向而忽略了真正应该掌握的东西。

6 对Windows程序设计有一定掌握后,就开始学习C++了,学习前一定要有个正确的认识,那就是C和C++是两个不同的东西(很多垃圾书会使你觉得C++只是带类的C)。学习C++是为了学习面向对象的程序设计,这个时候你对于指针应该也能够掌握了(有汇编的基础),主要抓住C++和C相比的一些新特性,对于多态之类的特性要注意理解掌握,如果没有搞懂就坚决不要往下学习。一些基本的概念掌握以后可以看一些别人设计的程序,学习别人怎么利用面向对象的方法来设计程序的。这个东西也是人之间拉开档次的一个环节,可以和数据结构在同等重要的地位。

7 对于C++有了一定掌握后,你就可以学习VC 或 BCB,DELPHI了(建议是VC) 之类的开发工具了,当然学之前先学它们的语言和类库,比如MFC或VCL。如果你在第四阶段就上VB DELPHI 或BCB并发现有问题而倒回来重新学习,到了这里你就会深切地感受到你写程序时游韧有余,运用自如得多了。

8 以后的OLE(ActiveX),.NET,数据库就要看自己的发展方向而定了,在以后的学习上同样要注意的是原理的学习,就好象学习数据库或网络编程一样,千万别一开始就用BCB或DELPHI这样的RAD。

 最后引以候老师的一就话:省下一个浪漫的夜晚吧,人生还很长,你可能因此获得无数个愉快的工作天。

以上只是本人一些愚见(也未提及相关学习书籍),希望大家指出不正确的地方并与我多多交流

[此贴子已经被作者于2007-3-15 15:08:27编辑过]

32 回复
#2
Viviwei2007-03-14 17:45
转载的一段文章,自己觉得不错才敢贴上来的!~
看了的都顶下!~非常不错的文章!~
#3
bygg2007-03-15 09:28
好啊..
#4
Viviwei2007-03-15 15:08
嗯,谢谢你了...
我继续工作鸟!
#5
tianfeng04182007-03-19 16:15
看了一下,觉得自己真的什么都不懂
#6
liuminghui2007-03-19 17:02
我顶顶,感觉很不错啊!!谢谢楼主哦
#7
heyuqing05022007-03-21 14:03

好好地看了一片

#8
gzxlq2007-03-22 09:32

楼主,老帖了

#9
scindy2007-03-22 16:31
老帖怎么了,只要对大家有帮助就是好贴.~~~



#10
harvard2007-05-10 23:42

不错的建议。支持!

#11
frxyrx2007-05-11 00:37

好贴子

#12
njbn2007-05-11 10:40
看了,你说的BASIC语言为什么不是.net  难道从到c++.net就不行吗?从到c++.net和你说的有什么出入呢?但是现在很多朋友都是从.net开始的.难道还是要回到BASIC语言去重新学习吗?
#13
liuminghui2007-05-11 12:52
看看你现在学的是什么语言吧,不要看别人做什么自己就做什么,每个人都有自己的路
#14
Viviwei2007-05-11 16:54
这篇文章的精华在于告诉你一个理论...即是打好坚固的逻辑基础..
二位应该是只读解了文章的浮面意思...
针对各种语言开始都是C
#15
njbn2007-05-11 21:15
大致明白了.让Viviwei大哥费心了.感谢.另外我有一本<<VB.Net自学教程>>.是中国劳动社会保障出版社 出版的.微软指定的教材.Viviwei大哥有心就帮我看看这本书到底要学完吗?里面的内容适合我吗?,有不方便的地方就算了.
#16
Viviwei2007-05-12 08:52

既然是微软指定的教材我想应该是可以读下去的,如果你对基本的语法有了一定的了解,应该尽快的去看一些带有实例的书籍,只有不断的在实践中摸索,才会进步的更快..
若是自己在语法结构上都是模棱两可,建议你还是从最简单的语法上面弄懂它再开始深层次的学习.当然,如果你C语言学的不错VB的语法应该是很容易接受的.学习的时候务必把每个知识点弄懂,达到细心,明察,力辩,慎行

最后,祝你能尽快的加入VB.NET的大圈子,做一个优秀的程序员.

#17
njbn2007-05-12 09:07
点.
#18
enjov20072007-05-13 12:50

我是刚入门的,目前只是兴趣,还诶有远大的目标,要说有,也是写个木马,让同学门刮目相看!你能各我只条路吗?请加我QQ:491809670。

#19
独舞2007-05-24 20:30
回复:(njbn)大致明白了.让Viviwei大哥费心了.感谢...
好贴补分老贴新贴,尤其对偶们这样的新手,顶起顶起啊  
#20
Viviwei2007-05-25 10:05

谢谢你!

#21
ysbbda2007-07-13 11:40
回复:(Viviwei)谢谢你!
谢谢咯 这下学的时候 可以少走弯路了
#22
gedachong2007-08-02 13:35
谢谢了
收益匪浅
现在正在做vb.net 但是对编译原理不是十分了解
这样会影响以后的程序设计马?
#23
lyfist2007-08-10 15:05
好帖,大家说的都很好,受教了。
#24
河南大学2008-11-17 13:08
新手特来讨教···
#25
不信任爱2008-12-15 10:32
谢谢楼主的指导,说的很好!觉得自己有点惭愧!
#26
houzhen2008-12-16 17:23
好。
#27
千千幽魂2010-04-04 22:16
我刚学C语言,很值得反思,顶!
#28
yz86296002010-08-12 16:04
学习了。顶一下
#29
xiaohongz2010-08-17 17:46
受益匪淺
#30
vistawux2010-08-29 23:08
看了之后感觉自己不是一般的菜啊~!
#31
starjun142010-11-30 19:59
好啊..
#32
summerkiki2013-02-21 09:05
不错的建议,支持
#33
豆腐。口fu2014-03-23 21:42
收藏了,以后再回头看看也是不错D
1