??xml version="1.0" encoding="utf-8" standalone="yes"?>
在十U技术中Q最重要的一U技术我惛_该非XML莫属。这里不仅仅指XML规范本nQ还包括一pd有关的基于XML的语aQ主要有XHTMLQXSLTQ?a class="bluekey" target="_blank">XSLQDTDsQXML Schema(XSD)Q?a class="bluekey" target="_blank">XPathQXQuery和SOAP.如果你现在还对XML一无所知,那么赶快狂补吧。XML是包含类gHTML标签的一个文本文Ӟ在这个文件中定义?jin)一个树(wi)型结构来描述它所保存的数据?/p>
XML最大的优点是你既可以在q个文本文g中存储结构化数据Q也可以在其中存储非l构化数据——也是_(d)它能包含和描q?_糙?文档数据Q就象它描述"规则?表格数据一栗?/p>
XHTML是目前编写HTML的首选方?因ؓ(f)XHTML本n是格式良好的XMLQ与通常畸Ş的HTML文档相比Q?XHTML格式文档更容易处理?/p>
XSLT和XSL是对XML文档q行转换的语a。它们可以将XML文档转换成各U格式,比如另一个文本文件、PDF文g、HTML文g、逗号分割的文Ӟ或者{换成其它的XML文档?/p>
DTDs 和XML Schema用来描述XML文g所包含的数据内容的cdQ你不用编写定制的代码p对XML文档的内容进?有效?(g)查,使内容强行遵守给出的规则?/p>
XPath ?XQuery是查询语aQ用它们可以从XML文档中吸取单个的数据Ҏ(gu)者数据项列表。XQuery的功能特别强大,因ؓ(f)它对XPath查询q行?jin)扩展。实际上QXQuery和XML的关pd像SQL之于关系数据库一栗?/p>
SOAP是Web services间进行通讯的标准协议。你不必知道SOAP协议的所有细节,但是你应该熟(zhn)其常用规则?qing)其工作原理Q这样你才能使用它?/p>
二、Web Services
Web服务是XML行后的直接产物。因为XML可以描述数据和对象,XML大纲可以保证XML文档数据的有效性,因ؓ(f)XML的基于文本的规范Q因而XML文档极其适合于作ZU跨q_通讯标准的基本格式。如果你q没有接触过Web服务Q那么过不了(jin)多久你肯定会(x)到它,所以必ȝl掌握Web服务Q最好是_N它Q因为它是迄今ؓ(f)止应用程序间跨不同种cL器、语a、^台和位置通讯的最单的一U方式。不你需不需要它QW(xu)eb服务都会(x)是将来互用性的主要势?/p>
XML工作l的John Bosak曾说q:(x)"XML使得Java有事可做"Q那么,我们也可以说QW(xu)eb服务使得所有语a都有事可做。Web服务让运行在大型Z?a class="bluekey" target="_blank">COBOL应用E序与运行在手持讑֤上的应用E序怺沟?让Java应用与?a class="bluekey" target="_blank">NET服务器相互通讯Q让桌面应用与Web服务器进行无~交互,不但为商业数据处理,同时也ؓ(f)商业功能提供?jin)方便的实现——ƈ且这U实C语言、^台、和位置无关?/p>
三?a class="bluekey" target="_blank">面向对象~程
许多E序员仍然认?a class="bluekey" target="_blank">OOP乃技术的象牙之塔Q但是细l想一下过dq里在面向对象领域里占据q统d位的开发语a之后Q你׃?x)这么认Z(jin)QOOP理念从Smalltalk开始,然后蔓g到C++和Pascal(Delphi)Q到Java成ؓ(f)真正的主,几年之后QVB.NET ?C#的出现可以说是OOP发展C(jin)d造极的地步。虽然用这些语a不必?jin)解OOP的概念,但如果你~Z一些OOP的基本知识和Ҏ(gu)Q我想你很难在逐渐疲Y的就业市(jng)Z扑ֈ工作?br /> 四、JavaQ?C++Q?C#Q?VB.NET
如果你热衷于技术,q且热爱~程Q那么我想你应该L玩{q些高语言Q我说的玩{q不一定要你成U编E高手。而是能看懂用q些语言~写的代码即可。如果你q有_֊用它们编码那更好了(jin)。其实这U机?x)甚。但是看代码的机?x)很多,学?fn)~程的最有效的一U方式就是看源代码——浩如烟L(fng)源代码中很多都不是用你所钟爱的开发语a~写的?/p>
在过ȝ几年里,各个语言功能的发展基本上都差不多。现在你完全可以用VB.NET来写Windows服务、Web应用或者命令行E序。即使你只用其中的一U语a写程序。我认ؓ(f)也完全有必要学习(fn)另外一U语aQ自己能阅d理解它们现有的例子代码,q且能将一U语a~写的代码{换成你首选的~程语言代码。这里列出的四种语言可谓是一个强大的开发语a工具,如果你掌握了(jin)它们Q毫无疑问你一定是一个众ZԒ慕的高手。这里我要声明一下:(x)那就是我q没有要忽略和排除其它的高语言Q如QFORTRAN、COBOL、APL、ADA、Perl和Lisp{等Q根据你所从事的领域不同,应该选择适合的语a和工兗?/p>
五、JavaScript
Java 和JavaScript两者的名字管很类|但它们之间ƈ没有什么关pRؓ(f)什么一U脚本语a?x)如此重要,以至于将它列入十U关键技术之一?仔细想一下就知道?jin),目前所有主的览器都使用JavaScript.如果你要~写Web应用E序Q那么JavaScript不可或缺。此外,JavaScriptq能作ؓ(f)一U服务器端的脚本语言Q如它嵌入在ASP、ASP.NET中,或者嵌入XSLT来扩展功能。目前JavaScript在Mozilla/Netscape中是Ȁzd于XUL界面的首选语aQ它zZ(jin)ActionScriptQ成为Flash MX应用的编E语a。还有就是JavaScript极有可能成ؓ(f)未来新设备的脚本语言以及(qing)L应用的宏语言?/p>
相比之下QVBScript虽然在微软的产品中得到很好的支持Q但从长q来看,没有q象表明它会(x)有美好前途。微软自己都向于用JavaScript(或者用由JavaScriptz的JScript)来编写其客户端脚本代码。因此,如果你要选择脚本语言Q非JavaScript莫属?/p>
六、Regular Expressions
从所周知Q关pL据库的查询用SQLQ搜索XML文档用XPath 和XQueryQ而正则表辑ּ则用来搜索纯文本。例如,你可以用一个命令来查找或删除HTML格式文g中的注释内容。大安用过"IndexOf"?InStr"以及(qing)"Like"q些内徏在JavaScript或VB中的文本搜烦(ch)函数Q这些函数虽然很Ҏ(gu)使用Q但是它们的功能却无法与正则表达式同日而语——现在每一U主的开发语a都提供对正则表达式的存取。尽有为正则表辑ּ本n的读写艰涩难懂,但毕竟它的功能强大,使用它的领域也越来越多?/p>
七、Design Patterns
像OOP通过创徏和分cd象来化编E一P设计模式普通的对象交互分类成指定的模型Q这是一个从一般到具体的过E。OOP的成分用得多Q设计模式就昑־有用武之地。所以你必须理解它们Q跟上其M理论的发展?/p>
八、Flash MX
当你需要比HTML和CSS所能提供的更多的客L(fng)囑Ş和编E能力时QFlash是最佳选择。在Flash中编E比用Java应用或者。NET代码来得快得多,也容易得多?/p>
在最新版本中(MX)QFlash不仅可以d和进行动L包,它还是个高度的可~程应用环境。具备强大的与SOAP Web服务沟通的能力Q可以调用运行在q端服务器上的ColdFusion、Java或。NET代码。可以说Flash几乎无处不在Q包括手持设备、置盒、甚x新的qx?sh)脑Q你到处都可以见到它的n影,所以用它实际上可以扩展和延你的应用E序使用领域?br /> ?ji)、Linux/Windows
q是当今PCs机操作系l的两大阵容Q如果你惛_计算业里P׃定要熟?zhn)它们。对于LinuxQ最好能自己安装Q配|,下蝲它的囑Ş用户界面以及(qing)一些应用程序。自己安装Apacheq会(x)~写Web应用E序。要清醒地认识到q个世界除了(jin)Windows之外Q还有Linux的存在。ƈ且这U局面将?x)长期存在。反q来Q如果你是一个死忠的Linux开发者,不要再l对Windows的憎Ӟ要相互学?fn),取长补短Q看看Windows有什么好的东东可以采U뀂记住Windows仍然是桌面之王?/p>
谁也说不准你们公总么时候会(x)军_从Linux转向WindowsQ或者从Windows转向Linux.谁也说不准什么时候你?x)蟩槽跑到另外一个用不同^台的公司上班——或者即便不xQ也有可能在不同q_上开始另外一个杀手目——所以最好在每个q_上都U篏一些经验,而不要在一|(wi)上吊歅R?/p>
十、SQL
管SQL在当今众多的技术中已不是什么新东西Q而且在未来的十年里它的作用很有可能被削弱Q甚x个被淘汰Q但它仍然是一U基本技能——别看它是一U基本技能,至今仍有许多开发h员不懂什么是SQL或对它了(jin)解不多。不要指望基于图形用L(fng)面的SQL构造器?x)帮你的忙,q是自己亲手写SQL查询吧,定你掌握了(jin)SQL的基本语法。现在理解了(jin)SQLQ不仅对以后学习(fn)XQuery有所裨益Q而且可以使你很快扑ֈ化或改进当前开发项目的途径?/p>
֣Q培d技术的好奇?/strong>
其实Q不技术的发展势如何Q每个h最重要的一个技能是好奇?j)。敢于面Ҏ(gu)战,在你目前或未来的工作中,新语a或新技术可能很重要Q也可能不怎么重要Q你所学习(fn)的东西ƈ不一定非要针对你的工作。不要怕失败,M新的技术对初学者来说都是困隄。大多数的失败都可以归咎于本w急功q利Q希望速成。俗话说——千里之行,始于下Q应该脚t实圎ͼ一步一个脚印地往前走。不要让旉来左右你行动Q而是要利用时间来x、研I、测试新的开发技术和工具?/p>
数据l构、离散数学、编译原理,q些是所有计机U学的基Q如果不掌握它们Q很隑ֆ出高水^的程序。程序h人都?x)写Q但当你发现写到一定程度很隑ֆ提高的时候,应该想x不是要回q头来学学这些最基本的理论。不要一开始就dOOPQ即使你再精通OOPQ遇C些基本算法的时候可能也?x)束手无{。因此多M些计机基础理论斚w的书c是非常有必要的?/p>
2、丰富的惛_?/strong>
不要拘惔于固定的思维方式Q遇到问题的时候要多想几种解决问题的方案,试试别h从没惌的方法。丰富的惛_力是建立在丰富的知识的基上,除计机以外Q多涉猎其他的学U,比如天文、物理、数学等{。开阔的思维对程序员来说很重要?/p>
3、最单的是最好的
q也许是所有科学都遵@的一条准则,复杂的质能{换原理在爱因斯坦眼里不过是一个简单得不能再简单的公式QE=mc2。简单的Ҏ(gu)更容易被人理解,更容易实玎ͼ也更Ҏ(gu)l护。遇到问题时要优先考虑最单的Ҏ(gu)Q只有简单方案不能满求时再考虑复杂的方案?/p>
4、不ȝ角尖
当你遇到障碍的时候,不妨暂时q离?sh)脑Q看看窗外的风景Q听听轻音乐Q和朋友聊聊天。当我遇到难题的时候会(x)ȝ游戏Q当负责游戏的那部分大脑l胞(yu)极度亢奋的时候,负责~程的那部分大脑l胞(yu)得C(jin)充分的休息。当重新开始工作的时候,我会(x)发现那些N现在竟然可以q刃而解?/p>
5、对{案的(f)?/strong>
人类自然U学的发展史是一个(f)求得到答案的q程Q即使只能知道答案的一部分也值得我们M出。只要你坚定信念Q一定要扑ֈ问题的答案,你才?x)付出精力去探?ch)Q即使最后没有得到答案,在过E中你也?x)学到很多东ѝ?/p>
6、多与别Z?/strong>
三h行必有我师,也许在一ơ和别h不经意的谈话中,可以迸出灵感的火花。多上上|,看看别h对同一问题的看法,?x)给你很大的启发?/p>
7、良好的~程风格
注意L良好的习(fn)惯,代码的羃q编排,变量的命名规则要始终保持一致。大安知道如何排除代码中错误,却往往忽视?jin)对注释的排错。注释是E序的一个重要组成部分,它可以你的代码更容易理解,而如果代码已l清楚地表达?jin)你的思想Q就不必再加注释?jin),如果注释和代码不一_(d)那就更加p糕?/p>
8、韧性和毅力
q也许是“高手”和一般程序员最大的区别。高手们q不是天才,他们是在无数个日日夜夜中炼出来的。成***能给我们带来无比的喜(zhn),但过E却是无比的枯燥乏味。你不妨做个试Q找?0000以内的素数表Q把它们全都抄下来,然后再检查三遍,如果能够不间断地完成q一工作Q你可以满一条?/p>