就在我被“动态规划”整得焦头烂额,正打算暂时放弃算法学习的时候,有一件事情吸引了我的注意力
在一次办公室闲聊中,我偶然了解到学校的教师签到系统是本校吴建义老师开发的
没想到二中还有和我一样爱好编程的老师,而且水平明显比我高
于是我连忙去拜访吴老师,了解到他早在 2003 年就开始学习网络编程了,为了方便办公,他为学校开发了包括值班教师登记,教师签到,教师荣誉登记在内的多个系统
听了吴老师的介绍,我觉得这些年自己用功的方向错了,花大量的时间去研究数据结构和算法,做了许多信息学竞赛题目,但一直看不到成果,虽然也写了一些小作品和大量博客文章,但都属于自娱自乐,没有创造实际的价值
其实我也曾经想过做应用程序,还花了很多时间研究 C++build ,但弄来弄去,只写出了一些诸如“身份证信息提取器”,“数独计算器”等实用性不强的小作品
看到吴老师写的东西给自己的工作带来方便,也为学校带来了效益,我深受启发,决定改变学习方向,不再研究深奥抽象的算法,而是改学网络编程,做些实实在在的东西出来
我问吴老师是用什么语言编程,我该从哪里开始学习
吴老师告诉我,他使用的是 ASP 语言,不过这种语言有些过时了,现在比较流行的是 PHP 语言
他还发给我一些 PHP 学习视频和服务器安装软件 appserv
就这样,我开始了 PHP 学习之旅
由于有了 C/C++ 语言的基础, PHP 的学习还是很轻松的
我简单看了李炎恢老师的几个视频教程后,就直接到 w3school 网站进行系统的学习了
w3school 网站几乎涵盖了所有的 web 编程技术,但都写得很简单,如果要深入学习,必须另外去查找资料,但它确实是一个非常棒的网站,我在这里学到了很多网络编程和网站建设的知识
寒假到了,我买了《 PHP Web 开发实用教程》和《 PHP 典型模块精解》两本书,计划在寒假里好好学习
通读上面两本书,照着《 PHP 典型模块精解》写了几个小案例后,我开始尝试写一些小作品
最开始我模仿吴老师的程序,写了一个教师通讯录,获得了吴老师的肯定和鼓励
然后我又写了一个“班主任助手”,用来统计学生历次考试的成绩
它的原理是读取每次考试成绩的 excel 文件,提取每个学生的信息,再为每个学生创建一个表格,把历次考试各科的成绩都整合到这个表格中,并与班级平均分比较,从而可以看出该生各科成绩的变化趋势
这个软件写出来后帮了我很大的忙,我每次找学生分析成绩都会借助它,用数据说话,帮助孩子客观评估自己,找到努力的方向
每到期末,班主任就要上报本班的各类先进名单,学校内网上安装了一个“各类先进名单申报系统”,它提供了一个申报页面,每次只允许班主任申报一个学生,每次都要重复输入年级,班级,姓名,性别,奖项,思想品第,体育成绩等信息
每个班级都有二十多个先进学生,这样填报下来起码要半小时以上,而且还容易出错——例如选错年级或填错班级序号时,系统并不会报错,班主任一时也不会注意,只有到最后查看本班上报情况的时候,才会发现少了几个人,但具体去哪里了并不知道;而另一个班级的人就会莫名其妙的多出几个来
做了几年班主任,每个学期末都要被这个系统“折磨”一顿,以前没办法,只能忍受,现在会网络编程了,无论如何我得改进它
花了一个星期,我重写了申报系统,界面和原来的系统差不多,但增加了批量导入数据功能,班主任可以在 excel 表格里填好信息,再上传文件,这样几分钟就可以搞定了,而且几乎没有填错的可能性
申报成功后,班主任还可以按照“班级”,“姓名”或“奖项”等方式查询上报信息,如果出错了还可以修改
实际上“爱运动管理系统”中的报名系统就是沿用了这种做法
经过测试,我感觉自己新写的系统比原来的要好用的多,就兴冲冲地把它推荐给了学校政教处,政教处何邦老师试用了以后觉得还不错,就采用了我开发的系统
后来政教处又让我帮忙写了“主题班会资料上传系统”和“黑板报资料上传系统”,这两个系统的工作原理是一样的
与其他的资料上传系统相比,它有两个优点,一是可以在不打开 word 文件的情况下,直接点击在网页上查看上传的内容;二是系统会根据上传时间自动按月份打包文件,方便管理员下载
上述几个系统都已经在学校内网上默默运行了一年多了,提高了政教处的工作效率,也为班主任减轻了不少工作量
虽然我个人并未因此获得任何的奖励,但看到自己写的东西能派上用场,我的心里已经很满足了