机构档案
- 机构级别:普通会员
- 信用等级:
资料认证
未通过身份证认证
未通过办学许可认证
- 学校浏览人次:次
- 加盟时间:2017年03月10日
新闻动态
西安尚学堂讲师解答怎样成为受欢迎的软件工程师
发布者:西安尚学堂 发布时间:2017-03-13 来源:西安尚学堂
软件工程师的未来如何?会有哪些出路?在IT技术飞速发展、IT产业竞争加剧的今天,一个软件工程师怎样才能应对各种挑战?一时间成为IT人求职的热点话题。一句话:怎样才能成为一名受欢迎的软件工程师?恐怕只有一个:学会学习。
我们首先来看一下一个软件工程师的成长历程
一个软件工程师最初都是从写程序开始的。写软件程序其实是很简单的,入了门,只要条件配合,走专职程序员的道路是相当自然的。这里说的条件是什么呢?兴趣是第一,再者就是进修提高。学校虽尽其可能传授学生最新的知识,但仍然不能追赶技术的脚步。不断自发地接触新知识就成了最重要的进修方式,能不能把握好这些机会,决定着程序员的技术层次和前程。
在技术钻研的历程上,刚开始你可能只是一个程序生产者。在这个阶段里,你只以编写程序的能力来提供服务。这个阶段重要的是打好基础,千万不要养成不良习惯:比如求快而忽略细节,千万不要以为简单和简陋是同一件事情。
渐渐地,单纯的程序编写已不具挑战性,你开始对自己负责程序编写的模块设计产生怀疑,并能适时地提供改善的建议。接着,你可能因为经常提出好点子而被嘉许。就这样逐渐开始接触设计的领域。富有创意或是基础扎实的人,会比较快地进入此阶段。
更进一步,你开始负责模块的设计。与前一阶段相比,你的工作内容已经从程序编写变为程序设计,这时你编写的程序的比重在逐渐减少,但通常都是比较重要的部分。在与同事的沟通中,你将了解到整个产品的设计理念和重点。能不能更上一层楼,是否具有足够的前瞻性,都取决于这个阶段。很多不错的工程师都在这一层上下徘徊,无法取得进一步的突破。若不能下足工夫,将很难再创新高。)
过了这个阶段,你就可以独立完成一个产品的全部模块设计。此时重要的是产品系统的周全性,以及各模块之间的关联及互动。此时,你就将由程序员升格为软件工程师。
由此可见,修成一个成熟的软件工程师要有相当时间的磨练和积累,学习与不断提高伴随着软件工程师的职业生涯。在这个过程中," 学会学习 " 比 " 学习什么 " 更为重要,因为学习方法远比学习内容重要,一个成功的软件工程师必须在实践中积累分析问题、解决问题的能力。没有一劳永逸的职业,软件行业更是如此。趋势公司科技产品研发部的罗钟灵是如此描述软件工程师的工作的,我们不妨也看一下:" 写程序没有模糊地带,必须照顾好所有细节,一旦程序有一点小问题,就会造成产品瑕疵。在学校写程序和在工作实践中写程序的最大不同在于,在学校编写的程序只要能用就行了,但在工作中却有很大部分时间是在处理各种意外,使程序更为完美,这就要求你必须花很大的精力去学习和积累。新入行的程序员容易把问题简单化,往往还未对问题透彻了解就贸然解决问题。你应该努力学习分析、解决问题的能力,这是最为迫切的。
成就软件工程师的六个要素
1. 良好的编程能力。编程能力直接决定了项目开发的效率。这要求软件工程师至少精通一门编程语言,熟悉它的基本语法、技术特点和 API( 应用程序接口 ) 。
2. 自觉的规范意识和团队精神。随着软件项目规模越来越大,仅仅依靠个人力量已经无法完成工作,因此,现代软件企业越来越重视团队精神。一般来讲,软件企业中的程序员可以分为两种,一种是 " 游击队员 " ,他们可能对编程工具很熟,能力很强,编写的程序简洁高效,却缺乏规范和合作的观念;另一种程序员个人能力不一定很强,但程序较为规范,合作意识良好。第二种人更适合现代软件企业发展的潮流。对于基础软件工程师来说,他们在企业中的角色决定了他们必须具有良好的规范意识和团队精神。
3. 认识和运用库的能力。信息以为中心,因此与库的交互是必不可少的,了解库的操作和编程是软件工程师需要具备的基本素质之一。
4. 较强的英语阅读和写作能力。程序世界的主导语言是英文,编写程序开发文档和开发工具帮助文件离不开英文,了解业界的最新动向、阅读技术文章离不开英文,与编程高手交流、发布帮助请求同样也离不开英文。作为基础软件工程师,具有一定的英语基础对于提升自身的学习和工作能力极有帮助。
5. 具有软件工程的概念。基础软件工程师从事的工作相对于系统分析师和高级程序员要单纯一些,但是他们仍然是整个软件工程中重要的一环,他们同样需要具有软件工程的概念:从项目需求分析开始到安装调试完毕,基础软件工程师都必须能清楚地理解和把握这些过程,并能胜任各种环节的具体工作。
6. 求知欲和进取心。软件业是一个不断变化和不断创新的行业,面对层出不穷的新技术,软件人才的求知欲和进取心就显得尤为重要,它是在这个激烈竞争的行业中立足的基本条件。软件工程师应具有较强的学习总结能力、需求理解能力以及对新技术的敏感性。
( G上述这些能力不可能凭空产生,与信息技术领域先进的基础理论教育相比,我国高校软件人才培养模式在实践技能的培养、IT 前沿技术的获取与沟通、具有国际水平和标准的软件项目开发等方面的培养存在极大不足。为解决这一问题,很多人都是通过培训和继续教育的过程逐步获得的。) 目前,社会上的软件工程师培训很多,但良莠不齐。有些好的培训,能够从知识到技能、从技能到应用、从应用到项目,多层次多角度地对学员进行培训,不仅关注技术层面,同时关注项目规划的实施、团队合作、技术文档的编写等在认证培训过程中无法顾及、但在实际工作中又不可或缺的能力的培养,可以使学员在理论上掌握和理解面向对象的软件工程方法和组件化的软件设计思想。还有一些培训中心,针对软件设计人员,通过对经典设计模式的理论实践,使学员掌握、运用其思考和解决问题的方法,总结技术经验,构造自己的设计模式库,使软件设计人员能系统地掌握面向对象的方法。
仅有技术是远远不够的,产业变动快速,复合型的概念也适用于信息技术相关科系,软件工程师若能软 / 硬件兼修或略通电信,再通晓某一行业的相关知识,在职场上就会比单纯写程序的工程师吃香,工作选择机会也比较多。
我们首先来看一下一个软件工程师的成长历程
一个软件工程师最初都是从写程序开始的。写软件程序其实是很简单的,入了门,只要条件配合,走专职程序员的道路是相当自然的。这里说的条件是什么呢?兴趣是第一,再者就是进修提高。学校虽尽其可能传授学生最新的知识,但仍然不能追赶技术的脚步。不断自发地接触新知识就成了最重要的进修方式,能不能把握好这些机会,决定着程序员的技术层次和前程。
在技术钻研的历程上,刚开始你可能只是一个程序生产者。在这个阶段里,你只以编写程序的能力来提供服务。这个阶段重要的是打好基础,千万不要养成不良习惯:比如求快而忽略细节,千万不要以为简单和简陋是同一件事情。
渐渐地,单纯的程序编写已不具挑战性,你开始对自己负责程序编写的模块设计产生怀疑,并能适时地提供改善的建议。接着,你可能因为经常提出好点子而被嘉许。就这样逐渐开始接触设计的领域。富有创意或是基础扎实的人,会比较快地进入此阶段。
更进一步,你开始负责模块的设计。与前一阶段相比,你的工作内容已经从程序编写变为程序设计,这时你编写的程序的比重在逐渐减少,但通常都是比较重要的部分。在与同事的沟通中,你将了解到整个产品的设计理念和重点。能不能更上一层楼,是否具有足够的前瞻性,都取决于这个阶段。很多不错的工程师都在这一层上下徘徊,无法取得进一步的突破。若不能下足工夫,将很难再创新高。)
过了这个阶段,你就可以独立完成一个产品的全部模块设计。此时重要的是产品系统的周全性,以及各模块之间的关联及互动。此时,你就将由程序员升格为软件工程师。
由此可见,修成一个成熟的软件工程师要有相当时间的磨练和积累,学习与不断提高伴随着软件工程师的职业生涯。在这个过程中," 学会学习 " 比 " 学习什么 " 更为重要,因为学习方法远比学习内容重要,一个成功的软件工程师必须在实践中积累分析问题、解决问题的能力。没有一劳永逸的职业,软件行业更是如此。趋势公司科技产品研发部的罗钟灵是如此描述软件工程师的工作的,我们不妨也看一下:" 写程序没有模糊地带,必须照顾好所有细节,一旦程序有一点小问题,就会造成产品瑕疵。在学校写程序和在工作实践中写程序的最大不同在于,在学校编写的程序只要能用就行了,但在工作中却有很大部分时间是在处理各种意外,使程序更为完美,这就要求你必须花很大的精力去学习和积累。新入行的程序员容易把问题简单化,往往还未对问题透彻了解就贸然解决问题。你应该努力学习分析、解决问题的能力,这是最为迫切的。
成就软件工程师的六个要素
1. 良好的编程能力。编程能力直接决定了项目开发的效率。这要求软件工程师至少精通一门编程语言,熟悉它的基本语法、技术特点和 API( 应用程序接口 ) 。
2. 自觉的规范意识和团队精神。随着软件项目规模越来越大,仅仅依靠个人力量已经无法完成工作,因此,现代软件企业越来越重视团队精神。一般来讲,软件企业中的程序员可以分为两种,一种是 " 游击队员 " ,他们可能对编程工具很熟,能力很强,编写的程序简洁高效,却缺乏规范和合作的观念;另一种程序员个人能力不一定很强,但程序较为规范,合作意识良好。第二种人更适合现代软件企业发展的潮流。对于基础软件工程师来说,他们在企业中的角色决定了他们必须具有良好的规范意识和团队精神。
3. 认识和运用库的能力。信息以为中心,因此与库的交互是必不可少的,了解库的操作和编程是软件工程师需要具备的基本素质之一。
4. 较强的英语阅读和写作能力。程序世界的主导语言是英文,编写程序开发文档和开发工具帮助文件离不开英文,了解业界的最新动向、阅读技术文章离不开英文,与编程高手交流、发布帮助请求同样也离不开英文。作为基础软件工程师,具有一定的英语基础对于提升自身的学习和工作能力极有帮助。
5. 具有软件工程的概念。基础软件工程师从事的工作相对于系统分析师和高级程序员要单纯一些,但是他们仍然是整个软件工程中重要的一环,他们同样需要具有软件工程的概念:从项目需求分析开始到安装调试完毕,基础软件工程师都必须能清楚地理解和把握这些过程,并能胜任各种环节的具体工作。
6. 求知欲和进取心。软件业是一个不断变化和不断创新的行业,面对层出不穷的新技术,软件人才的求知欲和进取心就显得尤为重要,它是在这个激烈竞争的行业中立足的基本条件。软件工程师应具有较强的学习总结能力、需求理解能力以及对新技术的敏感性。
( G上述这些能力不可能凭空产生,与信息技术领域先进的基础理论教育相比,我国高校软件人才培养模式在实践技能的培养、IT 前沿技术的获取与沟通、具有国际水平和标准的软件项目开发等方面的培养存在极大不足。为解决这一问题,很多人都是通过培训和继续教育的过程逐步获得的。) 目前,社会上的软件工程师培训很多,但良莠不齐。有些好的培训,能够从知识到技能、从技能到应用、从应用到项目,多层次多角度地对学员进行培训,不仅关注技术层面,同时关注项目规划的实施、团队合作、技术文档的编写等在认证培训过程中无法顾及、但在实际工作中又不可或缺的能力的培养,可以使学员在理论上掌握和理解面向对象的软件工程方法和组件化的软件设计思想。还有一些培训中心,针对软件设计人员,通过对经典设计模式的理论实践,使学员掌握、运用其思考和解决问题的方法,总结技术经验,构造自己的设计模式库,使软件设计人员能系统地掌握面向对象的方法。
仅有技术是远远不够的,产业变动快速,复合型的概念也适用于信息技术相关科系,软件工程师若能软 / 硬件兼修或略通电信,再通晓某一行业的相关知识,在职场上就会比单纯写程序的工程师吃香,工作选择机会也比较多。