大家好,今天继续回顾我与信息技术结缘的的经历,今天谈第一次学编程的初始经历。
2004年的暑假倾尽我的所有购买了第一台电脑,并捡到了一本编程书籍,按书中所描述,原来才知道所有电脑中的软件都是另有高人编写出来的,霎时间我激动得两眼发光——因为我想要成为能做出软件来的人!
我仅仅花了三天时间就读完了这本334页的书三遍,每一个概念都只能靠自己却顿悟,而且无法实践使用的情况下,居然我理解了什么叫循环,什么叫递归,什么叫变量类型,也理解了过程和函数的概念,心中早以按捺不住地想要一试,巴不得马上写出一个惊人的软件来。
事实上,我的电脑 里根本没有Visual Basic6.0这个工具软件,一切都是空谈罢了。2004年的一个乡村,几乎很少有人认得电脑是什么样子的,就算是学校的老师多数对电脑软件的概念都少得可怜,没有人能听得懂我的话,再加上自己本来就经常独来独往,沉默寡言,大概有些人觉得自从我买了电脑,连人也都不太正常了吧!
在那几天里,我不管怎么努力也不能打听到哪儿能弄到那个软件的安装包,大家可能无法想象那种情景是多么打击那种刚刚才燃烧起来的热情之火,今天我们下个软件也就几秒的事,可那时为了找到Visual Basic6.0的安装包,可真是让我折腾了好久,最后还是又重新回到重庆石桥铺电脑城才得到一张安装光盘。
软件几经周折才安装好,因为光盘并没有MSDN Library部分,让我反复安装了几次,而因为没有帮助文档部分,给后来的学习也增加了了无尽的麻烦。
就这样,一个22岁的“少年”在2004年那个酷热无比的假日里,窝在一间狭小的房子里开始了一条从来没有想过会走上去的“小路”。
那本书果然是为大学生学习准备的教材,如果放在大学课堂上,老师大可以补充讲解很多东西,但对一个初学者,还是一个自学者来说,很多地方就是天书——至今这本破书上还密密麻麻记满了我当时非常独特的理解的笔记。
书上还好有一些小的示例和练习,当然有些内容实在无法理解,也没有任何别的参考书,更不会有老师,连MSDN Library也没有,更雪上加霜的是,书上的代码总是错的,单词有错的,关键字有错的,而且错得我根本不能发现,只能依靠英语基础(说到英语基础,其实很差,后面专门介绍下为了学习编程又自学英语的经历)加以发现单词的错误,而变量的错误,则只能依靠仔细的比较前后文变量的不同来发现,这相当耗时——但却是对人的进步有非常大的帮助,在学习编程之前,我是一个非常典型的“马大哈”,生活工作都相当的不仔细,丢三落四,极不细心的情况密集发生,但出于学习的需要,我不得不仔细发现书上代码的问题,以让代码不要总是红色警告,且能正常被调试。有的错误,如书中有的关键字居然是错的,在极端情况下,我只好采用人去循环以找出正确的关键字来解决,如果那个关键字单词有四个字母,我不得不进行4x4次的循环替换26个字母来找出正确的关键字——事实是居然总会成功了——回想当年年轻的劲头,至今自己也觉得不可思议。
正是在这样一个过程中,我尽管学得吃力,耗时,有时甚至每天只睡三个小时,但人被完全改变了,从一个粗枝大叶的人变得细腻而仔细,如果 说回顾学习编程的经历对我最大影响是什么,我会回答——它可以使一个再粗不过的人都变得心思细腻如针,但也会轻易让人变成宅男。后来的性格的大部分转变,变得不急不躁都得归功于此。按佛家的说法,与编程的这段缘来得正好,是注定要来的吧!
如上所说,因为学习得艰难,没有参考书,没有网络,没有人指点,练习几个例子就会花去数十天,终于有一天,我自己都觉得是无法忍受这种速度了,于是在基本了解了书的大部分内容之后,作出一个“惊人”的决定——直接写一个自己正需要的软件吧——作这个决定时,我也是没有十足的信心可以做到的,只是想着先做着看看吧!我此生最要感激就是当年会有这个“先做着看看吧”的”伟大“决定——如果人不勇敢迈出第一步,不敢于去”试试吧“,真的就完了。
正是这个”先做着看看吧“的决定,让我想要解决工作中一个老大难的问题,在班级管理中,我是使用的量化管理每个学生及分好的小组,详细考核学生的日常表现与进步,班级管理效果非常好,就是计算量特别大,人工计算,就算用EXCEL协助,也相当费时费力,导出想要的报表相当费力,我一直都想要有一个能够协助自己进行班级学籍信息、成绩管理、操行量化管理的软件,我竟然就直接大胆地由此入手了。
今天想来,如果我当时不直接去做这个我的第一个大型工程,那么后续的”数据库编程知识”,“文件管理知识”,“系统控制与第三方工具控制”等高阶API技术就可能由于自己都感到学习的山会太高而放弃掉。然后通过这样一个工程的任务驱动,我不得不去学习以上所列举的等等内容,因为如果 不学习,想要实现的功能就无法完成,后来我才知道这就是任务驱动模式。我要感激的正是这种模式的拉动,使我废寝忘食地奋斗了三年,当那个在网络上总共下载量达到近3000万的《无敌学籍成绩管理系统(个人免费版)》(当时的版本是有很多BUG的但至今没有杀软报毒(今天可能在网络上还有早期版本可在一些网站上下载),后来持续修正添加功能,后续 一直更新到2010年,因当年多数主流杀软开始乱报这个软件为病毒,已放弃更新,软件未完全完成的在线帮助文档在我个人官方网站上:http://www.lhghroom.cn/soft/infoandmarkforschool/helps/index.html)成功问世时,没有人会相信这是我的处女作。
这第一次的先上一个大项目的做法,让我明白了一个重要的道理:在实践中学习比为学习而学习要重要上万倍,因为为学习而学习没有明确的目标,则很难有坚持到底的信念;相反有任务在手,则会遇到一些光学习时永远都无法遇到的问题,则学习的广度与深度都将完全不可比拟。
举例来说,在教育系统这条长长的战线上工作的人都知道上级总会有各种各样名目繁多的表格要我们填写,特别作为班主任,各种各样的学生信息表格,成绩表格,虽然都是EXCEL,但格式上,各列的排序,填写内容要求(如日期格式要求等)千差万别,而且最恼火的是似乎每一个都在改变它的格式,每次要交表格时,我总是要在电脑上把一种表格中学生学籍信息换一个格式复制到另一种格式的表之中,操作费时费力,极为麻烦,也不明白为何总要把表的格式搞得千差万别,就没有一种统一的标准。
而在2010年之前像这样的烦心事,我所用过的所有软件就没有一个能完全解决输出任意格式表格之报表的功能的问题。
这个前无古人的问题,我最后通过阅读大量的书籍成功解决了,成为了这个软件最大的亮点,不管是EXCEL还是WORD表格,在完全不用作任何标记(不是标记替换法)的情况下,用户完全自主设计的任意空表也可都可以用通用接口自动填充(需要作简单指定,但多数 能自动识别,当然不能与今天的机器学习的智能识别相提并论)。(此部分功能的详细介绍在:http://www.lhghroom.cn/soft/infoandmarkforschool/helps/clsOutPut_1.html)
如果不是有任务在驱动,我又怎么会去想到要去解决这样都没有人想要解决的问题呢?
正如经典的哲学命题:牛犊下田(一人说:牛犊都不会耕田,怎么让它下田;另一人说:不让它下田,它怎么会耕田?)
我现在认为,先做起来,再想办法,先走着再找路,而不是等把一切都学会了,再开始。
在后来学习HTML与CSS、JS 和JAVA中,我都这样做了。
在后来接手一些任务时,对完全不知道的领域,我也接手了,在做中很快解决了,人就快速成长起来。
用一句话概括自己的做法,那就是:通过任务驱动,逼迫自己每天都要学得新的东西。
以上只是个人侥幸做出点小成果的经历,不具有 代表性,若有初入者仅供参考,以免被 误导,今天的网络已非同一般,学习的方式与条件也大不相同,祝愿大家都能在互联网时代有所作为,不负好时光!
欢迎加我QQ:578652607 给予我批评指正。