C++编程经验总结

不知不觉,已经走了两年半的编程之路了。在人生的历程中,我是时候在这里停下脚步来做下总结了。

在我对计算机还是什么都不懂的时候,在我接到大学录取通知书的时候,在我渴望寻找一条谋生之路的时候。读了这么多年书,不就是为了能过上好生活吗?无论原因为何,最终我选择了编程之路。

编程之初,我从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。涉及底端的应用的时候,如果原安装程序没附带足够的配置文件的话,还要另外配置。另外,在远程开发的时候,还要注意权限问题,一般将权限改为777,文件的所有操作都能实现了。我的Ajax技术还没搞好,这个就不谈了。

学PHP难免要学HTML,超文本标记语言。HTML的学习要运用好表格和表单。另外就是注意一下绝对路径和相对路径的问题。其它的内容,由于我很菜,这里就不多介绍。

学习JavaScript,我就没学,凭着理解用一点点。PHP中一些中高级的运用就是要靠JavaScript的。

学习Mysql,Mysql号称是PHP的最佳搭档,当然也要学习Mysql了。应用方面要懂得mysql语句。

学习CSS,学习CSS主要是为了增强HTML的运用。

此时我站在人生的一个重要的分岔口,摆在我面前的是C++、ActionScript3.0、PHP(按学习先后排名)三种语言,我必须得选一种语言去发展。C++学的时间最长,但考虑到学好C++要花很长的时间,家庭经济并不允许。PHP是借助ActionScript3.0学来的,只学了10天,并不是很有把握。ActionScript3.0对于我而言,可以缩短学习精通的时间,发展前景又好。因此我选择了ActionScript3.0。

ActionScript3.0(以下简称AS3)。AS3开发最初产生swf文件。生成swf文件直接在DOS窗口下结合Flex SDK输入命令就可以了,源码可使用任何你喜欢的编辑器进行编辑,我用的是EditPlus,不需要任何IDE,要提高效率可借助Apache ANT等开发包。如果很注重效率的话,那么可以选择IDE去进行开发。与美工比较亲近的IDE有Flash CS4、Flash CS5等CS系列的软件,与程序员比较亲近的有Flex Builder2、Flex Builder3等Builder系列的软件。AS3包含页面和桌面两种技术,页面技术可使用Flex做开发,具体还在研究当中;桌面可进阶到AIR。具体可参见http://user.qzone.qq.com/894848240/blog/1292411941(我的另一篇日志)。

下面的经验就没有时间上的排序,因为下面要学习的东西是编程道路上时时刻刻要学习的东西。

学习算法。刚学的时候,接触了一些做数字蛇等的题目。后来主要是碰撞算法,我在做个第二个撞球游戏的Demo时就用过。Astar算法,一些人工智能算法。

学习数学,基础推荐学习奥数。中层一点的就要学习代数和几何的知识。这里我也很菜,不敢多说。

学习以上这么多就够了吗?那我还花两年时间干嘛。下面只针对底层给出额外补充书籍。

C++补充书籍:21天学通C++第五版、C++ Primer 3rd Edition 中文版、C++程序设计(清华大学出版)、C++程序设计教程(第二版)钱能著。

Windows API补充书籍:WindowsC程序设计入门与提高。

数据结构:数据结构–习题与解析 C语言篇(修订版)。

算法:算法导论。

展望未来,可能插手DirectX。扩展物理引擎和游戏框架,往RIA方向发展,做网页游戏。

声明: 未经本站许可,谢绝转载!

0 个主题帖 其中:热心观众:0 个, 管理员:0 个

抱歉,评论被关闭