捷克首都布拉格,一座美丽而古老的山城,伏尔塔瓦河像一条绿色的玉带穿城而过,横跨在河上的十几座古老和现代的大桥雄伟壮观,市区那带有尖塔或圆顶的古老建筑,无论是罗马式、哥特式、巴罗克式还是文艺复兴式,都完好地保存着,高高低低的塔尖毗连成片,在阳光照耀下显得金碧辉煌。 就在这布拉格之春,3月28日到4月1日,世界各国最优秀的软件学子们汇集一堂,共同角逐第28届ACM-ICPC世界编程大赛。 看着这许多肤色不同、语言不同但同样年青而富有朝气的脸,心中不免总是充满赞叹——聪明的人、精英学子、编程高手、软件天才……进而想到,这就是未来世界的人才,那么,未来我们到底需要的是什么样的软件人才呢? 编程高手&技术平台 首先,作为软件人才,其基本素质的要求当然不容忽视,比如数理化基础一定要好。因为软件首先是一门理工科目,它对逻辑思维的要求非常高,如果没有好的数理化基础,就很难形成严密的逻辑思维,因此,中学时代打下的基础就很重要。本次大赛清华大学代表队教练吴文虎教授特别强调了这一观点。当然,这其中也存在自然天赋的不同,有的人生来就更善于逻辑思维,因此也就比较容易掌握各种编程技巧,这种人也许就是所谓的软件天才了吧! 其次,各种计算机知识的学习就不必多说了,有兴趣编程的人自然会如饥似渴地去寻求它。 还有,大家都知道,要想成为编程高手,还需要反复不断地练习实践。现在的学院教育以及家庭教育都十分重视创造这方面的条件,给学生提供尽量多的计算机及软件以便练习实践。 以上所说都是一些基本常识,不必赘述。 还需要说明的是,每个人的时间精力都是有限的,虽说是学得越多越好,但如果选错了未来则可能只会造成时间精力的浪费。这里的未来指的是未来的技术趋势。比如技术平台、编程语言等可以说是日新月异,那么什么是未来的应用趋势呢?这次IBM又给我们树立了一次新的标竿和典范,这就是开放系统。 这次大会决赛选定的Linux操作系统和Eclipse编程环境就都是公开源码的开放式系统,这并非仅是由于IBM作为赞助商支持开放系统。而是由于开放系统代表着未来的方向,它便捷、稳定、易用、安全、免费,最重要的是它可以防止垄断,因此得到了更多*、教育、商业用户的支持。“学生通过竞赛,发展了需要在现实世界中使用的技巧,开放源码平台正在被广泛采纳,不远的将来……” IBM高级研究中心的计划负责人Gabriel M.Silberman如是说。 因此,未来的编程高手们如果想有更加广泛的用武之地,一定要一开始就重视并学习使用开放式系统。 热爱&角色定位 当笔者与IBM大学合作部主管Margaret谈论起好学生与好雇员的区别时,她首先强调了一点:热爱所从事的事业。是啊,只有热爱才能成就事业,尤其是需要无限创意的软件开发工作,没有了热爱哪能有如泉涌的灵感不断迸发? 然而,在热爱之前,有一个正确的角色定位才是当务之急。不要以为软件技术人员就是笼统的程序员,其实,软件技术人员分为6个角色:决策制定者、项目管理者、架构设计师、程序员、分析员、测试员。每个角色特点各不相同,因此,作为自己的职业方向最好是未雨绸缪,以便定向发展。 这次比赛中,每个队由3名队员组成,但只有1台计算机供操作,其实这其中也蕴含了角色分工,谁是决策制定者、谁是项目管理者、谁是架构设计师、谁是程序员、谁是分析员、谁是测试员,虽未有明文规定,但如果队员们自己不进行很好的分工,那结果一定是不尽如人意的。 综合素质&商业感觉 除了技术以外,未来的软件人才更求的更会是一种综合能力高的复合型人才。他们的特点是智商、情商都较高,除逻辑思维能力以外,要具备全局战略意识,具有良好的心理素质。另外,他们还要对政治、经济、社会、人文等方面均有一定的见地,总之是要见多识广,而不是传统意义上的学院派。 另外,特别需要强调的一点是,未来的软件人才一定要具备商业感觉,即对市场、对商业的敏感性和理解力。 为什么呢?因为软件人员的目的不是开发软件,而是开发产品,而产品是要投向市场,为用户所使用的,如果不具备商业感觉,闭门造车开发出的产品的商业价值又有多大呢?又或是不能理解销售人员或管理人员的商业目的,一味追求技术先进性而不顾产品实用性,又怎能不被市场所抛弃呢?这样的软件人才恐怕也不是企业所企望的。 因此,理解是值得重视的,作为技术人才一定要能够理解商业运做,而作为管理人员则应该做到对技术趋势了解,只有双方基于理解达成共识,才能更加有利于公司的运作和发展。 团队合作&决断能力 综合素质的高低还表现在一个重要的方面,就是团队合作。团队合作是现在的世界所必需的,因为发明是要推向市场的,每个个人可以进行“发明”,而只有团队才可以“创新”!也就是说,只有团队相互理解时才能有创新能力。 因此,未来的软件人才,要的不是超人,要的不是天才,而是具有良好的沟通能力、协调能力,也就是能够进行团队合作的人。 这次比赛中,每个队的3人组合就是一次团队合作的卓越表现。ACM-ICPC执行理事Bill Poucher博士说起一个例子:曾经有一名非常优秀的学生,他一个人的编程能力超过其他几个人相加,但比赛时要求的是团队合作,计算机得轮流使用,而他则或者把着计算机不放手,或者跺着脚着急怎么不给他单独配台计算机使,而不是积极配合其他两名同学,因此成绩也就可想而知。 除了团队合作外,决断能力也是必须的。比如这次大赛中,每个队都发10道题,由于这些题目都是来自于现实世界的难题,分析以及编程的工作量巨大。 因此可以说,几乎没有哪个队能够在规定的5小时内全部完成,因此先做哪道,后做哪道,哪道做,哪道不做,这种选择与决断能力决定了比赛的胜负。 现实世界中又何尝不是如此呢?机会总是有限的,资源也总是有限的,只有善于把握机会,合理运用资源的人,才能是笑到最后的人。 而本次比赛的要求,就是对这样的人才进行了甄别。 多元化思考&不断学习 作为未来的软件人才,还要学会调整自己的思考模式。由于未来社会是一个集科学、技术、政治、经济、文化等于一体的多元化的社会,而软件作为一种渗透性极强的产品会涉及社会生活的方方面面,因此,具备多元化思考的能力应该是对一个软件人才的合理要求了。 何为多元化思考呢?比如,作为一名男性,你如何对想像一名女性用户对软件的要求?作为一位中国人,你如何看待美国人对软件的偏好?作为一名成人,你如何懂得孩子们需要什么样的软件?凡此种种不胜枚举。 如何具备多元化思考的能力呢?我想,一是要转变态度,转换角度,学会换位思考;二是不断学习,增强自己的见识,做到理解不同的对象;三是争取与更多的不同的人合作,比如女性,现在很多像IBM这样的公司都在积极争取更多的女性从事这一行业,以增加这一行业的多元化组成,进而能够有不同的眼光看产品研发,能考虑到女性或其他人群的需求,这其实也是市场趋动的结果。 领导力&雄心 最后还要强调的一点,就是领导力的问题。 IBM有个天才孵化计划(1999年在美国开始,2002年也已在中国启动),即用3个月的时间将所挑选出的优秀学生放到IBM自己选定的合适的项目中去,进行实际的开发工作,而其研发成果则可能被IBM直接商业化。学生通过这种实习,了解了更多实用的IBM技术,进行了商务创新,最重要的是,他们丰富了自己的履历,增强了自己的信心,并且有了一段难忘的经历。而IBM既可以通过项目吸纳到优秀的人才,又可以得到项目成果。 这样一个计划,IBM是如何挑选学生呢?首先其挑选的角度是从项目方的需求开始,如前几年需要具备Web service以及Linux知识的学生,但每年需要的技能并不完全一样。其所选学生必须具备的条件是:学生必须有6个月的工作(实习)经验;具备较强的软件编程能力;具有领导力和雄心大志,事实上很多学生本身就是学生*,甚至有很学生拥有自己的公司;大学快毕业的,在进行最后一年的学习。 为什么要重视学生的领导力和是否有雄心大志呢?IBM负责天才孵化计划的Paul Baffes先生和Heather Jackson女士回答了笔者的问题。因为现在面对的商务环境已不仅是个技术环境,只有具备了领导能力,才能更好地操控这种局面,而且,这些学生未来可以从事开发、咨询、服务等多种工作,具备领导能力必然有利于学生的多元化发展以及公司的多元化选择。 另外,我想,干大事者必得有大胸襟,这胸襟何偿不是雄心呢?IBM们是在为未来储备技术及管理一体化人才,那么,未来的软件人才们,为什么自己不豪情满怀迎接未来呢? 如何成就? 说了这么多对未来软件人才的要求和期望,归根结蒂还是要说一说如何成就。 成就这样的软件人才,我想一是要改良目前的教育体系,使软件人才能够健康发展并脱颖而出;二是要与产业或公司结合,比如参加这样的大赛就是其中一种很好的方法;三也是最重要的是,学生要向着这样的目标不断自我修炼。 十年树木、百年树人,未来的世界需要你们! |
相关文章
- 好的软件测试人员是什么样的?
- BAT面试需要什么样的程序员?
- 【大型软件开发】浅谈大型Qt软件开发(二)面向未来开发——来自未来的技术:COM组件。我如何做到让我们的教学模块像插件一样即插即用,以及为什么这么做。
- 下一个十年,我们需要一款什么样的分析型数据库?
- 02 JVM 从入门到实战 | 什么样的对象需要被 GC
- 对话天云数据雷涛:从IT到DT,我们需要什么样的数据库?
- 为什么项目型软件公司很累?程序员拼死拼活做项目为啥总是无法按时完成?原因主要是软件需要完善的细节太多
- 数据库应用需要什么样的云原生能力
- 大家帮忙来看看:网站建设中都需要什么样的人??他们的职责是什么?请大家多多指点,我也急需
- 我们需要什么样的敏捷开发?