访问次数
我的另一个总结性博客: todototry 大米粒

如今的开发者应了解哪些过去闻所未闻的新技能

如今的开发者应了解哪些过去闻所未闻的新技能

2011-09-20 09:51 核子可乐译 51CTO 我要评论(2) 字号:T | T
一键收藏,随时查看,分享好友!

无论各位是刚刚跻身于软件开发者行列(或者是正有此打算),还是已经成为一位经验丰富的专业人士,了解自己需要掌握的内容都是很有价值的。这样大家才能具备足够的竞争力,轻松自如地选择继续从事这一行业、重新选择其它领域或者着力争取晋升。

AD:

除了编程技术之外,如今的软件开发者们还需要了解许多在过去闻所未闻的技能

如今的软件开发者们已经不必像前辈们那样担心诸多因素,尤其是编码工作中最大限度降低内存占用(即使这意味着执行时间将会大大延长)或者局域网连接最大带宽不能超过14.4KB每秒等等。(尽管其中有些时至今日仍然具有一定的指导意义甚至有重新发挥作用的可能,但毕竟不是主流趋势。)

不过从另一个角度来说,当下在软件开发、硬件开发、系统及网络管理以及其它IT专业领域充斥着大量全新的技能乃至业务范畴,这些内容在过去往往根本不存在(所谓的‘过去’涵盖很广,从三个月之前到五年、十年甚至二十年都说得通),或者只出现于预算庞大的某些特定机构或应用程序当中。

“大家可以给自己必需的技能列一张单子,其中具体内容的取舍与我们何时走出学校、对待工作是否认真以及接受新的技术、产业动态与工程发展的积极性密切相关,”Embarcadero技术公司开发部门副总裁兼企宣负责人David Intersimone如是说。

无论各位是刚刚跻身于软件开发者行列(或者是正有此打算),还是已经成为一位经验丰富的专业人士,了解自己需要掌握的内容都是很有价值的。这样大家才能具备足够的竞争力,轻松自如地选择继续从事这一行业、重新选择其它领域或者着力争取晋升。

因此在这里我要与此前自己编写的“回顾那些失传的技能”一文做个呼应,着重探讨“发掘全新的技能”——相信我,无数IT专业人士们正紧盯这些新兴领域,因此同样身为软件开发者的你绝对不能错过这个将技能添加进自己知识结构中的机会。(声明:很明显,大多数情况下我不会讨论具体某种编程语言的相关话题)

函数库的灵活使用

第一条冲击到我传统观念的新技能就是,开发者们对预置在新语言中大量分类库及模板库的把握能力,这一点在Java、C++乃至Python中都表现明显。如今我们要想完成复杂的应用程序,对函数库指令加以充分运用绝对是必不可少的能力。如果我们只懂得使用某种语言而不会使用函数库的话,那么软件成果只能是空谈。

站在用户立场打造产品

就在两三年前,“信息架构”与“可用性工程”还属于冷僻词汇。而到了2010年,围绕这两个关键词产生的招聘岗位不断涌现。总结起来,这些技能其实是用于为用户打造良好的使用体验——用户界面设计、信息展示架构以及独特的平面布局,这一切已经组成了全新的正规专业知识领域。

异步编程及其它相关技术

将业务平台向云计算转移主要通过基于Web的接口实现,因此如今异步编程正越来越受到业界的关注。眼下即使是最简单的应用程序也可能会需要异步编程技术,这一切都归结于AJAX的广泛应用,其编程风格迥异于以往,因此开发者们恐怕要投入相当大的心力以跟上时代的脚步了。

扩大技术的涉猎范围

随着时代的发展,业界对技术的要求也日新月异。如今精通某个单独领域的员工已经不那么抢手,能够掌握自己专业周边的各类相关技术才足以笑傲职场。客户的要求越来越多,而那些万金油式的全面人才已然成为猎头公司中公认的热门人选。

特色专长造就全新岗位

在这一话题当中,我希望用客观现状代表主观评述。在下面这份来自某招聘管理者的列表中,罗列出了数条能够为求职者加分的技能内容:

1. 基于语音识别技术的非可视化用户界面设计师;

2. 无硬盘大屏幕移动设备软件设计师;

3. 位置及方向响应(类似于导航类)应用程序设计师;

4. 石油及天然气勘探及地质领域的辅助软件专家;

5. 体内嵌入式医疗器械设计专家。

通过这份列表,我们可以看出,除了软件编写技能之外,广阔的IT天地间还有许多特色专长的用武之地。

开发工作中的快速反应与协作能力

今天的开发者们需要对软件开发过程中的快速反应具备更详尽的了解。反应速度与协作能力常常能够为企业提供极大的市场竞争优势。驱动测试开发、自动化验收测试、代码重构等等工作内容的顺利实施都迫切需要上述能力的支持。

围绕可部署性、可扩展性及可管理性开展开发工作

系统管理员们比软件开发商更了解具体产品,不仅是从业务应用角度,从企业负责人的采购决断角度更是如此。因此,开发商应该从管理者的立场密切监控产品的部署情况、扩展性以及管理难度。从这一点出发,企业的竞争力将会得到大大提升,而且管理员的一句赞许永远强过投入巨资打造的广告。

其它建议

以下是来自专家的其它一些补充内容:

◆ 为严格要求可扩展性的云计算提供类似Hadoop的分布式计算技术;

◆  “大数据”分析能力,以应对网络及科学数据等带来的庞大数据量,比如说那些用户数量惊人的超大型门户网站。

◆ 为了提高生产力而部署的Web应用程序框架,例如Ruby on Rails以及Grails等。

◆  动态“脚本语言”强调开发者在实时性能表现方面的生产力,PythonRubyPERLJavaScript以及Groovy(作为Java的替代方案存在)等都在此列。

高级软件工程师Amy Unruh还补充说,“当下对于开发者们来说,了解关于实时搜索、流水线数据分析以及活动数据流管理方面的知识非常重要。此外大家还应该在自己的知识储备中时常添加一些小型体系,包括微格式的使用、服务相关API的支持等等,这些都是计算原则之外颇具价值的实用技能。”

诸位读者在工作过程中发现了哪些必不可少的技能,又是如何将相关学习付诸实践的呢?

原文链接:

http://www.infoworld.com/d/application-development/what-todays-software-developers-need-know-173201?page=0,0

posted @ 2011-09-28 00:53  fandyst  阅读(223)  评论(0编辑  收藏  举报