如何评估个人的软件开发能力
来源:互联网 发布:知乎炸鱼 编辑:程序博客网 时间:2024/04/20 07:26
如何评估个人的软件开发能力从基本的来看
基础:
1. 读程序的能力
很多的软件开发工作不一定会从头开始,这就需要开发人员有良好的阅读程序的能力,能在尽可能短的时间里了解软件整体的架构,理解该软件初始的开发思想,能迅速并有效地参与到项目开发中去。
2. 编码能力
这点会涉及到开发人员对所用语言的熟练程度,和该开发人员的编程风格。是否拥有良好的编程习惯,能遵循通用的编程规范,并作好注释,对该开发人员所开发代码的易读性和易维护性有很大的影响。
3. 调试和测试能力
现代的软件行业中,代码的调试和测试时间并不比编码时间短,甚至会超出,当然,很多的调试和测试工作并不都是编码人员完成,但测试工作是很多软件开发人员的必经之路。
4. 软件的维护
似乎维护谈不上需要什么能力,因为这时更多需要的是开发人员的耐心。
进阶能力
1. 需求分析的能力
一个项目,最初就需要做需求分析,了解该项目的目的,对系统的需求,对功能的要求,并对其进行分析,作好项目规划和说明 。
2. 建立软件框架的能力
建立一个良好的软件框架是这个项目成功的一个保证,需要考虑整个软件的一致性和完整性。
3. 贯穿项目始终的管理控制能力
在项目开发过程中,不可避免会出现新需求的加入,目标的修正,或者人员的变动等问题,对此进行有效的管理控制是对开发人员的更高要求。
软件工程师→软件设计师→架构设计师或项目管理师
A.基础理论知识,如操作系统、编译原理、数据结构与算法、计算机原理等,它们并非不重要。如不想成为计算机科学家的话,可以采取"用到的时候再来学"的原则。
B.一门编程语言,现在基本上都是面向对象的语言,JAVA/C++/C#等等。如果做WEB开发的话还要学习HTML/JavaScript等等。
C.一种方法学或者说思想,现在基本都是面向对象思想(OOA/OOD/设计模式)。由此而衍生的基于组件开发CBD/面向方面编程AOP等等。
D.一种关系型数据库,ORACLE/SqlServer/DB2/MySQL等等
E.一种提高生产率的IDE集成开发环境JBuilder/Eclipse/VS.NET等。
F.一种UML建模工具,用ROSE/VISIO/钢笔进行建模。
G.一种软件过程,RUP/XP/CMM等等,通过软件过程来组织软件开发的众多活动,使开发流程专业化规范化。当然还有其他的一些软件工程知识。
H.项目管理、体系结构、框架知识。
具体实施方法
1.实践
2.参考代码
JAVA领域有许多源代码开放的工具、组件、框架,JUnit、ANT、Tomcat、Struts、Spring、Jive论坛、PetStore宠物店等等多如牛毛
3.英文阅读
4.读书
5.工具
程序员日常工作包括很多活动,编辑、编译及构建、调试、单元测试、版本控制、维持模型与代码同步、文档的更新等等,几乎每一项活动都有专门的工具,如果独立使用这些工具的话,你将会很痛苦,你需要在堆满工具的任务栏上不断的切换,效率很低下,也很容易出错。在JBuilder、Eclipse等IDE中已经自动集成编辑器、编译器、调试器、单元测试工具JUnit、自动构建工具ANT、版本控制工具CVS、DOC文档生成与更新等等,甚至可以把UML建模工具也集成进去,又提供了丰富的向导帮助生成框架代码,让我们的开发变得更轻松。应该说IDE发展的趋势就是集成软件开发中要用到的几乎所有工具。 从开发效率的角度考虑,使用IDE是必经之路,也是从一个学生到一个职业程序员转变的里程碑。
6.请教他人
你是否在google中搜索了问题的解决办法?你是否查看了JAVA API文档?
你是否查找过相关书籍?你是否写代码测试过?
能力指标
具体
技术
Java Web应用开发的基本技能
l 基本知识
– WEB应用、JAVA开发
l JAVA框架构成
– 基本框架、公共组件
数据库设计、开发与维护
l 设计
– E-R图、逻辑设计和物理设计、使用PowerDesigner 、数据量的评估分析
l 开发
– 视图、存储过程、触发器
l 维护
– 使用PowerDesigner 、备份和恢复、监控数据库性能
系统分析和设计的能力
l 系统分析
– 需求捕获
l 用户访谈、小组会议、问卷表
– 分析
l 业务需求、用户需求、功能需求
– 工具
l 时序图、类图
l 系统设计
– 架构设计、功能设计、UI设计、数据库设计、接口设计
系统测试能力
l 测试计划、测试方法、测试环境、测试人员安排、回归测试
应用软件过程的能力
l 软件过程模型的选择
– 模型:瀑布、迭代、XP……、我们的特殊性:产品开发、定制开发和产品导入
l 技术预研
l 开发过程
l 部署过程
l 试运行过程
l 变更控制
业务
公司产品理解
l 公司产品
l 目的
– 企业形象、业务挖掘、不是卖产品而是导入产品,或解决方案提供和管理模式输出
方案
l 内容
– 方案概述、需求分析
– 解决方案、关键技术、实施方案
l 方法
– 不是Ctrl_C+Ctrl_V,关注用户需求、不了解的情况下做什么:课前下足功夫
PPT宣讲
l 前期准备
– 用户关注什么、哪些关键用户参与
l 准备PPT
– 金字塔分层、关键的东西要写出来、言简意赅,多用图片
l 准备宣讲
– 时间、多练习
l 宣讲
– 多观察、有突发事件怎么办
l 总结
领域知识
l 项目管理
l 企业级项目管理
行业背景
l 目的
– 共同语言
l 如何掌握
– 收集、项目
管理
制定计划的能力
l 计划做什么
– 目标明确、范围分解、工作量估算、资源分配
l 其他计划
– 成本、测试、配置、沟通、资源
项目跟踪报告
l 目的
– 让公司和客户对你放心、让公司和客户帮你干活
l 报告内容
– 本期已完成、下期计划、存在问题及对策、
l 应该还有
– 成本、资源、风险
和项目涉众沟通的能力
l 目的
– 维护项目目标一致
l 做法
– 计划、沟通周期、沟通方式
l 会议
– 会议准备:拟定会议议题、会议时间、参会人员、记录员、签到表和议程
– 会议过程:记录、主持的方法、一定要有决议、遗留问题要确定下次会议时间
– 有成果物评审的
参考:百度文库
- 如何评估个人的软件开发能力
- 如何评估个人的软件开发能力
- 如何评估软件供应商的交付能力
- 如何评估软件供应商的交付能力
- 如何评估自己的能力?
- 如何评估服务器的单机处理能力
- 软件能力成熟度模型评估CMM的误区
- 如何评估自己的购房能力?购房预算含哪些?
- 如何提高自己的acm个人能力
- 如何提高自己的acm个人能力
- 创业者需要具备什么能力--走出软件作坊:三五个人十来条枪 如何成为开发正规军(四十二)
- 创业者需要具备什么能力--走出软件作坊:三五个人十来条枪 如何成为开发正规军(四十二)
- 读后感: 创业者需要具备什么能力--走出软件作坊:三五个人十来条枪 如何成为开发正规军(四十二)
- 如何提高个人能力
- 如何提高西安软件行业的开发能力(WEB开发)
- 如何评估机器网络吞吐能力
- 进行软件开发的能力与素养
- 软件开发的能力体系及锻炼
- VC6.0 error LNK2001: unresolved external symbol ***
- win8配置java环境
- win 7 修复 mbr
- C#中将查询的结果集使用json序列化并传输后反序列化
- 统计学习方法第四章,贝叶斯估计的实现
- 如何评估个人的软件开发能力
- 如何彻底的删除Oracle表
- poj 1195 二维树状数组
- 谁在使用我的网站——用户忠诚和价值分析
- Tab控制器 ( UITabBarController )
- 数据库相关
- JDK环境变量设置详解
- Eclipse中调用VS 2012生成的DLL文件,进行调试的步骤。。。[含VS2012中release版本的调试配置]
- Linux2.6内核--内存管理(1)--分页机制