人才风向标:国际软件工程师
马帅:CSDN的网友们大家好,今天光临我们CSDN嘉宾聊天室的是我们的两位老朋友,一位是东方标准讲师李翊,另外一位是东方标准讲师郑萌,两位先简单地作一下自我介绍。
李翊:大家好,我是东方标准的李翊。
郑萌:大家好,我是东方标准,我叫郑萌。
马帅:最近我们发现了一个现象,从原来的新东方教育中心,到现在的东方教育有限公司出现了一门新的课程,就是国际软件工程师,给大家解释一下什么是国际软件工程师?
李翊:这个概念还是蛮简单的,所谓国际软件工程师从简单意义上讲,就是应该简单具备软件开发的技能以及外语的沟通能力及交际能力,更重要的他应该熟悉一些国际企业的开发的模型以及标准,应该具备适应这种国际大的团队开发的这样的素质和潜质,简单来说就是这样的。
马帅:那么这个国际软件工程师是不是根据国际人才需求的背景所产生并且根据新东方发展的理念而设计的?
郑萌:具体到公司来讲他肯定是根据国际上出现的趋势来设置这个业务或设置软件工程师的培训,今后中国会超过印度软件输出国,现在有两种途径,一种就是外包,就是外国的公司来中国建一个公司,这是常说的外包公司,还有一种就是派遣,中国的软件工程师进行一些外语的培训去到外国进行一些软件设计的工作,但是随着近两年的发展,以前从来不在中国招程序员的欧美国家,也直接在中国招收程序员,像最近炒的很热的公司,在北师大招了一位美丽的女孩,然后去作他们公司的副总裁,随着这种趋势,东方标准也根据这种标准去设计了国际软件工程师的标准。
马帅:关于新东方标准的国际软件工程师,我是不是可以这样认为,一门技术课程加上一门外语就成为了国际软件工程师的课程,这样的认识是不是有什么误解?
李翊:这个也谈不上什么误解,或者说不是特别全面,应该是软件工程师,那么这种技术能力是必不可少的,当然他去外国工作外语能力也是必备的技能,这个要求是相当高的,因为不是让他们去那生活,而是让他们去哪里工作,所以对外语水平的要求是很高的,读写能力听说能力应该达到更高的标准,就这个国际软件规程是这个课程来讲的话,我们觉得单单是把软件技术和外语课程做一个简单的相加不是很够的,关键是讲我们这个软件技术跟外语结合能够使学员更加适应国外的软件的趋势,我觉得应该有几点比较重要的,第一个就是对基础能力的一个基本核心技能的掌握,各位朋友可能也有这样外国企业的面试,他们涉及的是比较核心的能力,比如IBM会考虑到数据结构,这样和他外企本身的工作方式还是有一定方式的,他们可能更注重人员的学习能力和基础知识的核心掌握能力,我们在设计课程的时候就考虑到这一点了,我们的数据结构像基本的课程的话,有一个提升,在我们整个体系里面,我们所谓的核心体系能力,就是数据库的基本功这个的话,我们会花很大力气去解决它,在有就是有很高超的Web开发技术,就是说这个基础化已经存在了很久很久,所以对于这种基本的技术的话,我们在整个培训过程当中是特别注重的方面,另外一个就是对于解决方案的介绍,像我们通常在培训里面涉及的主题向ejb这样的解决方案,为了解决特定问题而采用的技术标准也好解决办法也好,对于这样一套东西我们怎样去培训学员呢?我们也是经过考虑的,以前的学员到了日本以后,学了一些框架以后,到了一些企业也好这些企业也不用这些东西,一家大型企业有很悠久的历史的话,势必会形成自己的解决方案和流程,可能我们学到的普通的这样开源的解决方案到了企业以后从应用方面就会有极限性,但是我们不能不讲,我们关键是让他有这样的一种技能有主动的思维意识,比如我举个例子,比如我们有很多练习按照传统的理解就是专门去讲,但是可能在其他企业里面就不会去将它的框架,更注重的是什么内容呢?就是AOP里面我们有一个惯性的切入点,我们怎样在复杂的业务当中把这个抽象出来,这个相对来讲,可能不是特别重要的问题了,第二个我们的主题可能就是在我们有了核心的基础之上,这样的解决方案标准的学习应该提升到更标准的层次上来,关键是让我们的学员看到这个问题怎么去解决这个问题,这样的话,他到了真正的岗位可能会有一些帮助,还有最后一点就是老生常谈的问题,就是沟通的能力和学习的能力,那么对作为这种国外大型的软件开发企业肯定有团队开发在团队里面如何去沟通,这个是很重要的,这个是针对个人素质和修养,也是作为我们这边的重点,对于职业教育来讲,我们更注重的是个人的素质和整个解决问题的培养,毕竟国外需要的是规模大的数量大的可以接受的人才,我大概就谈这么多。
马帅:那么刚才李老师讲的问题是不是可以概括为三个,第一个具备的技能,应该是国内比较流行的开发技术,但是开发技术的本身并不是很重要的,而是开发技术的思想,第二个就是必备的技能,外语,要达到这种外语的沟通是建立与对国际企业认识之上的,第三方面就是很重要的职业素质方面。
李翊:对,这个我举一个比较特殊的例子,就是注重你的输出注重别人给你的输入,你只要把握好了输入和输出,就是可以很好的沟通。
马帅:一看李老师就是程序员起家的啊,用输入和输出的概念来解释沟通。看了两个老师的简历,我发现李老师是比较擅长Java开发的,郑老师是比较擅长于.Net开发的,请两位老师分享一下,学习.Net和学习Java有没有很好的经验?
郑萌:先说说java和.Net有什么区别吧?
郑萌:首先第一点他们出现的时间不一样,.Net是2006年发布的第一个版本,java应该是9几年,两个的时间差别10几年,现在从事java的程序员要比.Net的程序员庞大很多,其实java和.Net所实现的目标其实是不一样的,java是跨平台的但是他只支持一种语言,他所实现的就是多种平台一种语言,而.Net实现的是一种平台多种语言,那微软的操作系统呢?他不希望你去跨平台或者怎么着,大家现在也有国外第三方的Linux的平台,这属于另外所说的,他们所追求的目标是不一样的,第三点就是从市场的占有上来讲,大型的服务器或者大型的服务项目都是以Linux操作系统为主的,所以导致java占据大量市场,.Net属于中小企业的解决方案,就是.Net和java的区别,从去年10月份.Net推动了2.0,他推出不到十年,里面肯定有一些这样那样的问题,从2.0开始有一些问题是可以避免的,至于学习.Net有什么具体经验来讲,我觉得比较大了,具体到每个程序员呢?就是比java来讲就是上手快,一个是他不像java那么复杂,只有一个公司只有一个开发工具,所以学习.Net你只有按照公司给你设计的道路你都可以最后达到自己想要的目标。
李翊:单纯讲学习经验的话,java的体系其实比较复杂,对初学的朋友来讲,要比.Net会高一些会难一些,但是还是有一些规律可循的,两大方面,一个就是对于广大向从事业的话,可能就是要机遇Web多结构的系统,那么我觉得主要把精力放在这么几个要点,第一个就是设计高效的要点,数据库的设计,数据库高效的访问,然后就是如何写一个比较简单的系统,对于我们初学程序员来讲,如何写出高效的程序?如何把数据库进行数据化?其实就一个程序来讲,有些时候甚至很多时候他是以数据为中心的,如何提炼你对访问数据的经验是很重要的,对于Web的前端的技术也是很重要的,特别像Ajex的技术,有非常扎实的基本功这也是很重要的,我们在学习这些逐渐的时候,我们往往都会是拿一些简单的例子去学习,去学习框架或者解决方案或者一些基本的理念和技巧,这样的话,可能是不够的,增加一些业务的学习首先要让别人看到这个业务的复杂性,如果不参加培训也要见到这个真实的业务有多复杂?我还是想我们可以写一个去体验AOP的小例子,如果对于一个真实的例子来讲,这个切入点是很难把握的,这个会由量变引起质变,我们觉得这个更核心的话,就是让你想法去见到业务的复杂度,不能在你的理想的状态去学习,但是最终的这样一些经验也好技能也好,跟实际是脱节的,应该是以一些实际的业务为主,然后用这个框架去想办法怎么解决,当然我们具备这种比较扎实的代码的编程能力或者数据库的访问能力,在这些扎实的基本功之上我们可以去分析这种业务的实际复杂问题,我们可以利用一些成熟的框架,更重要的是我们要去分析如何避免如何优化?
马帅:两位老师都总结了自己学习语言的经验,郑老师讲的是.Net入门相对比较简单,李老师讲的就是不能为了单单解决方案而去学习,要先看到真实企业方案然后再想想这个工具能解决什么问题。
李翊:因为对于一个初学这来讲,他迫切需求的是真实的业务有多少的复杂度,因为他没有见过这样真实的问题,我们应该作为培训来讲应该让学员看到真实的问题的复杂的样子,我们所谓的去公司里面工作经验所谓经验就是你见过这样的问题,我的意思就是说我们在学习东西的时候要去见到这个问题,而不是我们先要去学习再见到问题,这个往往是片面化不是真实发生的。
马帅:今天谢谢两位老师来为我们讲国际软件工程师的概念以及Java和.Net的学习心得,非常感谢。