分享
 
 
 

编程学习之路

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

鉴于我们班同学中有对学习编程有极大兴趣的人,我想有必要将我在大学中的学习经验写下来,供大家参考。(本文是专业性文章)

一。看清形势

首先我要说干什么事情一定不能犯方向性的错误。我有必要回顾一下软件开发的三个大的阶段。八十年代,主要的操作系统是 Unix, DOS ,程序语言主要是 C , 开发方法是面向过程的自顶向下,逐步细化,我们在大学中学C语言时用的Turbo C 2.0 就是主要的开发工具。到了九十年代,操作系统成了Windows,程序语言是C++,开发方法是面向对象,开发工具有Microsoft的VC++, Borland 的 BC++。而我们现在所处的时代是 Web service 的时代,操作系统已经是Microsoft的 .Net和Sun的J2EE ,程序语言已经是 Microsoft 的 C# 和 Sun 的

Java ,开发方法是面向组件,工具是 Visual Studio .Net ,Jbuilder。

程序开发的主流绝对不在中国,是在美国,作为不是优势产业的软件我们没有办法,只能跟着别人走。而全球的领先技术是掌握在像 Microsoft 和 Sun 这样的大公司手中的。跟着微软走已经成为软件业的一条至理名言。微软实在太强大了,历史上有多少公司都被它给搞跨了,比如 Borland, Netscape 。我们没有选择的余地,想想微软的 Windows 一流行,有谁还去用 DOS 下的软件,一大批 DOS 高手还不是去啃跟天书一样的《programming windows》,

《inside vc++》。

二。语言选择

我们首先认清了形势。下来我讲我们的选择。对于初学者,光去学 C 语言是远远不够的。这只能让你对程序语言有一个大概的了解,比如什么是变量,什么是函数。依我的经验在初步有所了解之后应马上去学习C++,这可是一个比较艰辛的过程。可以看一下清华的《C++语言程序设计》,这是一本入门教材。这时的学习是单纯语言的学习,不涉及任何实际的开发,比如 windows程序开发,初学者开始最好不要去碰 windows.

在你比较熟悉 C++ 之后最好去学一下数据结构,我推荐一本经典的教材《数据结构 C++语言描述》,这本书我至少看过三遍。看这本书有三方面的收获,一是进一步熟悉 C++ ,二是学习了数据结构,三是了解了面向对象的设计方法。

在这之后就可以去看 windows 编程了,对没有做过 window 编程的人,这种学习可能让你马上想放弃,因为 windows 编程实在太复杂了。一个很简单的 Hello World 窗口有近一百行的程序,而且让人看不大明白。我不太推荐绕过学 win32 api 去直接学 mfc,这会让你吃尽苦头。大家最好是去先从《programming windows》(北大出版社有相应的译本,不过挺贵的,上下册160元)开始吧,这里你可以学习到 windows 程序的内部机理,像消息循环,资源,窗口。

正是由于直接用 api 开发太麻烦了,所以就有了 mfc ,不过这东西好像更繁了,我现在不大用这东西了。

这里真正有价值的是 win32 的 api ,这对你以后的编程学习有很大的好处,比如对 mfc机理的了解。说到底操作系统就是一大堆系统调用的集合,在 windows 下就是 win32 api 。后来我看 win32 汇编方面的书时,其实也就是在调用 win32 api 。

在学 windows 的同时应该继续学习 C++ ,C++是一个大的课题,包括很多的东西,我现在在看 C++标准库方面的书,用的书是侯捷译的《C++标准程序库》和他的《STL源码剖析》。在学数据结构时想那么多的 ADT 和算法是不是都要自己去写呢,我接触过 STL 后就没有这种担心了,STL 里提供了你所能用到的几乎所有的东西,而且是程序大师帮你写的。C++之父的经典著作《C++程序设计语言》中已经将STL视为标准C++的一个部分了。这时大家可以看一下潘爱民翻的《C++ Primer》,绝对经典。

有了好的 C++ 基础后,就可以去学一下业内主流的语言 Java 和 C# ,其实学习它们很简单,都是衍生于 C++ ,语法基本一样,只是它们是纯面向对象的语言,添加了对于组件的支持。Java 可以用《Java编程思想》这本书,侯捷翻的,很不错。 C# 书就多了,我用的是清华翻的那套,《beginning C#》,《advanced C#》。为什么要学这两种语言,因为微软和Sun 都把未来压在分布式计算之上。未来的程序是运行在网络空间之中的,Java 的流行就揭示了这种趋势。

三。专业课程

下来我讲讲计算机的一些专业课程的学习,很多人认为只要学学语言就够了,不需要学专业课程,随着学习的深入,我渐渐体会到这种想法是不对的。像《操作系统》,《计算机组成原理》,《编译原理》,这样的课程,你学的时候不觉得,但在编程中的一些东西你如果明白原理的话,就能深入理解。比如编程时按行访问数组和按列访问执行的时间就不同,这涉及到了《操作系统》中的虚拟内存的原理,《applicated operating system concepts》里有这个经典的例子。

操作系统方面的书很多,大家学习过之后应该看一下《操作系统,设计与实现》这本书,它的好处是结合一个小型的教学用的操作系统 Minix 来讲,可以结合源代码来学习,Linux对初学者有点太专业了,其实 Minix 也是类 Unix 的,当初 Linux 本人就是看了这本书才决定自己写 Linux。

我再推荐一本《程序语言,设计与实现》,这本书可以让你对语言中的各种元素有深入的理解,比如变量在计算机内如何实现,程序执行中内存怎样分配。

四。方向选择

计算机科学是一个大的学科,很多的分支学科,计算机图形学,人工智能,实时控制,分布式计算,我们也不可能有那么多的时间去学习它的方方面面。可以捡自己有兴趣的地方深入学习,我选的就是计算机游戏来学习。《Windows 游戏编程大师》是入门的教材,主要讲DirectX 。游戏编程是一个大杂烩的方向,涉及计算机图形学,人工智能,数据结构。

计算机科学也有一些普及性的书,比如《编码的秘密》,《计算机信息处理》,这些书虽然不是专业性的书,但能让人对计算机科学产生浓厚的兴趣,蛮有意思的。

五。开发实践

计算机编程绝对是需要实践的东西,你想整天看看书成为高手,这是不可能的。你必须去做。学习教材时书上有很多的例子,你可以运行它,作一些适当的修改,有些书的例子是非常经典的,比如《数据结构 C++ 语言描述》的源代码,SGI的STL源代码,这些东西网上都能下载到。

开始做程序不要想着自己去做一个OFFICE,这是不可能的,给自己选一个小的题目,有实用价值的。比如我经常打印一些程序的源代码,因为一个一个文件去打印很麻烦,就自己用C# 写了一个文件合并的程序 Multi2One ,功能很简单,就是可以把几百个文件合并成一个文件,但它对我特别有用。省了我大量的时间,做出来之后也挺有成就感的,我整整在宿舍座了九个小时才写出来。

也可以找一些志同道合的同学一起开发,我就经常和计算机系的一个同学,还有软件学院的一个同学一起做些东西,大家在一起可以培养团队精神,相互交流,资源共享。

六。常用工具

C#:Visual Studio .Net

Java: Sun Java 2 SDK

C++:Dev C++

Win32asm:Masm32v7

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有