不知不觉,已经走了两年半的编程之路了。在人生的历程中,我是时候在这里停下脚步来做下总结了。
在我对计算机还是什么都不懂的时候,在我接到大学录取通知书的时候,在我渴望寻找一条谋生之路的时候。读了这么多年书,不就是为了能过上好生活吗?无论原因为何,最终我选择了编程之路。
编程之初,我从C++学起,使用书籍--21天学通C++(第四版)。在高考完后,感觉自己学习能力正强,于是满怀信心地学习C++。学习知识总是苦闷的,在学到数组、指针之前,我想找些题目来考验一下所学知识。于是我做了几道有趣的题目,比如显示"Hello World"、质数的判断、倒三角的显示、用三目运算符代替ifelse条件语句作判断等等。不管题目做得怎么样,总算有了二次原动力,继续学过数组、指针、引用,在到达类之前,已经有点模糊了。怎么办?再来做题。很不幸,这次不会做了。第一次感觉自己可能走不下去了。翻翻书,看到一句话--编程就是越往后学,才会越清晰(我已经记不清原句了,大概是这么个意思)。放弃?想起丘吉尔说过,绝不轻言放弃。好的,我捉住一线希望,继续前进,一口气学过了抽象类。原本打算继续学习静态方面的内容,但由于各种原因,被打断了。在之后的一个月内,我静心研究数组、指针、引用、类等内容,小有所获。在此基础上,我继续前进,越过了静态内容,但在包容、授权的内容下再次遇阻。这次要阅读的代码量竟然超过了300行。大概又读了几天,半懂半不懂地过了。一路又去到了模板,把模板的程序敲进去,结果有BUG。自己怎么改也改不对,于是百般无奈地发贴提问了。再等了几个小时后,终于得到了解决的回答。解决了吗?当时自己也不太清楚,但是代码运行通过了。后来费尽最后一口气将剩余的异常内容给吞下去了。
学C++时还兼学了Windows API,使用书籍--Windows程序设计。这是一本宝书啊!刚开始学就学到图形基础那一章,了解了Windows消息机制中的基本内容。然后想做点东西,做什么好呢?期间接到了一个做计算器的项目,做个计算器吧。找了一份类似的代码来参考,总算做出基本的功能,但是离客户要求还很远。由于知识缺乏,最终项目告吹。之后又断断续续地学到了鼠标那章。然后报名参加了学校的高校杯,拟定开发一个撞球游戏。在开发这个游戏的过程中学到了很多东西,包括一些编程模式、一些PhotoShop处理、统一建模语言UML、打包作品方式、正式运用C++的面向对象思想与Windows API的结合、软件工程实战。开发周期花了我2个多月。往后又重学了Windows API,这时学到了剪贴簿一章。这期间,自己又开发了五子棋游戏,主要是Windows API结合C做。还帮同学开发了10多款通讯录。在这期间,可以说磨练了我Windows API的基础。之后又参加了腾讯QQ主办的开发大赛,我主要参加了桌面开发部分,作品格式以动态链接库提交。之后尽管我很拼命地学,但是在学完动态链接库那章之后,作品已经截止提交了。剩余两章至今还没学,但已经略略看过,运用了其中的一些东西。
在这之前花了1年时间(科学学时:半年到一年半)。在有了一双强劲的鞋(以上的知识)之后,往后的编程之路就好走一点了。
之前有提到C语言,学习C语言主要是因为学校开了这门课。采用书籍--C语言程序设计。对C语言的学习,基本上就是对C++一部分内容的复习,所以很全面很快地学完了。主要认识了面向过程的编程和文件的操作。感觉文件的操作挺有用,尽管C++里面也有文件操作,但自己总是习惯用C的文件操作。在撞球游戏里面就用了C的文件操作去存储地图信息。
接着,学习了ActionScript 3.0,运用书籍--as3.0编程。这本书至今只学到客户端系统环境那章,每天一章,花了我将近一个月时间。学习ActionScript 3.0是为了参加Adobe公司举办的Flash开发大赛,可惜连名也没报到。在学习ActionScript 3.0时,只是在开始的时候遇到麻烦,遇到麻烦后我暂时放下学习工作,去玩游戏。在清了一下头脑之后再去学习,这里要说明的一点是保持头脑清醒是很重要的,无论是以何种方式去获得放松,个人推荐玩游戏。之后一直学到了ActionScript3.0网络编程部分,在网络编程部分遇到了很大的困难。之前一直在做单机软件,因此一时遇到网络知识,难以接受。ActionScript 3.0网络部分需要结合服务器测试,而对于服务器有两种选择。一种是使用Flash的专用服务器,包括官方的FMS2和开源的Red5,这两种都要求会配置,因为我英文水平低,因此读不了配置文档。有人会说,翻译不就行了,专用术语在翻译中稍有不准确都失败,我就不提倡使用翻译软件,除非是专用的。另一种是自己编写服务器,编写服务器可用C#、C++、ASP、JSP、PHP等语言,至今我只会用C++和PHP编写服务器,而试过与AS3客户端做连接并成功的仅用过C++。但在联机程序中使用AS3做客户端显然是很难的,或许因为我还菜吧。原因是AS3对底端的限制很多。
在编程经验中插入一些美工经验的介绍,我认为是必要的,至少对于同时兼任研究策划的我来说是必要的。因此下面介绍一段美工经验。
我的美工经验来自于Flash,因为我在从事ActionScript3.0开发时常常需要结合Flash美工制作。学习Flash美工采用书籍Flash CS4标准教程。此书安排合理,非常适合初学美工的人,但并不完整,要想提高,请另外参考专门的技术书籍。此书的热身篇,主要是让我们认识一下Adobe Flash CS4这个编辑器的界面。起跑篇非常重要,是美工的基础知识,包含制作图形、编辑图形、动画制作等等的运用。加速篇包含多媒体的应用、基本脚本的编写、组件的应用、文件发布等一些知识。冲刺篇就是综合运用前面所学知识。结合ActionScript3.0,使用美工技术,为打鸭子游戏制作了鸭子图片等,为猜数字游戏制作了界面,为单机斗地主游戏制作了图片和动画,为音乐播放器制作了界面。
之后,学习了数据结构。数据结构采用书籍--数据结构(耿国华 主编)。该书也就学到了内部排序的快速排序小节而已。之前的例子全部实现了,但由于很少运用,要用的时候还是要翻看程序。
操作系统的学习,做了生产者消费者问题的题目。还有分别使用Windows API和MFC实现了多线程程序。
往后,学习MFC。主要是学习MFC对话框的运用和图形的处理。我只学了一点MFC基础,还没入门,这里就不敢详细介绍了。
之后学习PHP。学习PHP,投机取巧的人可选择EasyPHP,否则就要面临配置问题。我两种都试过,刚开始接触PHP的人推荐用EasyPHP以了解和认识PHP先,然后看你的领悟能力。我是在了解和认识PHP后,换用配置软件来进一步学习PHP的。使用apache做服务器,再安装PHP,最后安装Mysql数据库。为了更便于数据库管理,可以使用phpMyadmin图形管理软件,当然也要配置好。配置的时候注意版本搭配。用什么编辑器?视乎个人的喜好,不想另外使用软件的话,用记事本就可以了。我用的是Editplus。涉及底端的应用的时候,如果原安装程序没附带足够的配置文件的话,还要另外配置。另外,在远程开发的时候,还要注意权限问题,]] >