半吊子
日历
网志分类
· 所有网志 (82)
站内搜索
友情链接
· 歪酷博客
· 我的歪酷 非非共享界

订阅 RSS

0069901

歪酷博客

« 上一篇: 关于自学 下一篇: 关于Team »
天地间有我 @ 2005-08-30 11:44

昨天说了,今天谈谈技术,那我今天就谈谈我现在手上的技术。

又回到去年《程序十年》(前言第一章第二章第三章)中的问题了,小学时候的BASIC,中学时候的PASCAL,以及一直贯穿其中的学的不系统的算法和数据结构给我大学这三年真的有很大的帮助。先罗列一下我这几年都干了些什么吧:

2002年10月~2002年12月,大一上,在学校没有开课之前,我用谭浩强大叔的书自学C语言。拖拖拉拉的用了两个月,其实真正学习的时间加在一起的也不多,主要是大一上比较老实,还是以学校的课程为重。这段时间C语言的学习,主要是吃PASCAL和结构化编程的老本。没有什么深入的研究C语言的灵魂——指针。

2003年03月~2002年06月,大一下,学校开C语言的课了,这几个月可以说一直在跟“指针”这个C语言的灵魂打交道,我一直标榜自己“没有用不了的指针”。一直最满意的是,在C语言课程设计的时候,灵活使用指向函数的指针被老师说成有“虚函数的思想”。虽然那个时候我是一点面向对象的概念都没有。

大二上,浪费了一个学期的时间在学校的工作上。

2004年02月~2004年06月,大二下,回到了我最爱的编程上。这段时间也就是我昨天提到的第一个段充实的日子。学校开了“数据结构”这门课。那段日子,星期一和星期三的上午都有两节数据结构的课,因此,这两天的下午的课可以说一个学期是没怎么上过。上午课程上说到的内容,我肯定是会再当天用最熟悉的C语言表达出来,在把课程后面的一些实践性质的题目做出来。在这段时间里面给自己建立起来一套数据结构的函数库,这套函数库一直使用了很长的时间,再后期做一些试验模型的时候经常使用,就是再参加ACM的时候,也CTRL+V过来很多那个时候的代码。

2004年02月~2004年05月,同样是大二下这段时间,还有一件事情,就是参加了04年5月的软件设计师(高级程序员)的考试。这是老大纲的最后一次软考,高程中还是有汇编题目的,我一致认为这才是真正的高级程序员考试。看看现在的高程大纲……实在不知道怎么说。当时我大二,高程中有很多课程我是没有学过的比如操作系统,数据库原理,编译原理,软件工程等等,其实,我第一次看到高程题目的时候,能马上做出来的也就是算法题目,C语言的题目,还有一些基础知识的题目。大概也就这些了。那段时间,每周六早上5点起床,坐两个小时的巴士从南汇到五角场上辅导班,上到下午6点,再坐两小时的巴士回去。累是真累,不过复旦的那三位老教授讲授的真的很有艺术,短短几句话就能把复杂的问题说的很清楚。由于操作系统,数据库原理的提前学习给自己大三腾出了时间。

2004年09月~2004年10月,要我自己说,我觉得还是挺不好意思的事情,我和两个最要好的两同学,一个是系里数学功底很好的同学,一个是英语很好的同学,再加上我这个实践派的人组成团队参加了ACM2004竞赛。那段时间,三个愣头小子每天在一起讨论ACM的历年真题目,有的时候在某一个人的寝室一闷就是一天,都能闻到对方身上的汗馊味。可是最后结果,我也不想再提了。不过,这次竞赛让我第一次的真正重视起了程序开发中的效率问题。

2004年11月~2005年01月,当老师第一次找到我的时候,问过我两个问题,“熟悉SQL SERVER 2000吗?”“熟悉Delphi吗?”当老师面对着两个否定回答的时候,我也不知道为什么他还能放心的让我参与他们的项目的开发。之后的一段时间上的最多的网站是“大富翁论坛”和“Delphi盒子”。Delphi的上手到时一件很快的事情,我可是有六年使用PASCAL的基础的,由于我开发的部分对SQL语句要求不是很大,只是一些简单的SELECT,所以开发过程还是挺顺利的。但最让我头疼的就是不停再变化的客户需求。这次的项目是一个事业单位的后勤系统,我制作的是员工体检表管理部分。客户需求从最初的简单通过姓名工号的查询,变成最终的要能自动列出每个员工的医药费预测和职业病的复杂查找。可能对于有多年定制软件开发经验的前辈来说,这是很简单的需求,可是他着实让我在头痛中通宵了不知道多少个夜。

时间进入到大三下的,这是一个很杂的学期。但基本集中在计算机图形学和多媒体技术两个领域。

开学之后最初的几天沉迷在BMP文件中,每天晚上就是对着文档和UltraEdit研究BMP文件格式,今天是总结就不详细说我的研究过程了。在研究过程中写过不少实验型的程序这些大多数是用纯C写的,我要得到和观察的都是一些十六进制和二进制的数据。研究的到最后我使用C++封装了一个可以一套可以读取任意格式BMP文件的类。这个过程大概有4周,这段时间的成果有两个,一个是模拟ACDSee写了一个只能读取BMP格式图片的浏览器,一个是模拟PhotoShop的滤镜写了14个虑镜,其中包括马赛克,任意扭曲,模糊化,镜头光晕等效果,最终两个成果合并成一个项目,是使用Delphi开发的。

在读取出BMP之后顺理成章的想去碰碰网上最流行的JPEG。这是一个痛苦的回忆,主要问题出在我的数学功底上,面对这正向余弦离散变化的公式很是害怕,还有一个就是JPEG不是一个压缩算法能完成的,其中设计到行程编码(RLE)和Huffman这样经典的无损压缩算法。还有一个棘手的问题就是文件格式问题,同样是JPEG文件,但格式却有千奇百怪的。最终我通过很多限定,制作了一个可以控制量化精度的BMP转JPEG的程序。不得不提的就是,这是我第一次体会到“复用”。在读取BMP部分,我使用了我前面封装的类。这个简单的格式转换程序也是我第一次使用MFC。

可能我有的时候是很偏执的,当我开始学习C++的时候,我放言绝对不跟着Microsoft走,我学的是C++不是Visual C++。所以,我很多时候宁愿蹩脚的去使用GCC编译我的程序,或者使用开源的IDE也不愿意使用Microsoft的Visual C++。但当我实在不愿意在Delphi下编写复杂算法的时候只能自愿的转到Microsoft的怀抱下。插一句,为什么不愿意用“Delphi编写复杂算法”。很简单,我自从学了C之后,一直认为C的代码是最美的。用Delphi除了非常喜欢Delphi7这个IDE之外一直没有对Delphi有什么感情。学习MFC的过程其实是很快的,可以说是在研究JPEG过程中见缝插针学的。我给自己提出的要求的是——不要问什么要这么做,只要知道怎么做——当然是这是在初期。在完成JPEG之后时间已经到了学期中期,应该是已经为一些课程的大作业做准备的时候了,我却用读上了候杰大师的《深入浅出MFC》。不敢说真正认识了MFC,但我却是第一次被Microsoft所折服。虽然很多前辈一直在告诉我MFC有他不好的地方,但在读《深入浅出MFC》的时候,是我思维最开阔的一段时间。

进入学期收关阶段,我道是很“洒脱”的放下学校的课程复习,去开发了一个叫我命名为My3D的软件。说白了就是模拟经典软件3D MAX。按照我的想法开发这个东西有三个目的:
     1、锻炼自己的面向对象思想,这也是最主要的目的;
     2、熟悉计算机图形学中算法,包括二维三维的一些算法;
     3、熟练MFC的开发。
现在看来,My3D是一个失败的作品,由于我构架类构架的太大了,到最后为了能按时教作业,到最后可以说是核心算法部分不是一点面向对象都没有使用,成了一个单纯的算法演示。不过,我一直很喜欢My3D,我一直希望能有时间把这个东西按照我最初的想法开发下去。

跌打滚爬的考完了课表上的课程,进入了课程设计——多媒体技术和网络技术课程设计。网络部分一直是我最差的课程,硬件部分的组装调试我丢给同组的同学,我选择开发了一个Windows环境下的Ping和Tracert命令,当然不是简单的模拟“ping 192.168.0.1”的过程,而是可以象命令行中有参数的。这个开发也是在MFC环境下的。

多媒体课程设计中,我制作了一个我至今最满意的作品——WinLPM。从我之前的一些文章中大概也能看出我对WinLPM的喜爱了。用当时的话来说:LPM无论是Love Pan Meng还是LZSS Pack Machine至少我对得起一句I am so proud of you

大学三年来,学习和开发总结一下大概也就是这些,又回到一个痛苦的话题:由于“本本出走”事件,很多源代码已经无处可寻,保留下来的也就是WinLPM,My3D和那个商业Delphi的员工体检表管理。最心痛的是数据结构函数库和那个ACDSee的模拟。

今天是第二天上课,不过这学期的开发计划已经有了,大四了时间不多但事情很多,可能开发的不能太尽性了,按照老师提出的要求一定会做的是模拟XML SPY,暂且定名为MyXML吧。还有一个是UML课程上,我想能配合UML课程,软件工程课程,Oracle的课程和我在考的系统分析师中学到的知识,用工程的思想一个人开发一个大型的系统,题目可以经典一些,比如医院,图书馆,仓库等管理系统。题目还有过些日子在定,不过这个东西我是一定要做的,重点可能不会放在Coding上,我会把重点放在项目分析和文档的撰写上,不过我想代码写起来问题也是不大的,只是不会因为写这个代码占用别的时间。

最新评论


candy

2006-01-18 22:32

在你的blog逗留了一个多小时,总得留几个字记念一下咯^_^东西写得不错的。问下-你是哪个学校的?专业-se | cs?


评论 / 个人网页 / 扔小纸条
* 昵称

已经注册过? 请登录

新用户请先注册 以便能显示头像及追踪评论回复

Email
网址
* 评论
表情
 


 

分类小组论坛
杂谈 , 娱乐、八卦 , 文学、艺术 , 体育 , 旅游、同城 , 象牙塔 , 情感 , 时尚、生活 , 星座 , 科技

请注意遵守中华人民共和国法律法规, 如威胁到本站生存, 将依法向有关部门报告, 同时本站的相关记录可能成为对您不利的证据.

相关法律法规
全国人大常委会关于维护互联网安全的决定
中华人民共和国计算机信息系统安全保护条例
中华人民共和国计算机信息网络国际联网管理暂行规定
计算机信息网络国际联网安全保护管理办法
计算机信息系统国际联网保密管理规定