【php】大小写字母转换函数

首字母变大写:ucwords()

<?php
$foo = 'hello world!';
$foo = ucwords($foo);             // Hello World!

$bar = 'HELLO WORLD!';
$bar = ucwords($bar);             // HELLO WORLD!
$bar = ucwords(strtolower($bar)); // Hello World!
?>

 第一个词首字母变大写:ucfirst()

<?php
$foo = 'hello world!';
$foo = ucfirst($foo);             // Hello world!

$bar = 'HELLO WORLD!';
$bar = ucfirst($bar);             // HELLO WORLD!
$bar = ucfirst(strtolower($bar)); // Hello world!
?>

 第一个词首字母小写lcfirst()

<?php
$foo = 'HelloWorld';
$foo = lcfirst($foo);             // helloWorld

$bar = 'HELLO WORLD!';
$bar = lcfirst($bar);             // hELLO WORLD!
$bar = lcfirst(strtoupper($bar)); // hELLO WORLD!
?>

 

字母变大写:strtoupper()

字母变小写:strtolower()

【php】phpExcel解决抛出“Unknown codepage: 10008”异常

在读取Excel数据的时候,用windows系统操作是没问题的,但是用MAC系统就会抛出“Unknown codepage: 10008”异常,异常信息如下:

原因是: excel/PHPExcel/Shared/CodePage.php没有对10008对应的现象进行处理。

解决方法如下:

找到excel/PHPExcel/Shared/CodePage.php找到switch条件语句为10008添加处理。代码如下:

case 10008:	return 'MAC';		        break;	//	10008 MAC - Simplified Chinese (GB 2312)

 CodePage处理代码号

037 IBM EBCDIC – U.S./Canada
437 OEM – United States
500 IBM EBCDIC – International
708 Arabic – ASMO 708
709 Arabic – ASMO 449+, BCON V4
710 Arabic – Transparent Arabic
720 Arabic – Transparent ASMO
737 OEM – Greek (formerly 437G)
775 OEM – Baltic
850 OEM – Multilingual Latin I
852 OEM – Latin II
855 OEM – Cyrillic (primarily Russian)
857 OEM – Turkish
858 OEM – Multlingual Latin I + Euro symbol
860 OEM – Portuguese
861 OEM – Icelandic
862 OEM – Hebrew
863 OEM – Canadian-French
864 OEM – Arabic
865 OEM – Nordic
866 OEM – Russian
869 OEM – Modern Greek
870 IBM EBCDIC – Multilingual/ROECE (Latin-2)
874 ANSI/OEM – Thai (same as 28605, ISO 8859-15)
875 IBM EBCDIC – Modern Greek
932 ANSI/OEM – Japanese, Shift-JIS
936 ANSI/OEM – Simplified Chinese (PRC, Singapore)
949 ANSI/OEM – Korean (Unified Hangeul Code)
950 ANSI/OEM – Traditional Chinese (Taiwan; Hong Kong SAR, PRC)
1026 IBM EBCDIC – Turkish (Latin-5)
1047 IBM EBCDIC – Latin 1/Open System
1140 IBM EBCDIC – U.S./Canada (037 + Euro symbol)
1141 IBM EBCDIC – Germany (20273 + Euro symbol)
1142 IBM EBCDIC – Denmark/Norway (20277 + Euro symbol)
1143 IBM EBCDIC – Finland/Sweden (20278 + Euro symbol)
1144 IBM EBCDIC – Italy (20280 + Euro symbol)
1145 IBM EBCDIC – Latin America/Spain (20284 + Euro symbol)
1146 IBM EBCDIC – United Kingdom (20285 + Euro symbol)
1147 IBM EBCDIC – France (20297 + Euro symbol)
1148 IBM EBCDIC – International (500 + Euro symbol)
1149 IBM EBCDIC – Icelandic (20871 + Euro symbol)
1200 Unicode UCS-2 Little-Endian (BMP of ISO 10646)
1201 Unicode UCS-2 Big-Endian
1250 ANSI – Central European
1251 ANSI – Cyrillic
1252 ANSI – Latin I
1253 ANSI – Greek
1254 ANSI – Turkish
1255 ANSI – Hebrew
1256 ANSI – Arabic
1257 ANSI – Baltic
1258 ANSI/OEM – Vietnamese
1361 Korean (Johab)
10000 MAC – Roman
10001 MAC – Japanese
10002 MAC – Traditional Chinese (Big5)
10003 MAC – Korean
10004 MAC – Arabic
10005 MAC – Hebrew
10006 MAC – Greek I
10007 MAC – Cyrillic
10008 MAC – Simplified Chinese (GB 2312)
10010 MAC – Romania
10017 MAC – Ukraine
10021 MAC – Thai
10029 MAC – Latin II
10079 MAC – Icelandic
10081 MAC – Turkish
10082 MAC – Croatia
12000 Unicode UCS-4 Little-Endian
12001 Unicode UCS-4 Big-Endian
20000 CNS – Taiwan
20001 TCA – Taiwan
20002 Eten – Taiwan
20003 IBM5550 – Taiwan
20004 TeleText – Taiwan
20005 Wang – Taiwan
20105 IA5 IRV International Alphabet No. 5 (7-bit)
20106 IA5 German (7-bit)
20107 IA5 Swedish (7-bit)
20108 IA5 Norwegian (7-bit)
20127 US-ASCII (7-bit)
20261 T.61
20269 ISO 6937 Non-Spacing Accent
20273 IBM EBCDIC – Germany
20277 IBM EBCDIC – Denmark/Norway
20278 IBM EBCDIC – Finland/Sweden
20280 IBM EBCDIC – Italy
20284 IBM EBCDIC – Latin America/Spain
20285 IBM EBCDIC – United Kingdom
20290 IBM EBCDIC – Japanese Katakana Extended
20297 IBM EBCDIC – France
20420 IBM EBCDIC – Arabic
20423 IBM EBCDIC – Greek
20424 IBM EBCDIC – Hebrew
20833 IBM EBCDIC – Korean Extended
20838 IBM EBCDIC – Thai
20866 Russian – KOI8-R
20871 IBM EBCDIC – Icelandic
20880 IBM EBCDIC – Cyrillic (Russian)
20905 IBM EBCDIC – Turkish
20924 IBM EBCDIC – Latin-1/Open System (1047 + Euro symbol)
20932 JIS X 0208-1990 & 0121-1990
20936 Simplified Chinese (GB2312)
21025 IBM EBCDIC – Cyrillic (Serbian, Bulgarian)
21027 Extended Alpha Lowercase
21866 Ukrainian (KOI8-U)
28591 ISO 8859-1 Latin I
28592 ISO 8859-2 Central Europe
28593 ISO 8859-3 Latin 3
28594 ISO 8859-4 Baltic
28595 ISO 8859-5 Cyrillic
28596 ISO 8859-6 Arabic
28597 ISO 8859-7 Greek
28598 ISO 8859-8 Hebrew
28599 ISO 8859-9 Latin 5
28605 ISO 8859-15 Latin 9
29001 Europa 3
38598 ISO 8859-8 Hebrew
50220 ISO 2022 Japanese with no halfwidth Katakana
50221 ISO 2022 Japanese with halfwidth Katakana
50222 ISO 2022 Japanese JIS X 0201-1989
50225 ISO 2022 Korean
50227 ISO 2022 Simplified Chinese
50229 ISO 2022 Traditional Chinese
50930 Japanese (Katakana) Extended
50931 US/Canada and Japanese
50933 Korean Extended and Korean
50935 Simplified Chinese Extended and Simplified Chinese
50936 Simplified Chinese
50937 US/Canada and Traditional Chinese
50939 Japanese (Latin) Extended and Japanese
51932 EUC – Japanese
51936 EUC – Simplified Chinese
51949 EUC – Korean
51950 EUC – Traditional Chinese
52936 HZ-GB2312 Simplified Chinese
54936 Windows XP: GB18030 Simplified Chinese (4 Byte)
57002 ISCII Devanagari
57003 ISCII Bengali
57004 ISCII Tamil
57005 ISCII Telugu
57006 ISCII Assamese
57007 ISCII Oriya
57008 ISCII Kannada
57009 ISCII Malayalam
57010 ISCII Gujarati
57011 ISCII Punjabi
65000 Unicode UTF-7
65001 Unicode UTF-8

【技术排行榜】2013年10月编程语言排行榜:Groovy首次挤进Top 20

TIOBE公布了2013年10月份编程语言排行榜,细心的朋友可能会发现,本月前三甲有所变动,Objective-C与C++位置悄然互换,分别为:C、Java、Objective-C。

值得一提的是,本月Groovy首次进入前20名(排名18,2012年10月份其排名53位,上升幅度强劲)。Groovy是一种面向对象的脚本语言,能够运行在Java虚拟机上。其完全兼容Java, Groovy的语法与Java非常相似,因此很容易将Java语言编译成Groovy。Groovy能否在未来几个月继续保持前20的排名呢?我们翘首以待。

其他看点,Transact-SQL、Visual Basic.NET、COBOL上升趋势也较为迅猛。

以下是前20名榜单排行榜:

前10名编程语言长期走势图:

以下是21-50编程语言排名:

后50名的语言如下:

(Visual) FoxPro, 4th Dimension/4D, ABC, Algol, Alice, APL, ATLAS, Automator, Awk, BlitzMax, CFML, cg, Clean, Clojure, cT, Dart, Eiffel, Forth, GNU Octave, Go, Icon, Inform, Informix-4GL, Io, J, J#, JScript.NET, LabVIEW, Modula-2, Moto, MS-DOS batch, NATURAL, NQC, Object Rexx, OCaml, OpenCL, OpenEdge ABL, PILOT, Pure Data, Q, Revolution, S, S-PLUS, Smalltalk, Squirrel, Standard ML, VBScript, VHDL, X10, Z shell

【说明】

TIOBE编程语言社区排行榜是编程语言流行趋势的一个指标,每月更新,这份排行榜排名基于互联网上有经验的程序员、课程和第三方厂商的数量。排名使用著名的搜索引擎(诸如Google、MSN、Yahoo!、Wikipedia、YouTube以及Baidu等)进行计算。请注意这个排行榜只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。

【技术杂谈】对一边旅行一边编程的生活方式的体验和思考

PS:如果有时间有机会,还真的想去尝试下这种一边旅游一边编程的生活!说来这也是自己一直以来想要的生活体验!


大概三个月前,我工作的公司突然倒闭了。

倒闭的原因跟这篇文章的内容毫不相干,但简言之,投资者毁约,一个开发中的产品,也就是我主要工作那个,被迫终止了。

我从没有想过会发生这种事情。一下子变成了待业,我是刚休完假回来,而且还就当前稳定的工作做了一个中长期计划。

但事情就这样发生了,而且是一夜之间,我不得不思考下一步的出路。

远程工作的想法一直吸引着我。我知道,在某种程度上我是想逃离这种朝九晚五的桎梏,带着我的笔记本,去寰球旅行,以自由编程职业者的身份做一些小项目,全面体验生活的同时还锻炼我的技术能力,不至于让自己变得生疏。

于是,突然间,我就变成了一个数字游民,没有包袱,没有贷款,没有孩子,有一点积蓄,没有近期必须要做的事情。

需要说一下,我的决定下的非常简单——这是一次绝好的做一次旅行的机会,我一直盼望着的。

我的旅游线路的选择非常的好理解,数个原因最终导致了我买了一张去往曼谷的机票。

东南亚自由港!

我到欧洲一些城市旅游过,所以我去世界里另外一部分。

我曾在美国待过一年,我很想回去看看,但我迫不及待的想开始我的旅程,而对一个波兰人说,美国签证既昂贵又难拿到。

澳大利亚对于做长期旅游来说花费实在太高,尤其是像我这种情况,我喜欢潜水、冲浪和其它一些户外运动,这些运动即使在一些“便宜”的国家里也是价格不菲,更别提在澳大利亚了。

所以,东南亚成了很明显的选择。那里是有预算限制的旅游人的圣地。网上有很多到过那里的人写的无数的博客,我想,这应该是一个人的一生中至少要经历过一次的一件事。

幸运的是,我有一些小客户,当我还在公司上班时,下班后会给他们干几个小时,虽然收入不多,但在旅途中,这也是一种相当大的经济保障。

经过了一个月的准备(打疫苗,装备,景点计划),我和女友背起背包(42升的Northface Duffels包——高度推荐,虽然不是做长途旅行的最佳选择),启程飞向曼谷,开始了我们泰国,越南,老挝,柬埔寨的旅游计划。

现在,我已经旅行两个月了,为我在波兰的客户远程工作。这些简单的工作大多数是维护修改一些现有的网站,但我后来想办法接了一个大一点的Rails项目,这个需要我从头开发。

目前为止,这是一次非常值得的、有启发的(尽管不是在技术方面)的体验,但也显露出一些小的问题,我想在这里分享给大家。

主要的,我发现我需要反复面对两个非常重要的问题:

1) 项目类型限制,在旅途中你可以做的项目;

2) 对不依赖办公地点的错误认识;

只能做一些小的简单的项目

这对于我来说是巨大的不利。起初我觉得做一些小项目能让我保持漂泊状态就行了,但现在的现实情况是,我越来越有一种没有成就和浪费时间的感觉。

没错,在泰国帕岸岛的小屋里打开你的笔记本电脑,一边跟客户网上交流一边开发项目,旁边就是海滨,这很有趣。你做完工作,跳进30度左右的海水里,更美妙的,你可以自由的潜水到数个珊瑚礁里,但这需要另付费。

我并不是真正的认为长时间的旅游是一种浪费时间。旅途中你能获得很多的见识和机会,但事情往往是不能兼得。

如果你喜欢挑战,需要不断的在你的技术领域中取得自身发展,可在旅途中你很难达到这方面的平衡。

当然,这取决于你开发的项目的类型和实现中面对的技术问题,但说老实话,当你在不断的变换地方,经常遇到不可预知的网络状况,渴望最大限度的享受旅游中的快乐,你根本无法去做那些有难度的挑战性的工作,这些工作需要数小时的分析,讨论和复杂的编程。

旅途中有太多让你分心的事,工作后(有时是工作中)有太多的东西吸引你去观看。

我非常理解,有些人会把这当作一种自制力问题,一种如何计划,如何准备的问题,但对于我来说,绝不是这样的。

我认为自己是一个非常能自控的人。我的客户满意我做的工作,我总是能按期完成任务,而且是高质量的。这是我自己定的目标。

问题不在这里。问题是,当涉及到中等复杂项目,涉及到不那么简单的编程任务时,我发现,很多在办公室里能完成的工作,在旅途中却变成了很有挑战或完全不可能的事情。

这种情况限制了我只能挑选一些容易处理,以及有富足的时间期限和只需要少量的研究的项目。

毫不隐瞒的说,还不止这些。我认为在一个由比你有经验、比你聪明的人组成的团队里工作,这对你的开发是至关重要的,作为自由职业者,只做一些小的项目、一些简单的MVC/CRUD编程工作,这就是相当于错失了很多成长和学习的机会。

但不要误会,我在忙碌的工作,每天都在努力学一些新知识,一直都在增长我作为程序员的各种技术能力。然而,在过去的两个月里,我感觉缺少把自己暴露在现实编程问题中的机会,那是我在公司工作时每天都会遇到的,那些问题是你一个人无法解决的。那些问题跟公司的大小无关。

不依赖办公地点的错觉

现在,我完全的相信远程工作是可行的,它对(a)程序员摆脱办公地点依赖和(b)减少公司开支是十分有效的途径。

但实际情况却完全不同。旅途中工作给了你一种工作地点不固定的感觉。当然,有的公司的办公地点会分布世界各地,但为了完成一个不那么简单的任务,你非常需要一个舒适的场所,好的网络连接,安静的环境,更好的一些设施,例如健身房,瑜伽室,酒吧。

还有一点很明显,在旅途中我发现,创造性较大的工作需要有一些作息规律。一周变换一个地方,工作在海滨,吊床里,咖啡馆里,酒吧里,旅馆地板上,对于度假来说这很酷,但很显然并不有助于解决困难的编程问题。

对于这些问题涉及到各种可能性和各种层面,我现在想了一些解决方案,下面就是。

1) 远程工作的内容要适合你的技术和你的能力。每三个月换一种技术方向。在每一个地方要多待一段时间。要让自己沉浸在当地的文化和生活节奏中,租一个好一点的屋子,要有一个正式的工作桌和椅子,要能确保你坐在上面能保持3个小时以上(如果你有站着工作的习惯,那就忽略这一点),要形成规律习惯。去你喜欢的地方,当你想换个地方时,先研究一下,然后再去。

2) 找一个真正的工作,在办公室里的工作,做你喜欢的和有挑战性的工作(事实上,一种应该这样),争取能长期假期,去旅行,每年大概2个月。

3) 积极做一些能够获得临时收入的wordpress网站和旅游网站相关的活,这能给你带来很多的收入,能让你旅游个够。

来源于:How I thought I wanted to become a digital nomad

【技术杂谈】程序员教流浪汉编程开发APP

一天,Patrick McConlogue宣布他将要教一个流浪汉学Java语言,帮助他开发一个属于他自己的app。今年23岁的Patrick是一名软件工程师,每天在去上班的路上他都会遇见那个流浪汉,然后他就决定践行自己的一个主意,看看他会不会是那个人。

“这个主意很简单。”Patrick在自己的网站上写道:

1、我明天再路过时给你100美元。

2、我明天再路过时给你三本JavaScript教程(入门级、高级、专家级)和一台便宜的笔记本。

当你感觉准备好了,之后的每一天我会早到一个小时教你编程。

果 然,那个有理想有抱负的流浪汉Leo决定学习怎样编程,他想着100美元不到一周就会花光,而知识则可以在未来创造财富。Leo 说:“他告诉我我可以有一台笔记本学着做点什么,我觉得那可以换来更多的东西。反正我有的是时间从头学。”Leo成为流浪汉已经2年了,当时失去人寿保险 代理人这份工作后,他的房租也涨了,因为附近陆续建起了豪华公寓。尽管生活倒霉,当Patrick给他提供两个选择时,Leo并没有不高兴或者绝望。他希 望自己能多掌握一项技能,以便再一次重新站起来自力更生。

Patrick 的主意受到了很多人的严厉指责,他们认为为Leo提供食物、衣服或者一个住处才是更好的选择,还有一些人觉得Patrick的做法是在侮辱别人。面对这 些,Patrick用一句老话回应他们:授人以鱼只能养活他一天,授人以渔却能养活他一生。这位年轻的编程师无视那些批评,给Leo买了一台便宜的三星笔 记本、三本编程书、他自己的WI-FI热点,开始教他怎样编程。每天早上Patrick会提前一个小时离开家,然后在公园与Leo碰面,教他各种需要掌握 的变量和函数。他们还一起研发一个app,并打算在第8个星期开始执行。关于这个app,他俩现在不想泄密,不过他们保证它会非常奇妙精彩,跟Leo个人 的主要兴趣有关——全球变暖和气候变化。

目前,这项开发试验还在进行中,Patrick和Leo对于他们已经取得成绩非常高兴。虽然有一些批评,不过他们的动态已经被大家普遍接受了。他们甚至还脸书上保持更新这个项目的进度,并集结了一大批粉丝。

原文链接:http://jandan.net/2013/10/05/teaches-homeless.html

【技术杂谈】令人讨厌的编程语言排行榜

为了避免引起语言之争,先声明一下,这个榜单统计的是跨语言开发者最讨厌的编程语言,比如你最喜欢使用A语言来编程,那么可能会对其他语言的某些特性看不惯。

这是一种很主观的看法,上榜的语言不代表这个语言不好,只是说明某些开发者不太喜欢这个语言中的某些特性而已。欢迎在评论中说出你对某些语言的看法。

下面这个排名是根据 Quora、Stack Overflow和Hacker News上相关帖子统计出来的。

10.  Python

上榜理由:代码缩进是用来指定块的结构,为什么不用括号或大括号呢?此外,大量使用冒号和下划线,模块、变量名冲突等。

如何避免:不要去Google、Yahoo或NASA工作

9.  LabVIEW

LabVIEW是一种由美国国家仪器(NI)公司研制开发的、类似于C和BASIC开发环境,使用图形化编辑语言G编写程序,产生的程序是框图的形式。

上榜理由:LabVIEW相当抽象,以致于将简单的问题变得极其复杂。这完全违背了其最初的目的。

如何避免:远离仪器控制类或工业自动化类的编程工作。

8.  JavaScript

上榜理由:区分大小写,跨浏览器需要不同的实现,缺乏调试功能(尽管可以使用Firebug)和奇怪的继承规则。

如何避免:不要去当Web开发人员。

7.  Tcl

Tcl是一种脚本语言,最早称为工具命令语言(Tool Command Language),但是目前已经不是这个含义。由John Ousterhout创建,经常被用于 快速原型开发 RAD、脚本编程、GUI和测试等方面。

上榜理由:语法太简单了,缺乏指针,无法通过引用来传递;将数组存储为字符串;可怜的list语义和混乱的变量范围。

如何避免:不要去Cisco、AOL或CNET公司或任何AOLserver或OpenACS平台的公司工作。

6.  COBOL

COBOL(Common Business Oriented Langauge,面向商业的通用语言),又称为企业管理语言、数据处理语言等,这是一种面向数据处理的、面向文件的、面向过程(POL)的高级编程语言,是一种功能很强而又极为冗长的语言。

上榜理由:极其繁琐的语法(目的是对非程序员可读);版本之间不兼容;缺乏面向对象编程、函数和指针等特性。

如何避免:不要去 政府、金融领域或军用企业工作。

5.  C++

上榜理由:庞大的函数集;手动内存管理;编译速度慢;事实上,它允许程序员在同一程序中同时使用面向对象和面向过程的编程模式。

如何避免:一般情况下,不要去Adobe、Google或游戏领域工作。

4.  PHP

上榜理由:大量函数存在不一致的命名约定;安全漏洞;无法原生支持Unicode;经常被混和在一些演示代码(如HTML、CSS)中。

如何避免:如果你从事Web方面的工作,这是很难避免的。但是,对于初学者来说,可以不去Facebook工作,远离Wikimedia、Wordpress、Joomla和Drupal即可。

3.  Java

上榜理由:语法冗长;慢;不容易传递函数;API过度设计;它能做的,其他语言也都能做,并且更加高效。

如何避免:不要去当程序员,或不要使用Android SDK来开发任何应用程序。

2.  Perl

上榜理由:Perl中完成一件事有太多种方法,使得你很难去理解其他人编写的代码;太简洁,即使一段代码实现的是最简单的事情,看起来也难以去阅读、维护。

如何避免:不要去当程序员。

1.  Visual Basic

上榜理由:它的语法被认为过于冗长和陌生,需要动态链接库才能去运行它的代码;对于面向对象编程的支持很有限;事实上,自从1998年以来,微软已经不再提供正式支持了。

如何避免:避免为开发老旧的Windows应用程序的公司工作。

另外一种统计方法

下 面这种方法是根据Github上托管的代码库统计出来的,开发者使用GitHub API来统计Github项目代码中出现“WTF(What the f**k)”字符串的数量,来确定项目开发者对于某种语言的某些特性的讨厌程度,可见C++比较令人讨厌。(这种方法有些开玩笑的意味)

原文链接:http://www.itworld.com/big-data/374664/most-wtf-y-programming-languages

译文链接:http://www.iteye.com/news/28335

【技术杂谈】2014年八大最热门IT技能

根据Computerworld网站组织的年度预测调查,众多IT专业人士在2014年所面临的整体就业形势与今年基本持平——今年有33%的企业有计划增加IT部门的员工数量,而未来一年则有32%的企业有此打算。

不过,虽然整体需求将继续保持稳定,但具体情况仍会出现少许变化——招聘管理者们明年将调整自己对求职者技能的关注取向。根据技术资源供应商Mondo公司创始人兼CEO Michael Kirven的说法,“对于那些拥有热门技能储备的人才而言,失业的可能性几乎为零。”他同时表示,“作为招聘者,如果您看中了某位人才,请别怀疑——至少还有其它两家企业也同时盯上了对方的才干。”

1.编程/应用程序开发

“49%的受访者声称自己有计划在未来十二个月内招揽拥有此类技能的人才。”

“去年排名:第一位。”

与2013年的预测调查一样,今年编程/应用程序开发再次蝉联热门技能排行榜冠军——不过在今年的221位受访者中,只有不到一半表示打算雇佣此类人才,远低于去年的六成。Dice控股集团(IT求职网站Dice.com的持有者)CEO Scot Melland表示,软件开发人员仍然是最抢手的技术人才,并指出这类人员的失业率也最低——根据美国劳工统计局公布的数字,其失业率仅为1.8%。有鉴于此,难怪Computerworld 2014预测调查将开发人员及程序员岗位列为未来一年中最难以弥补的空缺。Melland同时声称,在此类人才当中,又以具备移动开发专业知识与经验以及了解如何构建安全应用技能的员工最为稀缺。

在线备份服务供应商Carbonite公司希望能将业务重心转移到小型企业领域,但在转型过程中他们感受到了招聘软件开发人员及工程师的极高难度,公司人力部门副总裁Randy Bogue表示。“尽管在我们公司所在的波士顿地区,拥有丰富软件开发经验的人才并不少见,但想要雇佣他们的技术企业同样数量众多,”他解释称。“我们在寻找前端开发人员、用户体验工程师、移动开发人员以及其它软件开发人才的时候深刻感受到了这一点。”

纽约梅隆银行CIO Lucille Mayer同样对招徕开发人才感到压力很大。这家金融服务公司的主要业务范围位于纽约及匹兹堡地区,其数百位员工当中有约四成负责开发工作。另外三成打理基础设施、两成属于业务分析及项目管理岗位,最后一成则是企业管理层。

“拥有三到五年实践经验及服务交付阅历的开发人员已经成为市场上灸手可热的稀缺资源,”Mayer指出,她个人对于拥有面向对象开发经验的人才很感兴趣。同样重要的是,企业需要吸纳具备不同背景、抱有不同想法及观点的员工。

服务业巨头凯悦集团希望摆脱以往过度依赖第三方服务供应商的窘境,这就要求他们招聘更多内部开发人才。“我们希望招揽到熟悉敏捷性、有能力将思路快速转化为原型方案并快速投付生产的人才,”凯悦集团全球技术负责人Alex Zoghlin指出。

2. 服务台/技术支持

“37%的受访者表示有计划在未来十二个月内招聘拥有此类技能的人才。”

“去年排名:第三位。”

服务台/技术支持仍然名列排行榜的三甲位置,而且由去年的第三位上升到今年的第二位。Melland表示,这样的迹象令人鼓舞,意味着经济及整体就业前景正迎来复苏。“企业之所以扩大服务台与技术支持团队的规模,是因为其员工数量有所增加、技术基础设施迎来拓展,”他解释称。此外,许多企业在尝试外包之后,又重新将技术支持工作转化为内部事务;部分原因在于移动设备的广泛普及以及企业越来越多地提供Web服务。Melland指出,由于这类机制的复杂特性,“支持人员必须真正理解企业的业务流程,从而真正让业务功能尽可能与员工的家庭环境相对接。”

经历了数年技术支持压缩,位于密歇根州迪尔伯恩市的Wolverine Advanced Materials公司计划招聘几位服务台工作人员,旨在适应公司的规模拓展以及提供基于ITIL(即信息技术基础设施库)的服务管理方案,这家汽车原材料供应商网络业务经理James Bland表示。“企业正持续发展,所以我们有信心扩大员工规模,”他表示。

3. 网络

“31%的受访者表示有计划在未来十二个月内招聘拥有此类技能的人才。”

“去年排名:第八位。”

对网络技能的需求由去年的第八位跃升至今年的第三位。根据IT招聘企业Robert Half技术公司的调查,55%的受访者将网络管理员作为最受关注技能。

对无线连接技术的需求可能是网络专业人士走红的主要原因,Melland指出。“企业对于具备无线网络人才的需求每年都在以9%的幅度增长,”他解释称,而且网络与系统管理员的失业率低至惊人的1.1%。

乔治亚州中部医疗中心首席网络分析师Charles Whitby指出,无线医疗设备的持续增加给他带来了显著的工作负担。除此之外,无线设备还带来更多网络流量,并需要组织为其提供故障排查服务——举例来说,当无线设备固件需要升级,但这类工作并未受到美国食品及药物管理局的批准,他表示。

与此同时,在Wolverine公司,Bland正努力转移一部分网络管理职责,从而为自己节约一部分精力、转而关注于其它更具战略意义的事务。

4.移动应用与设备管理

“27%的受访者表示有计划在未来十二个月内招聘拥有此类技能的人才。”

“去年排名:第九位。”

随着移动设备在企业环境及消费者领域的广泛普及,我们对于移动技能的步步高升毫不意外——由去年的第九位达到今年的第四位。由于移动技术相对属于新兴领域,我们也能够理解Computerworld调查的受访者们将移动人才视为最难招聘对象榜上的第三位——仅次于开发及商务智能/分析技能。

在未来十二个月中,受访者们认为哪类IT员工最难于招徕?

32%编程/应用程序开发 32%

商务智能/分析 21%

移动应用程序与设备管理 17%

项目管理 14%

安全 14%

来源:Computerworld网站预测调查;受访群体:221位IT高管;2013年6月。

移动应用开发对于位于达拉斯的PrimeLending公司来讲是一项“重大举措”,公司CIO Tim Elkins表示,这也将成为明年企业的主要招聘方针。另外,为了提升自身在Salesforce.com领域的开发水平,这家抵押服务供应商希望雇佣两到三位移动开发人员。PrimeLending公司的第一款移动应用旨在帮助其业务合作伙伴——房地产经纪人与建筑商——随时查看自身贷款状态;接下来公司打算将支持对象扩展到普通消费者领域。

Elkins预计移动开发人员恐怕难以招徕,因此企业应该马上着手进行员工培训以满足需求。“Salesforce.com开发人员真的很难找到,这是因为市场对移动开发者的需求太过旺盛,”他解释称。

移动专业知识对于凯悦集团同样属于值得优先考虑的对象,Zoghlin表示该公司正尝试吸纳利基角色,从而确保自身有能力在移动及用户体验等领域保持策略的一致性。

5. 项目管理

“25%的受访者表示有计划在未来十二个月内招聘拥有此类技能的人才。”

“去年排名:第二位。”

虽然项目管理技能由去年的第二位跌落到如今的第五位,但我们仍然应该将其视为最热门的素养之一。Melland表示,Dice公司在运营中发现,项目管理人才仅次于软件开发/工程师、排在紧俏岗位榜的第二名,与去年相比支持率上升了11%。在他看来,这种上场同样应被视为整体经济迎来复苏的积极迹象,因为这表明企业乐于推动战略性项目。

Mondo公司的Kirven将市场对项目管理者的旺盛需求归结为企业在极具复杂性及战略性的业务-技术项目中表现出极大兴趣。“从历史角度看,IT部门的水平向来根据项目的成功或者失败来判断,因此企业必须要在业务分析/项目管理层投入巨额资金,”他指出。“这类人才需要有能力与开发人员探讨技术问题及解决方案,同时又需要与业务部门交流以了解实际需求及任务优先级,从而为IT部门提供可操作的开发目标。”

6. 数据库管理员

“24%的受访者表示有计划在未来十二个月内招聘拥有此类技能的人才。”

“去年排名:未上榜。”

作为去年甚至没能上榜的IT岗位,数据库管理员将在明年爆发出巨大的发展潜力,这很可能是迎合了大数据兴起的风潮。Kirven坦言,从长远角度看,任何一家希望从保存在内部系统当中的新兴信息身上发掘价值的企业,都将不可避免地迎来大数据技术。收集信息的具体来源包括社交媒体网站、网页以及第三方公司等等。对于大数据技术的兴趣主要来自市场营销部门,相关人员希望尽可能多地了解与客户相关的信息。

“甲骨文数据库管理员以及数据架构师——这类人才只要在求职市场上冒头,一个小时之内就会被企业拉走,”Kirven指出。“企业迫切需要那些能够将数据以逻辑方式同系统相映射的人才,从而帮助业务部门汇总出与系统相关的分析及报告结论。”

能够将IT基础设施组件迁移到云环境当中的老鸟级数据库管理员将受到热烈追捧,Melland表示。他同时指出,对云技能的需求与去年相比上升了32%。

为了帮助PrimeLending公司搞定大数据项目,Elkins表示他正在积极寻找系统分析师、开发人员以及数据库管理员,从而集成来自第三方的数据、最终实现简化抵押贷款监控流程的目标。“抵押贷款长久以来似乎成为一种黑洞,极度缺乏透明度而且需要用户花费大量时间等待查询结果,”Elkins解释道。“我们的目标是在未来一年为消费者带来更多前所未有的控制能力与体验,从而改善抵押贷款的群众口碑。”

7.安全合规性/治理

“21%的受访者表示有计划在未来十二个月内招聘拥有此类技能的人才。”

“去年排名:第四位。”

安全专业知识已经是每一份热门IT技能榜单上的常客,而且Melland表示企业用户对网络安全的愈发重视将进一步推动市场对人才的需求——与去年相比需求量增长了23%。“安全技能涵盖大量具体的工作岗位,例如网络工程、软件开发以及数据库架构等,”他表示。在由Robert Half技术公司组织的调查当中,受访者们将安全工作认为最难于填补的岗位空缺之一,其它两项为应用程序开发与数据库管理。

随着恶意软件及网络攻击的日益猖獗,安全事务已经成为PrimeLending公司的头号关注重点。今年该公司已经将安全团队的规模翻了一倍——从四位成员增加到八位,Elkins告诉我们。

8.商务智能/分析

“18%的受访者表示有计划在未来十二个月内招聘拥有此类技能的人才。”

“去年排名:第五位。”

根据IDC公司的预测,从2009年到2020年,全球数据总量将扩大至最初规模的44倍,达到35.2泽字节。有鉴于此,企业迫切需要利用先进的分析能力获得竞争优势。虽然与其它技能相比,Dice.com上商务智能/分析所提供的工作岗位仍相对较少,但Melland指出这一技能的需求增长速度在整个网站上排名第三,且与去年相比市场需求量增长了100%。分析类专业知识极度稀缺,而且在Computerworld网站的调查中位列最难雇佣人才榜的第二名。因此,相关专业人才往往薪酬惊人——一般能够达到六位数,Melland指出。

在Wolverine公司,由数据驱动的分析工作正对管理机制提出愈发强烈的需求,因此Bland希望找到既掌握商务智能技术、又熟悉该公司所使用的Plex Systems ERP应用的人才。“我们当然希望能从自己的ERP系统中获取更多信息,因此任何拥有商务智能实践经验的人才都会受到热烈欢迎,”他表示。“我们希望拥有更多更具时效性的信息,从而让企业在运营中更具主动性。”凯悦集团的Zoghlin指出,他也同样在寻找那些“能够通过分析为客户及同事带来有价值结论的人才。”

展望2014年

展望未来市场对IT员工提出的技能需求

技术类技能并非评估IT求职者时的惟一考量因素。用人单位还应当考虑申请人的人际沟通技术,从而确保新员工能顺利融入新的工作环境。根据Computerworld预测调查的结果,我们发现新员工最重要的两大特质在于协作能力(受到66%受访者的重视)以及与业务部门沟通的能力(受到62%受访者的重视)。这一结果对于Dice控制集团CEO Scot Melland而言完全在意料之中。“目前企业的每一个运营环节中都充斥着科技要素,因此我们需要雇佣擅长沟通的员工打理这些事务,”他解释道。

Wolverine Advanced Materials公司网络经理James Bland这样描述他希望在新员工身上找到的技能。“我希望新员工能帮助用户理解IT如何帮助他们以更高效的方式处理日常业务,”他解释道,而只有IT人员有能力将系统功能翻译成业务用户能够理解并顺利使用的语言后方可实现。“大家完全可以部署世界上最出色的系统,但如果用户不知道如何加以使用,那么这些系统将一文不值,”Bland总结道。

纽约梅隆银行CIO Lucille Mayer则表示,新任IT员工必须具备客户服务心态。“我们的IT部门被称为‘客户技术解决方案’,其中每位成员都对应着某一位客户,包括内部或外部客户,”她解释称。“以服务为主导、以客户为中心,协作再加上出色的沟通能力,这就是杰出IT员工必不可少的特质。”

所谓关键性沟通技能,是指利用业务部门(例如营销、销售以及财务部门)内广泛使用的语言阐释问题,Melland表示。事实上,根据Modis公司Michael Kirven的说法,除了高科技专业知识之外、用人单位也在越来越多地对IT员工的业务积累提出要求——例如某位HTML 5开发人员是否了解零售供应链,或者Java开发人员是否拥有打理金融衍生交易系统的经验。“专业化是推动创新活动的必要前提,”他解释道。

在PreimeLending公司,关键在于将所有文化加以契合。“我们将文化理念作为招聘工作的第一步,”公司CIO Tim Elkins指出。这种处理方式在雇佣企业高层管理者时尤为重要。“如果我们打算聘用一位新经理,那么不止要看他是否是一位出色的领导者、更要观察他能否按照我们的风格融入工作,”Elkins将他们的要求称为“公仆式领导”——也就是说领导者要抱着为他人服务的心态、而不能仅仅对普通员工颐指气使。

(51cto)