程序设计2.0 (1)善用优质网站资源,快速上手新技术

开发者在线 Builder.com.cn 更新时间:2008-02-09作者:CSDN 来源:CSDN

本文关键词: 资源 网站 程序 设计

最近流行把旧的观念升级,号称是「2.0」,例如Web 2.0便是为Web注入新的精神,使网页能呈现另一种面貌。我猜想,对于程序设计,应该也有不少人加上2.0的版本序号,各自诠释自己想要赋予软件开发的新精神。

本系列连载命名为「程序设计2.0」,或许有点「标题杀人法」的意味存在,但本质上,想表述的其实是在网络已经如此发达的今日,对软件开发──尤其是程序撰写所造成的一种型态移转。

透过网络与全世界的程序人接轨
回想昔日网络尚未出现或尚未如此发达流通的年代,我们赋予程序人什么样的训练呢?基本上,我们教导他如何从无至有地把程序完成。

比方说,我们教导程序人程序语言、数据结构、算法、面向对象设计、软件工程以及软件测试等。这些是程序人的基础训练,但都是以单兵作业为核心的训练。我们很少教导程序人如何利用合作的方式,彼此协力开发,也不会教导程序员如何分享程序代码及解决问题,以加快开发的速度。

以大学或研究所来说,重视这些本质上的训练,方向上完全没有问题。但是,对于有确切开发目标的开发工作来说,这些锻炼就显得相当重要。对于既有、可用的程序代码开发,有了这些培养能够压缩撰写程序代码的时程。

在遭遇难解的问题时,倘若能获得旁人已知的问题解决方案,我们更能立即就能解决,省去极为大量尝试问题、探索解答的时间浪费。在学习任何一种新的观念或技术时,倘若身边有人已经略知一二甚至十分熟悉时,给予入门的建议或指引,也能大幅的减少学习上手的时间。

而在现在,网络如此普及,各种资源在网络上垂手可得,每个程序人彷佛与全世界所有的程序人全都接轨了。透过网络,我们身边的「旁人」数量可在「新技术学习」、「现成程序代码」、「问题解决」上,给我们远较过去更多、更丰富的协助。

之所以命名为「程序设计2.0」,也就是因为想强调这种程序人能透过网络,各自贡献程序代码、遭遇到的问题、解决问题的方法,甚至是对各种开发技巧或知识的介绍,利用网络加以整合或交流,进而让所有的程序人都能藉此合作,获得可观的帮助。

不仅免费,而且快速
在过去,我们要学习一项新的事物,多半凭借着实体的书籍或杂志,或参加专门的课程,以及交流分享的读书会等途径学习。一来成本太高,二来学习速度及多元性也受限,因为你能接触到的题材及数量,都会因为实体的方式而受到限制。

但是,网络这个平台的大趋势,让许多程序人乐于在网络上利用部落格(Blog)分享心得,许多论坛上也有热烈且实用的讨论。

建议程序人都应该透过网络提升学习的速度。我本身已经有许多年没有买过任何的书籍或杂志,因为透过网络学习新的技术或观念,速度只有更快。

有什么方式可以提供参考呢?首先,你可以利用坊间的RSS阅读器,或像台湾funP网站上的「哈部落」服务,订阅许多活跃的程序人部落格。这对收集新技术的信息会很有帮助。此外,常常参与一些技术论坛的讨论,也对吸收新知多有帮助。甚至许多技术人员都有撰写Twitter的习惯,订阅他们的Twitter讯息,也能同步接收这些人所关注的消息。

官方网站和Google提供的信息,价值可能胜于书籍
在新技术的学习上,许多网站上,尤其是特定技术的官方网站上,都提供相关完整的文件,从API文件到教学文件一应俱全。当你想要学习一项新技术,应该先从官方网站(如果有的话)着手。

举例来说,在学习如何使用MINA时,(MINAJakarta Apache Project中的一个计划,是一套协助你开发网络服务器系统的链接库),我的步骤是:一、阅读其介绍文件了解其大体的架构;二、阅读安装文件,将MINA妥善的安装及设置;三、阅读其上的教学文件(Tutorial),试着编译、并执行最小的一个范例;四、阅读其API文件,尝试扩充范例中的功能;五、尝试多个范例并充分了解示范后,接着参照API文件,开始建构自己所需的功能。

大多数的新技术,倘若是链接库或框架,几乎都可以透过这种方式快速学习。这种方式既免费,效果也好。除了造访官方网站之外,在这个网络知识的时代,善用Google搜寻,更能协助你找到许多技术高手所撰写的入门或进阶文章。许多文章本身的素质,甚至还胜过坊间找到的许多书籍。

而这也正是Web 2.0所衍生出来的「程序设计2.0」。因为Web 2.0所主张的「用户制造内容(User Generate Content)」及「人际社交网络(Social Network)」,让程序人们乐于分享自己的心得及经验,促进交流。

从这边也可以观察出另一个现象,在「程序设计2.0」的时代,懂得如何快速找到有用资源的程序人,将会比不懂得这么做的程序人,能够具备更有效率的学习力。就拿如何利用Google搜寻来说,懂得搜寻技巧的人,总是能比不懂搜寻技巧的人,更快、更准确地找到有价值的参考文章,自然也就能有更佳的学习质量。

整个程序设计的考验,和大学课堂的考试不同,它已经是一种「Open Book」的考试,而且这本书的内容是浩瀚无涯,谁越有办法知道如何在其中挖出宝物,就越能夺胜。

可惜的是,许多人过往在大学的训练,对于如何搜寻所需数据的相关训练、着力并不多。而在过去,资源并不多、而且不若今日能透过网络快速且准确汇整,而且当时这项能力对程序人来说,相对而言并没有那么重要。但是,现今大有不同,因为知识学习的模式改变了,自然也必须调整自己学习的方式,才能优化。

精选优质的开发网站,缩短学习的时间
除了上述提到的方式外,有些专门为程序人提供服务的网站,也能发挥极大的作用。例如,有个名为Code Project网站,就是个资源十分丰富、专为程序人量身打造的网站。

这个网站主要提供了各式各样用各种程序语言撰写而成的程序范例。它所提供的范例有以下优点:主题专一而且明确、皆搭配适合的教学文章、范例多半可以直接运用于开发中。其上的文章的主题专一,而且明确,这使得它的每篇文章几乎都只介绍单一的特定技术,对于只想了解一个单一技术的程序人来说,不会有过多庞杂的信息混于其中。

而且每个范例的作者,都会撰写教学文章,不仅介绍相关技术的背景,同时也针对范例说明,能减少程序人入门的时间,同时明白范例的作用。而且,许多作者都会刻意将该范例包装成为链接库或直接可用的程序,使得其他的程序人很容易将范例运用在自己的开发项目中。Code Project本身也提供不错的搜寻接口,大大减少程序人找到所需资源的时间。

Code Project这样的网站,网络上还有很多,供应的资源,不仅量多质优,而且还免费。透过范例来着手学习任何一项新的技术,向来都是最快的途径。对程序人来说,懂得运用这样的资源,在学习的立基点上,就有很大的不同。而这也正是「程序设计2.0」的一个很大的特性。 

用户评论

  • 用户名
  • 评论内容