posts - 112, comments - 215, trackbacks - 0, articles - 34
  IT博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

帮你免于失业的十大软件技术

Posted on 2006-12-01 10:41 济公 阅读(302) 评论(0)  编辑 收藏 引用 所属分类: ITNews

我不知道你的具体工作是什么。如果你是某冷门领域的专家而变得不可或缺,或者你们的公司十分稳固,以你现有的技术就足以安度你的职业生涯,那我不知道你是否有失业的危险。不管怎样,请你先不要急着寄出那些告诉我你们的公司对用 VB3 十分满意或你们除 C 以外永不用其它语言的信件,并保留起那些讲述 .NET 将如何把 Java 扫地出门、 XML 将如何取代关系型数据库、或你怎样能用汇编语言或 C 写任何软件而任何其它开发工具都不重要的信件。

现在,想象一下如果你像很多受裁员和公司倒闭影响的同行一样失去了工作,那将会怎样。如果你突然需要搬往它处该怎么办?如果你的公司突然做了技术转向又怎么办?

在目前的就业市场,经理们是根据当前和未来的开发需要招聘雇员。作为开发人员,你所掌握的知识是你找工作和保住工作的关键。你要了解技术的发展方向,跟上技术的变化,这一点十分重要,即使你永远不用再找开发方面的工作。

这里是我选出的当前最重要的十大开发技术,最重要的排在前面。看完本文后,请务必加入 talk.editors.devx 讨论组,提出你选出的十大技术。

1. XML

首先,你要了解 XML 。我不是说仅仅是 XML 规格本身,还包括一系列相关的基于 XML 的语言:最重要的是 XHTML XSLT XSL DTDs XML Schema (XSD) XPath XQuery SOAP 。那些在过去 5 年内从未碰过键盘的人,可能不知道 XML 为何物。 XML 是一种文本文件,使用与 HTML 类似的标记。 XML 能定义一个树状结构,并能描述所含的数据。

XML 最好的一点是既能存结构化数据也能存非结构化数据。它既能存贮和描述“规格的” (regular) 表格数据,也能容纳和描述“粗糙的” (ragged) 文件数据。

XHTML 是现今写 HTML 的首选方法。因为它是形式完好( well formed )的 XML ,比起古老的、通常是畸形( malformed )的 HTML 文件, XHTML 格式的文件更容易处理。

XSLT XSL 是用于把 XML 文件转成其它格式的语言。可转换的格式包括:文本文件、 PDF 文件、 HTML 、以逗号为分隔符的文件,或其它 XML 文件。

DTD XML Schema 描述 XML 文件所能包含的内容的类型,并让你“验证” XML 文件内容的合理性,而不用写特殊代码以确保内容符合规则要求。

XPath XQuery 是用于从 XML 文件中抽取单个项目或一组项目的查询语言。 XQuery 扩展了 XPath ,因而更重要。 XQuery XML 的关系正像 SQL 与关系数据库的关系。

SOAP Web 服务之间的一个标准通讯协议。尽管你不需要对 SOAP 标准一清二楚,你应该熟悉一般的 schema 和它的工作原理,以便能应用这门技术。

2. Web 服务

Web 服务是 XML 流行后的一个直接产物。因为你能用 XML 描述数据和物件,因为你能用 schema 确保 XML 文件内容的合理性,因为 XML 是基于文本的规范, XML 为跨平台通讯标准提供了一个极其方便的基本格式。如果你还从来没碰到 Web 服务,你可能很快就会碰到,在未来 5 年内,你几乎肯定会碰到。熟悉 Web 服务十分重要,因为它是目前所有跨不同机器、不同语言、不同平台和不同地点的通讯协议中最简单的一个。不管你需要与否, Web 服务是迈向互用性的重要一步。

XML 工作组主席 John Bosak 曾说 XML “给 Java 一些事做”。实际上, Web 服务让所有语言都有了一些事做。 Web 服务让在大型机上运行的 COBOL 应用软件能调用在手持设备上运行的 Java 应用程序、能让 Java applet .NET 服务器交谈、能让微机软件与 Web 服务器无缝连接,并提供了一个相对容易的方法,让企业不光能向外界提供数据,还能提供功能,而且是一种与语言、平台和位置都独立的方法。

3. 面向对象的编程

很多程序员仍认为 OOP 是象牙塔里的技术。但如果你想一下是什么语言在过去的 10 年里占主导地位,你就会理解 OOP 不是象牙塔里的技术。 OOP Smalltalk 开始,传到 C++ Pascal (Delphi) Java 使 OOP 大踏步地迈向主流,几年后的 VB.NET C# 则完全确立了 OOP 的优势地位。尽管这些语言中的多数并不要求你必须会 OOP ,但我觉得如果你不了解 OOP 的基本概念也不知道如何应用这些概念,你能找到的编程工作将越来越少。

4. Java C++ C# VB.NET

我把这些语言列在一起,并不是建议你成为每一种语言的专家。我的理由是:学习编程最有效的方法之一是看代码,而你能看到的大量的代码很可能不是用你所喜爱的语言编写的。

在过去几年,各语言的能力越来越接近。现在,你可以用 VB.NET Windows 服务、 Web 应用程序或命令行程序。即使你只使用一种语言,你也应该学一些其它语言,以便能看懂那些样例,并将其翻译到你所用的语言。这 4 种语言是基本核心,还有其它一些满足不同需要、颇具用途的语言,如 FORTRAN COBOL APL ADA Perl Lisp

5. JavaScript

尽管名字有些相像,但 Java JavaScript 并无关联。为什么一个脚本语言会如此重要呢?因为所有主流浏览器都用 JavaScript 。如果你需要写 Web 应用程序,你就有足够的理由学 JavaScript JavaScript 可以用作 ASP ASP.NET 的服务器语言,也可以当做用于扩展 XSLT 的功能语言 (functional language) JavaScript Mozilla/Netscape 中用于激活基于 XUL 的程序接口的首选语言。 JavaScript 的一个变种 ActionScript Flash MX 的编程语言。将来, JavaScript 很可能成为新设备的编程语言,以及大型应用软件中的宏语言。

JavaScript 相对照的是 VBScript 。尽管 Microsoft 的软件对 VBScript 有良好的支持,但 VBScript 在未来的开发工作中很可能是一个糟糕的选择。就是 Microsoft 也倾向于用 JavaScript (或 Microsoft 自己的变种: JScript )写客户端程序。在选择脚本语言时,请选择 JavaScript

6. 正则表达式( Regular Expressions

查寻关系数据库可以用 SQL ,查询 XML 可以用 XPath XQuery ,查询纯文本文件则可以用正则表达式。例如,你可以用一个命令从一个 HTML 文件中查找并删除所有的注释。各种开发语言内置的一些简单的文本查询功能,如 "IndexOf" 函数或 VB 中经典的 "InStr" 函数或 "Like" 操作符,根本不能与正则表达式相提并论。现在,各种主要的开发语言都提供使用正则表达式的途径。尽管正则表达式本身既难懂更难读(是回到早期计算机时代的一种倒退),但它却是一个功能强大而且未被充分利用的工具。

7. 设计模式

正像 OOP 通过把对象分类以简化编程一样,设计模式对一些普遍的对象之间的交互进行分类,并赋予一个恰当的名称。 OOP 用得越多,设计模式就越有用。一些最常用的模式的名称已经变成了软件开发领域共同使用的术语,所以要跟上信息的主流,你就要对设计模式有相当的理解。

8. Flash MX

如果你需要在客户端得到比 HTML CSS 更多的图形和更强的编程功能, Flash 是你的答案。用 Flash 编程比开发 Java applets 或写 .NET 代码要快得多,也容易得多。

在最新版本 (MX) 中, Flash 不仅仅是画图和制造动画的工具,它已经成为一个编程功能强大的开发环境:能调用 SOAP Web 服务,也能调用远端服务器上的 ColdFusion Java .NET 程序。 Flash 无处不在。它的引擎存在于世界上大多数客户端计算机,包括手持设备、置顶盒、甚至是新的书写板电脑。所以使用 Flash 能大大扩展你的程序的应用范围。

9. Linux/Windows

熟悉 Linux 。在一台旧机器或新机器上安装 Linux 。下载图形用户界面,在其基础上写一些程序。安装 Apache ,写一个 Web 应用程序。这个世界不再仅仅是属于 Windows ,这种趋势可能还会持续下去。如果你是一名中坚的 Linux 开发人员,那就抛弃你对 Windows 的憎恶,看看你能否做一些 Windows 编程。 Windows 能继续在台式电脑上称王是有其原因的,这不仅仅是因为 Microsoft 控制了这个市场。

没人知道你们公司会在什么时候决定从 Linux 转向 Windows (或从 Windows 转向 Linux ),或者你想跳到一家用另一种平台的公司,或者你想出了开发一个杀手软件的好主意,所以你要争取拥有在不同操作系统上的编程经验。

10. SQL

尽管 SQL 不像本文讨论的其它技术那样新,而且 SQL 的重要性在未来 10 年内很可能降低,但它仍然是一项基本技能。很多开发人员还没有掌握这门技术,或掌握得不够,不足以有效率地使用它。不要依赖具有图形用户界面的 SQL 生成器替你做事情,你要自己手工地写查询命令,直到你熟悉基本的 SQL 语法为止。了解 SQL 不仅能帮助你日后学习 XQuery ,你还有可能马上发现能简化或改进目前项目的方法。

培养好奇心

最后,(对,我意识到这是第 11 门技术),好奇心是你最重要的技能。要去尝试各种东西。新语言或新技术对你当前或将来的工作可能有用,也可能没用,但并不是你所学的每一件事都是为了工作。不要害怕失败,万事开头难,学新技术也是如此。大多数失败是因为人们希望太快地学到太多的东西。要对每一点进步感到满意,不要让时间(或缺乏时间)妨碍你。相反,你要安排时间留心、研究、试验新的开发技术和工具。

你可能永远也没有必要成为这些技术的专家,而且我的选择可能根本不适合你的特殊情况,但通过培养好奇心,你将会发现你应该了解的东西。

编辑注:现在就到 talk.editors.devx 讨论组去评论罗素的选择,并提出你自己的清单。

罗素·琼斯是 DevX 的执行编辑。 E-mail 地址是: rjones@devx.com

© 版权所有 2003 DevX Inc.
只有注册用户登录后才能发表评论。