计算机科学是少数最国际化的科学,不论在台湾或美国,学习的内容都差不多,甚至连教材都可以是相同。但据Google台湾工程研究所所长简立峰的观察,台湾软件开发人员却容易自我设限,反而不易在软件产业中成功。他认为,只要培养出国际化的创意能力,现在比过去更有机会。
为了找人才,简立峰几乎将台湾近十年内优秀的软件开发人力盘点一遍,也因此,他看到台湾软件开发人员当前面对的挑战和困境。他指出:「现在要以网络或软件来创业,因为没有全球化,就没有任何机会。」不论网站是哪一国的开发人员做的,只要适合网友的需求,流量就会上升。简立峰认为台湾的开发人员必须国际化,才能在软件产业成功。
但是国际观不只是想象的,而是需要真正对这个世界的脉动有所了解。简立峰指出,台湾年轻人其实比过去更有知识,也更有创意。台湾硬件产业具有世界规模,因而可以对外传达这些优势,但软件产业因为缺乏对世界的了解,虽有创意,往往只属于自己的世界,不见得能通用全球。
寻求组织培养国际化能力
简立峰认为培养国际化能力最快的方式,是寻求组织的协助。不论是与具备国际观能力的人组成团队,或者是进入国际级企业或环境中历练,都远比自己累积容易。他以Google工程师为例,进入Google不需很久,就能很快拥有超过简立峰30年累积的国际经验。或者像无名小站被Yahoo收购后,无名开发团队很快就能学习到国际市场经验,比起靠自己累积容易很多。开发人员要培养自己的能力,简立峰建议:「要选一个有机会的环境去发展,而不是选一个你已经是第一名的环境。」
如果在台湾无法找到适合的环境,就需要走出台湾去累积对世界的了解。简立峰认为没有人能走遍全世界,也没有人能代表全世界,国际观很显然还是要靠自己的想象力。藉由想象力,不一定要出国念书,也能凭短暂出国旅游、搜集国外信息等方式,从有限的讯息中,想象出某个国家人民的喜好,增加对外国市场的认识。
想象力不同于创造力,某种程度上是能够自己切换不同的角度来得到各种讯息。简立峰说:「有想象力,才能得到比别人更多信息。」而且不是那种偶而灵光乍现的创意,他认为必须是能够源源不绝的想象,然后逐一求证,找出其中其中可行的创意。
简立峰培养想象力的秘诀是每天花一些时间,回顾前一天所发生的事情。过程中,他会去想象前一天生活中的每一个情境,尝试站在别人的角度来看事情,就像是拍电影时,切换不同角度的摄影机看相同的场景。一方面让自己更周全,另一方面也有助于改正工程师往往只想到自己的缺点。
除了回顾,还可以进一步作预想的练习。例如要进行英文电话会议前,先想象对方的模样,要讨论的的议题等,真正开始开会时,就能很容易的使用英文对话。运用各种方法训练自己,培养不断想象的能力。
开发者培养出想象力之后,简立峰认为才能得到比别人更多信息,也才能用比别人更快的速度,累积出对世界的了解,然后就能创造出国际化的软件需求。
开发团队再次成长的关键是人才
最后一个开发人员需要培养的,是说服别人的能力。简立峰观察台湾网络创业的例子,其实已经出现过二、三十个可以成功的商业模式,但往往都后继无力而失败。原因并非是资金不足,而是人才短缺的问题。台湾的开发团队很容易找到几个人一起合作,但是要进一步发展成30个人的团队却相当困难。
例如台湾的搜寻引擎公司很早就推出可以在国际上竞争的搜寻引擎产品,但是无法吸引更多人才投入,最后就难以进一步发展成像Google般的大型软件公司。
简立峰以前辅导学生创业的经验,更让他深刻体会说服能力的重要性。他曾帮要创业的学生找来几个开发人力,但是最后整个开发团队还是只有当初的那些人,领导者无法说服其它优秀的人才进来。他说:「有好的开始不难,最困难的是第二波的成长曲线。」
什么时候开发团队会面临这样的瓶颈?简立峰认为很快就会遇到,但是多数开发者都不知道。如果自己无法培养出说服人才的能力,他建议开发人员最好去直接加入具有说服力领导者的团队,才能有机会成功。
开发者具备了国际化能力、源源不绝的创造力,以及说服优秀人才的领导力之后,还不一定保证成功。如同所有成功者都会说的话,坚持到底才是最重要。但是简立峰解释能够成功的「坚持」,不是那种固执己见、消耗体力、毅力的坚持方式,也不是一味认定媳妇终会熬成婆的苦苦坚持,而是「期待自己好还要更好,不断突破的坚持态度。」
分享到:
相关推荐
《Delphi 6开发人员指南》是一本专为Delphi编程初学者和进阶者编写的中文教程,旨在帮助读者全面掌握Delphi 6的使用技巧和开发方法。这本书覆盖了Delphi 6的各个方面,包括集成开发环境(IDE)、Object Pascal语言、...
《MFC开发人员指南》是一本全面介绍如何利用Microsoft Foundation Classes(MFC)进行Windows应用程序开发的中文指南书籍。该书由Marshall Brain和Lance Lovette所著,面向的对象为对MFC编程感兴趣,希望使用C++语言...
《ArcGIS_Desktop开发人员指南》是一本专为开发者设计的详细教程,旨在帮助读者深入理解和熟练运用ArcGIS Desktop进行地理信息系统(GIS)的开发工作。ArcGIS Desktop是Esri公司出品的一款强大的地理信息系统软件,...
总结,成为一名优秀的软件开发人员不仅需要扎实的技术基础,还要有持续学习的决心,良好的沟通和管理能力,以及对个人魅力的培养。面对不断变化的行业环境,持续的职业发展和自我提升是保持竞争力的关键。在追求卓越...
开发人员可以利用线程来实现并发处理,提高程序性能。 #### 序列化 序列化是指将对象的状态转换为可以存储或传输的形式的过程。.NET Framework支持多种序列化方式,如BinaryFormatter和XmlSerializer,用于对象...
这个“ActionScript 3.0 开发人员指南”是一个深入的学习资源,旨在帮助开发者掌握这一强大的脚本语言。 1. **面向对象编程**:ActionScript 3.0 引入了完整的面向对象编程(OOP)支持,包括类、继承、封装和多态性...
标题中的“开源自主托管面向开发人员的翻译工具”指的是一个专为开发者设计的,可以自主托管并且源代码开放的翻译平台。这样的工具通常允许开发者在自己的服务器上部署,避免依赖第三方服务,同时提供了代码级别的...
通过深入学习Infopath开发人员手册,开发者能够创建高效、功能强大的业务解决方案,满足各种定制化需求,提高工作效率,同时提升用户体验。无论是新手还是经验丰富的开发者,这份手册都将提供宝贵的指导和参考。
这份手册包含了用户手册和专门针对二次开发的开发人员手册,覆盖了.NET和C++两种编程语言的接口和应用,使得开发者能够根据自身的技术栈选择合适的方式进行相机的集成和应用开发。 首先,我们来看用户手册——...
《openTCS开发人员指南》是为那些希望深入了解并参与到openTCS系统开发中的程序员准备的详尽参考资料。openTCS是一个开源的交通控制系统的软件框架,主要用于自动化物料搬运,如AGV(自动导引车)系统的管理。该指南...
标题中的“每个NET开发人员应该下载的十个必备工具”指的是对于.NET框架的开发者来说非常重要的十个工具,这些工具能够提高开发效率,优化代码质量,并帮助解决问题。这些工具涵盖了测试、文档生成、自动化构建、...
这两者的结合为开发人员提供了强大的数据访问能力,使得开发人员可以更高效地管理数据库操作。 首先,我们需要了解Spring的核心组件。Spring框架的核心包括依赖注入(DI)和面向切面编程(AOP)。依赖注入允许我们...
这个资源,"AutoCAD .net开发人员手册中文版 By 平凡 www.01vb.com html格式",是专为开发者提供的一份详细指南,旨在帮助他们更好地理解和利用AutoCAD的API进行编程。 原始版本可能是CHM(Compiled HTML Help)...
《DataStage_核心开发人员指南》是一本专为DataStage的高级用户和系统管理员准备的详细教程,旨在帮助读者深入理解和充分利用DataStage Manager和DataStage Designer这两个强大的工具。DataStage是IBM提供的一款企业...
《AutoCAD .NET开发人员手册中文版》是一本专门针对AutoCAD软件进行二次开发的宝贵资源,对于熟悉.NET框架并希望扩展AutoCAD功能的开发者来说,具有极高的参考价值。这本书详细介绍了如何利用C#、VB.NET等.NET语言与...
《MapInfo开发人员指南》是一本专为MapInfo平台的开发者设计的详尽参考资料,旨在帮助程序员和GIS专业人员深入理解和高效利用MapInfo进行地图应用的开发。MapInfo是一款强大的地理信息系统(GIS)软件,广泛应用于...
《DataStage核心开发人员指南》是一本全面介绍IBM DataStage数据集成工具的专业参考资料。DataStage是企业级数据集成解决方案,广泛应用于数据仓库建设、ETL(Extract, Transform, Load)过程以及大数据处理。该指南...
【标题】和【描述】中提到的是一个软件开发人员招聘的笔试试题,涉及的知识点包括软件开发的基础知识、程序设计、数据库设计、系统设计以及综合能力的考察。【标签】指出了Java实例可能作为试题的一部分。【部分内容...
ASP.NET是微软公司推出的一种基于.NET Framework的Web应用程序开发平台,它为开发人员提供了丰富的工具集和高效的语言支持,如C#和VB.NET,用于构建动态网站、Web应用程序和服务。本系列课程“面向开发人员之ASP.NET...
MBD的出现,使得开发人员能够以更加直观、模块化的方式进行设计,有效地缩短了产品开发周期,降低了开发成本,同时提高了系统的可靠性。 传统开发方式中,产品的开发过程往往是从需求分析开始,经过详细设计,编码...