构建之法 学习笔记05

关于个人能力的衡量和发展

首先,软件工程包括了开发、运营、维护软件的过程中的很多技术、做法、习惯和思想。软件工程把这些相关的技术和过程统一到一个体系之中,即“软件开发流程”。单软件开发不光是指团队的流程,还包括个人开发流程,因为团队是由个人组成的。在团队的大流程中,是每一个具体的个人在做开发、测试、用户界面设计、管理、交流等工作。因此,个人在团队中也有独立的流程。

那么,对于初级软件工程师。我认为应该具有以下几种成长。

1.积累软件开发的相关知识,提升技术技能。技术是一切软件开发后续工作的基础与保障,只有具备好的技术,才能更好的实现自己的创想。例如。对java、c/c++、c#的掌握,诊断/提高效能的技术、对设备驱动程序(Device Driver)的掌握;或者对某一开发平台的掌握。

2.积累问题领域的知识和经验(例如:对游戏、医疗、或金融行业的了解)。随着经验的积累与增长,一个工程师可以掌握更广泛、更深入的技术和问题领域的知识。

3.对通用的软件设计思想和廉工程思想的理解。这一方面就比较虚,每个人也许都有着各自对软件设计思想、软件工程思想的定义与理解,这就纯粹是靠个人的悟性了。

4.提升职业技能(区别于技术技能)。职业技能包括:自我管理的能力,表达交流的能力,与他人合作的能力。按质量完成任务的执行力,这些不管是在IT领域或是在别的工作领域对个人来说都是至关重要且必须具备的能力。

5.实际成果。绝大部分软件工程师的工作成果都是可以公开的,你参与产品的用户评价如何?市场占有率如何?对用户的价值有多大?或者换句话说。用户的体验度如何?行胜于言,这些实际的工作成果,是最好的评价标准。。

而一个软件开发的工作量和工作质量应该怎样衡量呢?主要看项目/任务有多大,花了多少时间,质量如何,是否按时交付。

最后谈一谈软件工程师的职业发展。大多数人会选择的一个方向是——考级。在中国,软件工程师的职业资格考试有:计算机等级考试和全国计算机技术与软件专业技术资格考试。等级考试的好处在于首先它是国家认证的,有一定的全为性和通用性,其次它是任何人都可以参加的,不失为一个能证明自己能力的好途径,且门槛低。但是同时也具备一定的局限性:1.以答题/评分为主要考试形式,没有面对面的口试,2.考试中每个人单独行动,不能考量团队团队合作能力。3.要考虑到通用性和稳定性,考题内容相对滞后于工业界的发展,部分内容相当滞后。

原文地址:https://www.cnblogs.com/ly1128/p/6853097.html