计算机技术领域当前的主流技术及社会需求调查报告

近几年我国的IT队伍存在严重的结构失衡,既缺乏高级IT人才,也缺乏技能型、应用型信息技术人才,以及一大批能从事基础性工作的技术人员。未来国内IT企业将需要大量的通用软件开发人才。同时,针对各行各业的软件定制服务也将对软件人才提出更高的要求,最好是该行业的从业人员能够进入IT业设计适合行业特征的软件。 
  随着经济的高速发展和教育规模的大幅提高,中国IT人才培养成为教育培训界的热点。然而,软件人才仍然严重短缺。软件人员择业困境,IT企业招人更困难,这两大难题成了业界探讨的焦点话题。 
  那么,我们先来看看中国软件行业存在的问题: 
  1、资金投资不足 
  2、软件人才流失严重 
  3、软件盗版现象严重 
  4、软件开发的工程化、规模化程度比较低 
  5、科技成果产业化的能力差,国产软件市场占有率不高 
  中国的IT队伍存在严重的结构失衡,既缺乏高级IT人才,也缺乏技能型、应用型信息技术人才,以及一大批能从事基础性工作的技术人员。中国软件人才的“金字塔”型合理结构并未实现,软件产业健康、快速发展所需要三类人才:既懂技术又懂管理的软件高级人才、系统分析及设计人员(软件工程师)、熟练的程序员(软件蓝领)这三类由高到低的人才结构并未呈金字塔型。除此之外,人才的地区分布差异也比较明显,一些发达城市人才有供过于求现象,而边远城市人才则普遍匮乏。目前,软件开发主要分两类,一类是通用软件开发;另一类是软件定制服务。未来国内IT企业将需要大量的通用软件开发人才。同时,针对各行各业的软件定制服务也将对软件人才提出更高的要求,最好是该行业的从业人员能够进入IT业设计适合行业特征的软件。 
    从我国软件产业市场发展的进程来看,目前还处于起步阶段,与发达国家相比,我们还有一定的距离。随着经济全球化的进一步推进、中国加入WTO,中国软件业将面临更加广阔的国际市场以及前所未有的走出去的发展机会。近年来,国内的一些软件企业积极地进入国际市场,在不同程度上参与国际竞争,尤其是在软件外包方面取得一点效果,我国作为WTO的正式成员,国内软件企业“走出去”必将获得在国际市场发展的机会,“走出去”是大势所趋。 
  另外企业要想进入国际市场,必须首先完善自我,增强了企业的全球意识,强化国际化的商品观念、市场观念、竞争观念、风险观念、信誉观念、法制观念等,这无疑对企业本身是有好处的,相反,如果采取“闭门造车”的策略,即使在技术竞争中取得优势,也很难成为被国际广泛接受的主流技术,因此国内的软件企业要想做大做强,必须走出去,必须利用市场优势,广泛开展国际合作,绝不能闭门造车。

主流软件开发语言一:Java作为跨平台的语言,可以运行在Windows和Unix/Linux下面,长期成为用户的首选。自JDK6.0以来,整体性能得到了极大的提高,市场使用率超过20%。感觉已经达到了其鼎盛时期了,不知道后面能维持多长时间。 二:C三:C++以上2个作为传统的语言,一直在效率第一的领域发挥着极大的影响力。像Java这类的语言,其核心都是用C/C++写的。在高并发和实时处理,工控等领域更是首选。 四:VB微软的看家法宝,实在是太好用了。 五:php同样是跨平台的脚本语言,在网站编程上成为了大家的首选,支持PHP的主机非常便宜,PHP+Linux+MySQL+Apache的组合简单有效。 六:Perl脚本语言的先驱,其优秀的文本处理能力,特别是正则表达式,成为了以后许多基于网站开发语言(比如php,java,C#)的这方面的基础。 七:PyThon是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用。 这种语言具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行。 目前,基于这种语言的相关技术正在飞速的发展,用户数量急剧扩大,相关的资源非常多。 八:C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言,并定于在微软职业开发者论坛(PDC)上登台亮相.C#是微软公司研究员Anders Hejlsberg的最新成果.C#看起来与Java有着惊人的相似;它包括了诸如单一继承,界面,与Java几乎同样的语法,和编译成中间代码再运行的过程.但是C#与Java有着明显的不同,它借鉴了 Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NET windows网络框架的主角 九:Javascript Javascript是一种由Netscape的 LiveScript发展而来的脚本语言,主要目的是为了解决服务器终端语言,比如Perl,遗留的速度问题。当时服务端需要对数据进行验证,由于网络速度相当缓慢,只有28.8kbps,验证步骤浪费的时间太多。Ruby的作者认为Ruby > (Smalltalk + Perl) / 2,表示Ruby是一个语法像Smalltalk一样完全面向对象、脚本执行、又有Perl强大的文字处理功能的编程语言 

    电脑程序编制员即程序员,是指从事程序开发、维护的专业人员。一般我们将程序员分为程序设计人员和程序编码员,但两者的界限并不非常清楚,特别是在中国。 
作一个真正合格的程序员,应该具有的素质。 
1:团队精神和协作能力 
团队精神和写作能力是作为一个程序员应具备的最基本的素质。软件工程已经提了将近三十年了,当今的软件开发已经不是编程了,而是工程。独行侠可以写一些程序也能赚钱发财,但是进入研发团队,从事商业化和产品化的开发任务,就必须具备这种素质。可以毫不夸张的说这种素质是一个程序员乃至一个团队的安身立命之本。 
2:文档习惯 
文档是一个软件系统的生命力。一个公司的产品再好、技术含量再高,如果没有缺乏文档,知识就没有继承,公司还是一个来料加工的软件作坊。作为代码程序员,必须将30%的工作时间写用于技术文档。没有文档的程序员势必会被淘汰。 
3:规范化的代码编写习惯 
知名软件公司的代码的变量命名、注释格式,甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定,良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。 一些所谓的高手甚至叫嚣高手写的代码一般人看不懂,我只能说他不是一名合格的程序员。 
4:需求理解能力 
程序员要能正确理解任务单中描述的需求。在这里要明确一点,程序员不仅仅要注意到软件的功能需求,还应注意软件的性能需求,要能正确评估自己的模块对整个项目中的影响及潜在的威胁,如果有着两到三年项目经验的熟练程序员对这一点没有体会的话,只能说明他或许是认真工作过,但是没有用心工作。 
5:模块化思维能力 
作为一个优秀的程序员,他的思想不能在局限当前的工作任务里面,要想想看自己写的模块是否可以脱离当前系统存在,通过简单的封装在其他系统中或其他模块中直接使用。这样做可以使代码能重复利用,减少重复的劳动,也能是系统结构越趋合理。模块化思维能力的提高是一个程序员的技术水平提高的一项重要指标。 
6:测试习惯 
测试是软件工程质量保证的重要环节,但是测试不仅仅是测试工程师的工作,而是每个程序员的一种基本职责。程序员要认识测试不仅是正常的程序调试,而要是要进行有目的有针对性的异常调用测试,这一点要结合需求理解能力。 
7:学习和总结的能力 
程序员是很容易被淘汰的职业,所以要善于学习总结。许多程序员喜欢盲目追求一些编码的小技巧,这样的技术人员无论学了多少语言,代码写起来多熟练,我们只能说他是一名熟练的代码民工,他永远都不会有质的提高。一个善于学习的程序员会经常总结自己的技术水平,对自己的技术层面要有良好的定位,这样才能有目的地提高自己。这样才能逐步提高,从程序员升级为软件设计师系统分析员、项目经理。 
作为高级程序员,乃至于设计师而言,除了应该具备上述全部素质之外,还需要具备以下素质: 
1、 需求分析能力 
2、 整体框架能力 
3、 流程处理能力 
4、 模块分解能力 
5、 整体项目评估能力 
6、 团队组织管理能力 

         程序设计离不开编程语言,但是编程语言在国内的大环境中似乎一直是个二等公民。国内的计算机教育和工程培训,似乎一直在宣传“语言不重要,重要的是思想”,“语言一通百通”等观点,甚至在许多人眼中“语言的讨论”完全是不入流的,但其实“编程语言”与“工具”、“框架”或是“开发方法”等事物一样,都对生产力有着重要的影响。事实上,语言的发展历史比其他方面更为悠久,并且在过去十几年,甚至最近几年中都依然在不断的碰撞,演变。期间一些新的语言诞生了,而另一些在当时看来阳春白雪的语言和编程范式也重新获得了人们的重视。

Anders Hejlsberg是微软的Technical Fellow,担任C#编程语言的首席架构师,也参与了.NET Framework,以及VB.NET和F#等语言的设计与开发。几个月前,Anders在比利时的TechDays 2010荷兰DevDays 2010分别进行了一场演讲,阐述了他眼中对于编程语言的发展趋势及未来方向,本文便对他的观点进行了总结。

大约25到30年前,Anders开发了著名的Turbo Pascal,这是一套集语言、编译器及开发工具于一体的产品,这也是Anders进入编程语言这一领域的起点。Anders谈到,如今的计算机和当年他开发的Turbo Pascal所用的Z-80已经不可同日而语。从那时算起,如今的机器已经有大约10万倍的外部存储容量,1万倍的内存大小,CPU速度也有大约1000倍的提高。但是,如果我们比较如今的Java代码及当年Pascal代码,会发现它们的差别其实并不大。Anders认为编程语言的发展非常缓慢,期间当然出现了一些东西,例如面向对象等等,但是远没有好上1000倍。事实上,近几十年来的努力主要体现在框架及工具等方面(如下图)。例如.NET Framework里有超过一万个类及十万个方法,与Turbo Pascal相比的确有了超过1000倍的增长。同样类似,现在的IDE包含了无数强大的功能,例如语法提示,重构,调试器等等。与此相比,编程语言的改进的确很不明显。

 

在过去5、60年的编程历史中,编程语言的抽象级别不断提高,人们都在努力让编程语言更有表现力,这样我们可以用更少的代码完成更多的工作。我们一开始使用汇编,然后使用面向过程的语言(如Pascal和C),然后是面向对象语言(如C++),随后便进入了托管时代,语言运行于受托管的执行环境上(如C#,Java),它们的主要特性有自动的垃圾收集,类型安全等等。Anders认为这样的趋势还会继续保持下去,我们还会看到抽象级别越来越高的语言,而语言的设计者则必须理解并预测下一个抽象级别是什么样子的。另一方面,如.NET,Java等框架的重要性提高了许多,编程语言往往都倾向于构建于现有的工具上,而不会从头写起。现在出现的编程语言,例如F#,以及Java领域的ScalaClojure等等,它们都是基于现有框架构建的,每次从头开始的代价实在太高。

在Anders眼中,如今影响力较大的趋势主要有三种(如下图),它们分别是“声明式的编程风格”(包括“领域特定语言”及“函数式编程”)、过去的五年非常火热的“动态语言”(其最重要的方面便是“元编程”能力)以及多核环境下的“并发编程。此外随着语言的发展,原本常用的“面向对象”语言,“动态语言”或是“函数式”等边界也变得越来越模糊,例如各种主要的编程语言都受到函数式语言的影响。因此,“多范式”程序设计语言也是一个愈发明显的趋势。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值