未来WEB程序员
作为一名程序员,如果你想在这个领域内继续向前进步或者在当前的经济形势下保持不被炒鱿鱼,那么你就决不应当自满自足,你需要继续学习。近日,著名IT评论员Justin James在他的博客中列出了未来五年程序员应当具备的十项技能,如果照此实践,你未来的工作前景一定一片光明。
当前的经济形势下,很多程序员将目光聚焦在短期内的工作形式上,但是你仍然要抽出时间和精力学习新的技能。以下是作为程序员应当即刻学习的十项技能,以确保在未来五年内你的简历上有真材实料。当然这个名单很难做到详尽而没有遗漏,有些领域没有涉及到(比如大型机开发者)。然而,对于一般的主流开发而言,你至少要学会以下十条中的七条,而且掌握的程度不是那种你在工作面试上能够夸夸其谈,而是真正能够用于实际开发。
1,三大主流开发体系之一(.NET, Java, PHP)
除非软件开发领域发生巨大的变革(这机率好比行星撞击地球),不然程序员至少需要知道三大开发系统中(.NET (VB.NET or C#), Java, PHP)的一种。而且仅仅了解核心语言是不够的,因为现在的项目拥有越来越多的不同功能,这也迫使程序员对相关的框架和库了解得更深。
2,富客户端应用(Rich Internet Applications)
无论你对Flash是爱还是恨,我们都不得不承认在过去的几年里Flash的发展壮大已远不仅是应用于动画制作。Flash以及Flex和AIR都具备越来越多的功能。而Flash的竞争者,如JavaFX和Silverlight等也在不断提升自身的性能和表现。让富互联网应用更加活跃的是,HTML 5正整合进所有种类的RIA功能,包括数据库连接、将W3C置于AJAX上等。在不远的将来,作为一名RIA领域的专家无疑将给你的简历添上浓重的一笔。
3,Web页面开发
Web开发恐怕在未来的很长时间内都是主流技术之一。许多程序员往往满足于构建后台、或者只是专注于框架基础而忽略了Web。但是越来越多的企业需要如何在交互代码(hand code)级别处理Web技术的人员,所以掌握JavaScript、CSS和HTML必将在未来五年内的职场上无往不胜。
4,Web服务端开发
REST 还是SOAP? JSON 还是XML?当然选择答案得依据项目来定,但如果一名程序员不会创建Web服务(尽管这个程序员也许不用写Web应用),那么他在工作岗位上一定倍感艰难。因为即便是过去那些被ODBC, COM或者 RPC主宰的领域现在也转到了一些形式的Web服务上了。
5,软性技能
一段时间以来就有这样一种趋势即:无论在企业内部还是企业外部提高IT的能见度。程序员被越来越多地带去参加非开发性会议来提供技术支持。例如,没有IT升级系统,首席财务官不可能改变收支细则;没有IT升级CRM工作流,运营总监不可能改变一个中心呼叫进程。同样,客户经常直接与开发团队沟通以确保他们的需求被完成。是否每个程序员都应该回去学习礼仪课来与别人更好的交往呢?那倒不必,但是程序员的确要提高待人接物的软性能力,以在职场上获得更大的价值。
6,一种动态或者函数式程序设计语言(Functional Programming Language)
类如Ruby, Python, F#和Groovy等的语言虽然不完全主流,但是语言内部包含的思想却是开发界的主流。比如,微软.NET中的LINQ系统就是函数式程序设计语言的一个直接派生。得益于Rails框架和Silverlight的发展,Ruby和Python语言在一些领域变得很热门。学习这样一门语言不仅丰富了你的简历,而且会开阔你的开发视野。我所遇到的顶级开发者几乎都曾在演讲中提到学习一门动态语言或者函数式程序设计语言的重要性,就我的个人经历而言,这确实很有用。
7,敏捷开发
当敏捷开发第一次冲击主流的开发意识时,我跟许多开发者一样持怀疑的观点。因为它抛弃了控制、标准等,看起来是一种完全与传统方法相悖的开发方法。但随着时间的发展,敏捷背后的思想被定义的越来越好,应用得也越来越棒。许多开发或者采用敏捷,或者在敏捷开发的实验阶段。尽管敏捷不是失败项目的万灵药,但它确实在软件开发中有一席之地。那些对敏捷有很好的理解并且有应用经历的开发者必将在未来五年内成为抢手货。
8,业务领域知识
开发团队越来越被看做是项目的合作者,这意味着了解该领域的开发者将对该项目的贡献更大。有了敏捷,开发者可以说我们可以在这儿很简单地增加这个功能,而这将让我们的产品更具价值。或者这个要求不符合我们日志显示的常用类型。由于越来越多的程序员反对必须了解该领域内的所有问题(实际上也不可能做到),所以不可否认的是越来越多的企业希望开发者起码了解该领域内的基础知识,越多越好。
9,质量控制
几年前的时候,很多企业和产品没有bug跟踪系统、没有版本控制和其他类似的工具,所写出的代码和产品都只是跟程序员和他所用的IDE有关。幸而开发领域有了新的、集成的工具如Microsoft Visual Studio Team System,而且产品、代码高质量及可用性的透明度提高,开源环境等,现在没有这种工具的企业已经越来越少稀少。开发者除了知道如何源代码控制、如何使用VM系统构建测试环境之外,还要做更多的质量控制工作,并具备很好的清洁意识来确保他与他的团队协调一致。那些将代码处存在个人硬盘中,没有记录代码变更、任务目录等的开发者,不但在传统的开发环境中不受欢迎,在敏捷的开发环境中也不受欢迎。
10,移动开发
在上世纪90年代末,Web开发一跃成为主流并且将原来传统的桌面应用开发边缘化。在2008,移动开发大肆进入人们的视野,而且至少在五年内移动开发都将是开发领域的重中之重。当然移动开发的方式有很多种,但无论你选择哪一种都将令你成为未来的抢手货。
未来WEB程序员的更多相关文章
- .NET WEB程序员需要掌握的技能
本来这个是我给我们公司入职的新人做一个参考,由于 @张善友 老师在他的微信号转了我的这篇文章<<.Net WEB 程序员需要掌握的技能>>,很多人觉得比较有用,说是看了后知道一 ...
- Web程序员开发App系列 - 开发我的第一个App,源码下载
Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 ...
- Web程序员开发App系列 - 调试Android和IOS手机代码(补图)
Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 ...
- Web程序员开发App系列 - 申请苹果开发者账号
Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 ...
- Web程序员开发App系列 - 认识HBuilder
Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 ...
- Web程序员最常用的11款PHP框架
PHP框架是Web程序员和开发人员最为有用的工具. PHP框架可以帮助用户更快地开发项目. 今天我将为开发人员带来几款最好的PHP框架,希望能对你有用. 1.Agavi Agavi是一款强大的,可扩展 ...
- 【Web探索之旅】第四部分:Web程序员
内容简介 1.第四部分第一课:什么是Web程序员? 2.第四部分第二课:如何成为Web程序员? 3.第四部分第三课:成为优秀Web程序员的秘诀 第四部分:Web程序员(完结篇) 大家好.终于来到了[W ...
- 深圳尚学堂:Web程序员应该会的知识
互联网的行业里涌入了很多的程序员, 都在为互联网的发展添砖加瓦.程序员可以分为很多种,像Unix程序员.Windows程序员,或是C++程序员.Delphi程序员,等等.今天我们谈谈Web程序员,一名 ...
- Web程序员必备的CSS工具
对于web开发来说,CSS是最有效的美化页面.设置页面布局的技术.但问题是,CSS是一种标记性语言,语法结构非常的松散.不严谨.WEB程序员会经常发现自己的或别人的CSS文件里有大量的冗余代码或错误或 ...
随机推荐
- decorators.xml的用法 (转)
spring,hibernate框架做的,对了,还有jQuery. 我用jquery做异步请求到后台,生成json数据返回前台生成下拉输入框,请求到后台以后,成功生成了json数据并根据struts的 ...
- Web网页性能管理详解
你遇到过性能很差的网页吗? 这种网页响应非常缓慢,占用大量的 CPU 和内存,浏览起来常常有卡顿,页面的动画效果也不流畅. 你会有什么反应?我猜想,大多数用户会关闭这个页面,改为访问其他网站.作为一个 ...
- screenX clientX pageX的区别
screenX:鼠标位置相对于用户屏幕水平偏移量,而screenY也就是垂直方向的,此时的参照点也就是原点是屏幕的左上角. clientX:跟screenX相比就是将参照点改成了浏览器内容区域的左上角 ...
- VBA对象模型(2)
Excel对象模型简介 在介绍Excel对象模型之前,让我们先来看一个简单的例子.大多数工厂都是按这样的结构进行设置的:最上层为工厂总部,第二层次分为各个车间,在车间下面又分各班组.就这样组织在一起, ...
- Qt之模拟时钟
简述 Qt自带的示例中有一个是关于时钟,演示了如何用QPainter的转换和缩放特性来绘制自定义部件. 其中主要包含了时针.分针的绘制,并不包含秒针.下面,我们在原示例的基础上进行扩展. 简述 实现方 ...
- poj-----(2528)Mayor's posters(线段树区间更新及区间统计+离散化)
Mayor's posters Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 43507 Accepted: 12693 ...
- android:launchMode的四种方式
Activity一共有以下四种launchMode: standard singleTop singleTask singleInstance 1.standard standard模式是默认的启动模 ...
- Java集合——Map接口
1.定义 Map用于保存存在映射关系<key,value>的数据.其中,key值不能重复(使用equals()方法比较),value值可以重复 2.方法 V put(key,value) ...
- java面向对象编程— —第七章 继承
7.1继承的起源 继承(Inheritance),即在面向对象编程中,可以通过扩展(extends)一个已有的类,并继承该类的属性的行为,来创建一个新的类. 已有的类称为父类(也可以称为基类,超类), ...
- thinking in java 之Reference类的使用
Reference是java中的特殊引用类.描述的是特殊作用(主要是关于垃圾回收对象)的引用. 它有3个子类: 1.SoftReference; 2.WeakReference 3.PhantomRe ...