所在的位置: 程序员 >> 概念 >> 程序员技能的51

程序员技能的51

软件工程师从最早的专业编程人员发展至今,已经衍生出很多不同的岗位,根据技术栈方向,工作流分工的不同,大致有几十种岗位。但从技能类型上看,我们抽象出一下5个维度的技能类型加上一个专项技术领域,构成整个软件工程师的能力模型;这个能力模型既是训练的方向,也是评价的角度。

软件工程师技能的5个维度:

1:编程语言与框架

:算法与模式

3:软件质量

4:需求与产品设计

5:团队协作

专项技术:数据库,操作系统,通信,图形引擎等

1:编程语言与框架

编程语言与框架,是软件工程师最基础的技能,是其他能力的基础。比如:C/C++/QT;JAVA/JEE;C#/.NET;Swift/IOS;JS/Bootstrap;Python/Django;Ruby/Rails等等。这类型能力的培养在于反复的练习和细致的阅读理解。主要教学方式,比较合适采用自学的方式。

:算法与模式

软件程序,从本质上讲就是用计算机去模拟一个系统;算法和数据结构一般描述了在模拟某些典型问题的比较高效的实现形式。编程模式,实际上对应了一个系统的代码结构组成的典型方法。这部分类容实际上是一种前人的经验总结的抽象代码实现。比如:排序算法、链表、二叉树等等。数学模拟:比如:大整数相乘。4种设计模式、

MVC架构等等。这部分类容比较好的学习方式是老师授课加有针对性的练习和实践。

3:软件质量

软件质量是软件工程师走向职业化的必备技能,除了外部质量(更多需要团队配合和整体能力之外),内部质量(代码结构)对个人的技能要求也非常高。这部分技能主要涵盖代码规范,单元测试,TDD,自动测试,持续集成,代码评审(走读),以及好的代码原则:内聚,耦合,依赖倒置,SOA架构思想等等。比较好的学习方法是讲授,教练式的训练和项目实战。

4:需求与产品设计

这部分是学校教育和传统软件人才培训中最为忽视的部分,主要重点是一个软件工程师根据客户脑海中的对软件使用目的的分析,而创造性地定义软件的形式,内容和交互方式。也可以简单理解为功能点的具象化。这部分技能主要覆盖:软件需求的描述方法,产品设计的基本步骤和方法(用户调研,逻辑抽象,用户模型),交互设计的方法,工具,原则,以及如果与客户进行沟通交流的技能。这部分类容比较好的学习方式是比较好的学习方法是讲授,教练式的训练和项目实战。

5:团队协作

现代化软件开发,基本都是以团队协作的方式进行,很少出现完全独立的程序贡献者。所以,学会软件开发项目中的团队协作的基本技能已经是作为软件工程师的基本技能之一。主要涵盖的内容包括:如何可视化自己以及团队的工作状态,基本的团队分工和工作流程,代码管理SVN,GIT等,SCRUM软件管理过程框架实践,文档的作用,结对编程等。这部分类容比较好的学习方式是自学加上教练式的训练和项目实战。

6专项技术

在软件开发实际项目里面,根据业务领域类型不同可能我们会涉及到需要掌握:数据库,操作系统,通信,图形引擎,大数据处理等更软件应用行业相关的若干技术细节,这个会根据未来实际工作中的需要初步学习和掌握,其主要学习方式会以自学为主(因为种类太多,必须在工作过程中不断自学)。









































北京白癜风医院
北京白癜风医院



转载请注明:http://www.xxcyfilter.com/gailian/5873.html