程序员之路
“程序员”,提起这个名称便让我们的脑海中闪出一长串名字:一手开创现代软
件业恐龙──Microsoft的比尔盖茨;中国民族软件业之代表金山公司的掌门人─
─求伯君;微软的噩梦、自由软件的代表、Linux之父芬兰小伙子Linus
这些在IT业内被无数人津津乐道的名字。在这里,笔者从一个职业程序员的角度,
想和大家谈谈自己的感受。
为什么要做一个程序员
提到这个问题似乎会让人觉得太简单、太幼稚。看看现在程序员舒适的工作环境、
丰厚的薪水、过着“快乐”的白领生活,一切仿佛都不言自明。其实这是只看到
了程序员的一面。我们的另一面则不为大众关注:没日没夜的工作,通宵加班是
家常便饭;整天和键盘打交道,把自己的这些枯燥的生活又有多少人能切身体
会?没有对软件事业本身的执著、对源代码近乎朝圣般的痴迷,这一切都是普通
人不能忍受的。但是当你的程序完全通过了测试,成为一个合格的产品。这个时
候的喜悦,又是如此?
有规矩,成方圆
程序开发是一件灵活性很强的工作。例如:变量I增加1,在C语言里面可以有
I++、++I、I+=1、I=I+1等多种写法。但是,这并不说明编程就可以随心所欲,
天马行空。良好的编程习惯可以提高工作效率,减少不必要的失误。尤其是对初
学者来说更是要注意的是:
第一点:编程的时候,首先要建立好的数据结构。编程序的时候,如果在开
始数据结构设计错误,那么在后来你不得不花大代价来修改程序。笔者自己就曾
有过这样的惨痛教训:一个程序写了2500多行,突然发现基本数据结构不合理,
结果全部推翻重写。“磨刀不误砍柴工”
第二点:代码尽可能重用与模块化。无论是面向过程还是面向对象,代码重
用都是基本原则之一。例如:如果要画一个青苹果和一个红苹果,就写一个函数
来画苹果,把颜色作为参数传进去。这样只要调用同一个函数传递不同参数就可
以画出不同颜色的苹果。这样做的好处一是程序?!---->
第三点:良好的编写风格。一个程序,不可能是绝对完美,以后永不用修改的。
既然要修改,就必然要重读和理解原来的代码。而良好的编程风格,可以使人更
方便和迅速理解程序的结 构,从而可以最大限度地提高修改的效率。在这里,笔
者举出一些比较好编程的风格要求:1.统一
Count明显比叫iii更容易被理解其真实的逻辑含义和数据类型。所以变量和函数名
多起几个字母,让它有意义一点,将来理解也比较方便。2.代码的逐层缩进格式。
这几乎已经成为一种标准,这种格式使得代码之间的层次关系非常明显,对于程
序的逻辑理?代码位置的有条理性。把相关功能的代码集中起来,放在一起,这样
在以后阅读代码时候,可以尽量避免在不同文件模块之间频繁切换。由于要考不
利于理解。如果循环的确太多、代码太长,就应该考虑重新再划分出更细的子函
数。好的编程风格当然不止这些,这也需要在学习过程中慢慢体会。
第四点:注重程序测试,注意异常处理。这往往是业余编程爱好者和职业程序
员的一个明显的差别。业余编程爱好者往往只注重程序可以正常运行,而职业程
序员除此之外还必须关注程序在异常情况下也可正常运行,至少可以正常终止。
而这是建立在对程序充份理解和测试基础上的?
千里之行始于足下。做程序员有更多的曲折和困难。但是只要真心热爱软件开
发,愿意为之而付出,最后将使你体会到个中乐趣。来吧,还犹豫什么,踏上这
条程序员之路,昂首向前走吧!
学编程是先学什么?
对于广大编程初学者来说,存在着这样普遍的认识:学习程序设计选择编程语言
很重要,开口闭口就是VisualBasic、Visual C++、Delphi、Power Builder等一些现在
比较流行的开发工具。经常看见有初学者问:我学C/C++,究竟是学
VisualC++好,还是学Borland C++ Builder好呢?或者就是要求在Visual Basic和Delphi之间
作出选择。学习程序设计和学习程序设计语言究竟是怎么一个关系?初学者究竟
应该如何取舍呢?就此我们打个简单的比方:学习程序设计就好比学习射击,而
程序设计语言就对应射击中的气枪、手枪、步枪等各种枪械。学习射击必须要选
择一种枪械,不可能没有枪还能学好射击的,也不可能同时学会使用所有的枪械。
但是,如果掌握一种枪械的射击,再学别的也就触类旁通了。因为在熟悉一种枪
械的同时,也学习了射击技术本身。再学其他的,自然事半功倍。学习程序设计
也是一样,必然要从学习一门程序设计语言开始入手。同时在学习的过程中?
建议:学习程序设计不必苛求一定要从某一种语言入手,可以在Visual
Basic、Delphi、Borland C++ Builder或者DOS下的Pascal、Turbo C(或Borland
C)中间选择自己比较容易接受的一种进行学习。从中主要学习的是编程本身的
思想,学习的是用程序设计的眼光来看待问题。或许,学习的效果不能马上看到,
但是可以学到扎实的基本功,而这对于将来的进一步发展是有很大好处的。这些
基本功包括:
一、强化逻辑分析和建立数学模型的能力
编程的目的是什么?是要解决现实中的问题。而现实中的问题是用自然语言描
述的,目前的计算机对其无法理解。我们要做的就是必须用计算机能理解的方式
将问题“告诉”计算机。也就需要我们对现实问题进行逻辑分析,建立合理的数
学模型,然后以程序和数据的形式输入计算机,R、G、B三色份量来各表示一种
颜色,对于颜色的处理被转化为对R、G、B三个整数的处理。我们只要改变这三
个整数,就可以将其改变成另外一种颜色。对于其它的现实问题,我们也要像
这样使其可以被计
二、数据结构和算法知识
程序设计发展到现在,已经有了一套比较普遍、完整的数学模型(我们称之为
数据结构)和对应这些数学模型的处理方法(也就是算法)。目前的程序就是以
此为基础的。在程序员中间流传着一句经验之谈:“好的数据结构是程序的一
半。”其重要性可见一斑。作为一个程序员
三、丰富的实践经验
程序设计本身就是一门实践性很强的学科。一个只存在于纸上的程序如同没
有翅膀的鸟永远不能飞翔在现实的天空。任由代码写得再巧妙,风格再优美,也
只是一张纸上的一连串字符而已。就好比是一份作文练习,或许写得很好,但是
不交给老师去批阅,和一张白纸又有什么区别呢?!
最后,作为一个程序员还有一点小要求:那就是身体素质要好,能熬夜才行。
Top of Form 1
选其器与善其事──纵谈编程工具的选择选其器相同主题的文章
“工欲善其事,必先利其器”──《论语》。很多人在学习软件编程时,都希望
选择一款优秀的编程工具。到书店逛逛,可以看到各种琳琅满目的编程书籍,可
是你还没有想好选择学习什么编程语言,也就无所适从,不知道该买什么书看。
要想学好编程,必须认真了解各种语言的特点,找准自己的学习方向。那么你首
先必须明确你想要做什么,你所感兴趣的是什么?进一步说就是:你现在想要完
成哪一方面的程序设计,你的程序主要完成的功能是什么?由此在众多软件中,
选择出适合自己的开发工具。
一、基础语言开发工具
诸如Delphi、VC++、VB等语言都是一种面向对象的程序设计语言,虽然每种
语言在对面向对象的支持不尽相同,但它们始终贯穿整个程序设计的思维方式的
主线。因此,要学好这些语言最开始不应该将重点放在某种语言的具体语法格式
上,而应该注重学习面向对象的基本理论
最容易的入门语言──Visual Basic
在掌握面向对象编程的基本概念的基础上,相对来讲,VB是比较容易入门的
一门语言。在学习VB时,应该注意抓住对象的精髓,避免凌乱和繁杂,注意掌握
对象和控件的属性和事件以及它们的功能和用法、主要函数的简单功能。最有效
的方法就是自己组织一个由简到繁的学习步骤,比如:在学习VB简单绘图功能时,
学着自己绘制正弦曲线;学习使用picturecl控件来制作一个液晶效果显示时间;在
学习API函数时,制作自己的任务栏图标。这种方法能够很好的帮助你掌握VB中
常用对象、事件的使用。
最灵活的语言──Delphi
对于Delphi来讲,如果你曾经学过PASCAL的话,你会发现很多东西都是“似曾
相识”的。确实如此,Delphi本身就是由和PASCAL结构类似的Object
Pascal编写而成。如果你有一定的PASCAL基础,学习起来当然更轻松一些。另外,
还应注意对Delphi中包的理解和应用。比如,对运行期包、设计期包以及自己建
立包应该注意的事项。在熟练掌握Object Pascal语言的基础上,可以把学习Delphi时
的重点放到如何使用Delphi编写Windows应用程序,Delphi数据库编程和创建控件以
及程序开发上面。
最强大的语言──Visual C++
VC++中由于有较完整的微软基本类库,使开发Windows应用程序变得简单而
高
效。它提供的复杂的资源编辑器,可以很方便地编辑对话框、菜单、工具栏以及
其他组成元素,因此它的功能强大,使用方便,但是和VB、Delphi相比,入门较
难、不容易掌握。学习VC++,应该首先把重点方在基本数据类型、输入/输出、
循环和数组、模板以及如何创建C++应用程序上面。在此之后,才应该进一步
学习VC++中资源编辑器的使用、ActiveX控件的使用以及编辑器优化等内容。目
前很多关于VC++的书籍中大部份都是对使用VC++各个版本开发应用程序的
介绍,而忽略了C++的基本知识,实际上,对于初学者来讲,直接从具体应用
程序设计入手而忽略基本知识,反而会在很大程度上加大学习难度,很容易丧失
学习的信心?!---->
当然在上述这些语言中,都提供有自己的数据库编程和Internet编□
'7b。在对程序本
身熟练掌握的基础上,你还可根据自己的需要选择学习。当你已具有一定程序设
计能力时,不妨自己设计一个现实、有兴趣的课题,自行开发、自行设计。这样
可以帮你很好地熟练
二、数据库编程
如果你主要是想完成数据库方面的设计,那么应该选择专门的数据库开发工具,
常见的有:SQLServer、PowerBulider等。假如只是需要完成相对简单的数据库功能,
那就仔细看看Access吧。花不多的时间,也能让你有很大的收获,另外,还有一
些专门用于大型数据库开发的工具如:DB2、Sysbase以及Oracle,这一类的软件一
般都需要有较扎实的数据库基础知识和一定的软件开发能力。如果你是从头开始
的话,建议不要一开始就去学习这一类软件。
PB和SQLServer主要是用于完成数据处理和数据库的访问。由于SQLServer和操作
系统兼容性较好以及在网络中的广泛应用,目前很多业余爱好者都选择学习它,
在学习SQLServer时,应把重点放在SQL语言的组成、SQL的事务管理以及SQL的查
询和优化上面。而PB则一直都是很多从事数人来讲,在学习数据库基本使用技巧
的同时,还应注意到在PB中,对于需要访问Windows特殊功能的应用程序需要调
用API函数,比如:控制鼠标、创建目录以及闪□
'7b窗口等。
在学习数据库编程时,可以尝试着完成一个完整的软件开发周期。从需求分析
隍7d始,亲身经历设计数据库、创建数据库前端、创建表格、完成常见查询以及输
出报表等全部过程。
三、网络编程
目前较为流行的网络编程工具可谓“风格迥异,百花齐放”。每一种工具都有
其独特的特点,在互联网实现上都有各自的优势。
在学习Java时,应该明确其中对象、继承等面向对象的基本理论,从根本上掌
握Java的运行机制。在学习中应把重点放在其语言基础、Java与ActiveX以及Java
Beans等组件之间的编程技术以及应用上来。你可以自己编一些较为经典的小程序
来加深基本技能的掌握:用Java的图形处理能力编写纸牌游戏,用AWT编写扫雷
或者俄罗斯方块、用Java的网络功能编写网络聊天室等等。
相对来讲,ASP编辑方式简单、容易上手、功能强大,早已被广泛采用。在学
习ASP时,应该首先对ASP相关的网络知识、Web Server设置、HTML语言等方面有
一定了解,在此基础上,注重ASP的主要编程语言VBScript、ASP的常用对象和组
件的学习。如果想对ASP有较深入的了解的话,还必须对其常用的数据库
SQLServer、Acess等具有基本的使用技能。你可以自己尝试编一个简单的网上投票、
网上超市等程序来加深对上述知识的掌握。
另外,值得一提的还有网络编程语言的“新秀”──PHP。它□
'5c脱了ASP只能使用NT或者Windows 2000为服务器操作系统的限制,对于数据库的访问较ASP更
快、更直接。但是目前对于初学者来讲,其语言比较难理解,安装相对复杂、可供参
考和学习的资料远不及ASP。同时在Windows中使用PHP,并不能够很好地体现其
优越性。因此,我们建议对于没有Linux/Uninx基础的初学者,最好不要从PHP学起。
网络编程还有一个很大的特点:处处留心皆学问。时常留意互联网上各个网站
的设计,留心他人的设计思想和创意,会使你的网络编程技巧进步很快。总的来
讲,网络编答7b本身难度并不大,但是由于其在具体项目设计上涉及范围较广,比
如涉及到与各种各样的数据库直接的接口、 学习语言的过程,是自己创造、自己
编程的过程,也是逐渐掌握、逐渐应用的过程。在学习过程中逐渐培养起良好的
编程思维、经验,逐步提高程序设计能力、找到更好的设计方案才是编程开发的
真正精髓和乐趣所在!
懂数据结构怕不行,我说的高手,不是在会不会的界限上,而是在能不能的界限上.
评论