我在读高中时,《信息技术》课本上有一章讲到使用 Visual Basic 6 编程解决问题。我想聪明的作者也知道,这么短短的一章根本不能将他所想要给读者传达的所有知识道尽,却也在这里放了这么一个章节,作用很明显了:他想让读者了解有“编程”这么一回事,并且编程可以用来解决问题;同时,也可以培养一些同学对编程的兴趣,为高一级学校的学习打下基础。
无独有偶,在我们国家的非计算机专业人员的计算机等级考试中,也在很大比重上体现出要用编程解决问题的思想。可事实是,很多人都能轻易地通过这些考试,却也不见他们拥有什么编程能力,更不谈用编程技巧来解决问题了。由此可见,似乎在我们生活的周围,真正拿编程来解决问题的还真不多——除非大型的、专业的 IT 企业会想到这一招。
撇开这个现象不说,那编程的目的到底是什么?我想编程,作为一门自然科学与众多其他科学一样,来自自然,同时也服务于自然,而且更显而易见的是:编程直接服务于生活。编程是一个专业的活儿吗?非得专业人士才可以编程吗?本质上来说,编程只是为了解决实际的问题而已——专业的编程只是因为多数人会存在某一方面的需求,然后这些专业编程人士做出适合大部分人需求(或者特定客户)的产品来:专业编程只是所有编程活动的一部分。
编程由人来操作,更服务于人本身。在让IDE服务于别人之前,试着让它服务于你自己,亲身感受一下它的魅力!
如果你是一个开发人员,而你却向他人问及类似这样的问题:“如何在一堆文件中找到你要的那个、如何将一个文件转成其他的格式、如何将目前手中的数据变成统计表、如何使用一个未知设备、如何清除那个代码早已被公之于众的恶意程序、如何驱动计算机为你干活”,那你得好好修修内功了。编程用来做什么?难道只是用来开发你的数据库应用、多媒体应用、操作系统工具和其他专业用途么?不是的,你正在使用的那门编程语言已经足以帮助你解决很多很多实际问题了。你的 C# 能帮你基本做了基本一切 Windows 能做的事情;你的 Java 能帮你实现一切支持它的设备能做过的一切基本操作和目前尚没有开发出来的功能……而你却在苦苦解决你目前问题的利器!
也许你会说,某一个领域你不熟悉。这好像并不足以作为借口吧,这仅仅只是因为屈服于自己的惰性而逃避任务的一种消极态度。
一个人不可能什么都会,这是客观的事实。但在目前,我们有一个非常好的工具,那就是软件工程思想;而且在当前我们有一个非常流行的体系支撑着我们可以做更多工作,那就是面向对象的编程思想。如果你可以感受到无论哪种编程环境,总会遵守一种既有的编程思路;而且更令人兴奋的是,目前面向对象编程思想体系日渐深入人心,这更为我们跨平台、跨语言作战提供更加信心。
所以,如果你真正走进一种技术,即使只为了这次要解决问题而接近它某一次,你会发现它是那么平易近人,那么令人喜爱,而并没有之前我们望而生畏的困难。
为别人编程,多是为了生存;如果为了帮助别人或者由于自己要解决实际问题要编程,这才是接近了编程的本质:编程正是为了解决问题而出现;它从来没有离开过人。当我第一次在严蔚敏老师的《数据结构》一书上读到这样一句话:“计算机程序是写给人读的,只是顺便还能让计算机执行罢了”,我就知道我这样的想法并不是无稽之谈,那一刻,我感到一阵惊喜,因为我触碰到的是真谛。