我不知道你的具体工作是什么如果你是某冷门领域的专家而变得不可或缺或者你们的公司十分稳固以你现有的技术就足以安度你的职业生涯那我不知道你是否有失业的危险不管怎样请你先不要急着寄出那些告诉我你们的公司对用VB十分满意或你们除C以外永不用其它语言的信件并保留起那些讲述NET将如何把Java扫地出门XML将如何取代关系型数据库或你怎样能用汇编语言或C写任何软件而任何其它开发工具都不重要的信件 现在想象一下如果你像很多受裁员和公司倒闭影响的同行一样失去了工作那将会怎样如果你突然需要搬往它处该怎么办?如果你的公司突然做了技术转向又怎么办? 在目前的就业市场经理们是根据当前和未来的开发需要招聘雇员作为开发人员你所掌握的知识是你找工作和保住工作的关键你要了解技术的发展方向跟上技术的变化这一点十分重要即使你永远不用再找开发方面的工作 这里是我选出的当前最重要的十大开发技术最重要的排在前面看完本文后请务必加入talkeditorsdevx讨论组提出你选出的十大技术 XML 首先你要了解XML我不是说仅仅是XML规格本身还包括一系列相关的基于XML的语言最重要的是XHTMLXSLTXSLDTDsXML Schema (XSD)XPathXQuery和SOAP那些在过去年内从未碰过键盘的人可能不知道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和它的工作原理以便能应用这门技术 Web服务 Web服务是XML流行后的一个直接产物因为你能用XML描述数据和物件因为你能用schema确保XML文件内容的合理性因为XML是基于文本的规范XML为跨平台通讯标准提供了一个极其方便的基本格式如果你还从来没碰到Web服务你可能很快就会碰到在未来年内你几乎肯定会碰到熟悉Web服务十分重要因为它是目前所有跨不同机器不同语言不同平台和不同地点的通讯协议中最简单的一个不管你需要与否Web服务是迈向互用性的重要一步 XML工作组主席John Bosak曾说XML给Java一些事做实际上Web服务让所有语言都有了一些事做Web服务让在大型机上运行的COBOL应用软件能调用在手持设备上运行的Java应用程序能让Java applet与NET服务器交谈能让微机软件与Web服务器无缝连接并提供了一个相对容易的方法让企业不光能向外界提供数据还能提供功能而且是一种与语言平台和位置都独立的方法 面向对象的编程 很多程序员仍认为OOP是象牙塔里的技术但如果你想一下是什么语言在过去的年里占主导地位你就会理解OOP不是象牙塔里的技术OOP从Smalltalk开始传到C++和Pascal (Delphi)Java使OOP大踏步地迈向主流几年后的VBNET和C#则完全确立了OOP的优势地位尽管这些语言中的多数并不要求你必须会OOP但我觉得如果你不了解OOP的基本概念也不知道如何应用这些概念你能找到的编程工作将越来越少 JavaC++C#和VBNET 我把这些语言列在一起并不是建议你成为每一种语言的专家我的理由是学习编程最有效的方法之一是看代码而你能看到的大量的代码很可能不是用你所喜爱的语言编写的 在过去几年各语言的能力越来越接近现在你可以用VBNET写Windows服务Web应用程序或命令行程序即使你只使用一种语言你也应该学一些其它语言以便能看懂那些样例并将其翻译到你所用的语言这种语言是基本核心还有其它一些满足不同需要颇具用途的语言如FORTRANCOBOLAPLADAPerl和Lisp JavaScript 尽管名字有些相像但Java与JavaScript并无关联为什么一个脚本语言会如此重要呢?因为所有主流浏览器都用JavaScript如果你需要写Web应用程序你就有足够的理由学JavaScriptJavaScript可以用作ASP或ASPNET的服务器语言也可以当做用于扩展XSLT的功能语言(functional language)JavaScript是Mozilla/Netscape中用于激活基于XUL的程序接口的首选语言JavaScript的一个变种ActionScript是Flash MX的编程语言将来JavaScript很可能成为新设备的编程语言以及大型应用软件中的宏语言 与JavaScript相对照的是VBScript尽管Microsoft的软件对VBScript有良好的支持但VBScript在未来的开发工作中很可能是一个糟糕的选择就是Microsoft也倾向于用JavaScript(或Microsoft自己的变种JScript)写客户端程序在选择脚本语言时请选择JavaScript 正则表达式(Regular Expressions) 查寻关系数据库可以用SQL查询XML可以用XPath和XQuery查询纯文本文件则可以用正则表达式例如你可以用一个命令从一个HTML文件中查找并删除所有的注释各种开发语言内置的一些简单的文本查询功能如IndexOf函数或VB中经典的InStr函数或Like操作符根本不能与正则表达式相提并论现在各种主要的开发语言都提供使用正则表达式的途径尽管正则表达式本身既难懂更难读(是回到早期计算机时代的一种倒退)但它却是一个功能强大而且未被充分利用的工具 设计模式 正像OOP通过把对象分类以简化编程一样设计模式对一些普遍的对象之间的交互进行分类并赋予一个恰当的名称OOP用得越多设计模式就越有用一些最常用的模式的名称已经变成了软件开发领域共同使用的术语所以要跟上信息的主流你就要对设计模式有相当的理解 Flash MX 如果你需要在客户端得到比HTML和CSS更多的图形和更强的编程功能Flash是你的答案用Flash编程比开发Java applets或写NET代码要快得多也容易得多 在最新版本 (MX) 中Flash不仅仅是画图和制造动画的工具它已经成为一个编程功能强大的开发环境能调用SOAP Web服务也能调用远端服务器上的ColdFusionJava或NET程序Flash无处不在它的引擎存在于世界上大多数客户端计算机包括手持设备置顶盒甚至是新的书写板电脑所以使用Flash能大大扩展你的程序的应用范围 Linux/Windows 熟悉Linux在一台旧机器或新机器上安装Linux下载图形用户界面在其基础上写一些程序安装Apache写一个Web应用程序这个世界不再仅仅是属于Windows这种趋势可能还会持续下去如果你是一名中坚的Linux开发人员那就抛弃你对Windows的憎恶看看你能否做一些Windows编程Windows能继续在台式电脑上称王是有其原因的这不仅仅是因为Microsoft控制了这个市场 没人知道你们公司会在什么时候决定从Linux转向Windows(或从Windows转向Linux)或者你想跳到一家用另一种平台的公司或者你想出了开发一个杀手软件的好主意所以你要争取拥有在不同操作系统上的编程经验 SQL 尽管SQL不像本文讨论的其它技术那样新而且SQL的重要性在未来年内很可能降低但它仍然是一项基本技能很多开发人员还没有掌握这门技术或掌握得不够不足以有效率地使用它不要依赖具有图形用户界面的SQL生成器替你做事情你要自己手工地写查询命令直到你熟悉基本的SQL语法为止了解SQL不仅能帮助你日后学习XQuery你还有可能马上发现能简化或改进目前项目的方法 培养好奇心 最后(对我意识到这是第门技术)好奇心是你最重要的技能要去尝试各种东西新语言或新技术对你当前或将来的工作可能有用也可能没用但并不是你所学的每一件事都是为了工作不要害怕失败万事开头难学新技术也是如此大多数失败是因为人们希望太快地学到太多的东西要对每一点进步感到满意不要让时间(或缺乏时间)妨碍你相反你要安排时间留心研究试验新的开发技术和工具 你可能永远也没有必要成为这些技术的专家而且我的选择可能根本不适合你的特殊情况但通过培养好奇心你将会发现你应该了解的东西 |