如何成为一名优秀的软件开发工程师


如何成为一名优秀的软件开发工程师

文章插图
软件开发工程师一直都是个热门的行业,智能手机发展以后,手机软件开发更是火的不行,许多人看好这个行业,通过培训或者其它方式进入,那么,如何成为一名优秀软件开发工程师?
职业发展道路:
【/h/】据IDC统计,在所有软件开发人才中,对Java软件工程师的需求占总需求的60%-70% 。目前,虽然Java人才的工资很高,但对这类人才需求旺盛的IT企业很难招聘到合格的Java人才 。其中最根本的原因是很多计算机毕业生在学习期间没有掌握实际的技能和经验,与企业的实际就业要求相差甚远 。因此,计算机专业学生成为Java工程师最便捷的途径就是以实战项目为主要教学手段参与Java职业技能培训,从而有效缩短与企业具体就业要求的差距 。

如何成为一名优秀的软件开发工程师

文章插图
一、需求分析能力
对于软件工程师来说,理解需求可以完成合格的代码,但是对于R&D项目组织和管理者来说,不仅要理解客户需求,更要经常制定自己的需求 。为什么这么说?
但是这还不够,因为客户的非技术因素比较多,所以他们可能很难提出完整明确或者专业的性能要求 。但是对于项目组织者和策划者来说,在完成需求分析报告时,必须能够清楚地认识到这些需求的存在,并恰当地提出来,同时在设计规范中也要充分清晰地体现出来,这样程序员在编码的时候就不会丢失这些准则 。
【如何成为一名优秀的软件开发工程师】程序员必须正确理解用户需求所处的环境,并对需求进行有针对性的分析 。例如,通过ASP租赁发布的相同软件和通过许可证发布的相同软件的性能要求可能不同 。前者强调更好的支持能力和稳定性,后者可能强调各种平台下的通用性和安装使用的简单性 。
第二,项目设计方法和流程处理能力
程序员必须能够掌握至少两三种项目设计方法(如自上而下的设计方法、快速原型法等 。),并能根据项目要求和资源配置,为项目整体设计选择合适的设计方法 。

如何成为一名优秀的软件开发工程师

文章插图
设计方法选择不当,会延迟R&D循环,浪费R&D资源,甚至影响R&D效应 。
一个程序员仍然需要花费大量的时间在流程图的设计和处理上 。他需要做数据流程图,建立数据字典;他需要处理逻辑流程图,形成整个系统的处理流程 。
一个有流程问题的系统,即使代码很漂亮,每个模块都很精致,也不会成为一个好的系统 。当然,要做好流程分析,选择好的项目设计方法,需要对需求分析的能力有足够的把握 。
第三,重用设计和模块化分解能力
作为一个从事模块任务的程序员,他需要考虑他所面对的具体功能模块的复用性,而作为一个系统分析师,他所要面对的问题要复杂得多 。他需要根据一种模块化的分析能力,将整个系统分解成许多可重用的功能模块和功能,并对每个模块形成独立的设计需求 。比如像汽车生产 。一开始每辆车都是独立安装的,每个部件都是量身定做的 。但后来就不一样了,开始了大规模的机器生产 。某汽车厂开始通过流水线生产汽车,独立零部件开始具有一定的复用性 。后来标准化成为大趋势,不同型号、品牌甚至不同厂家的汽车零部件都可以方便的更换升级 。此时,汽车生产效率最大化 。软件工程也是如此 。在一个成熟的软件行业,在一些相关的项目和系统中,不同的组件是可以随意改变的 。比如微软的很多桌面软件都是在很多操作模块中重用的同一套功能模块(比如打开文件、保存文件等) 。),这些接口提供给桌面应用程序开发人员,便于通过一些类库进行挂接,这是复用模块设计的明显证明 。
将一个庞大而复杂的应用系统分解成一些相对独立、可重用性高的模块,只能依靠少数几个参数来完成数据连接,是高级程序员和系统分析师最重要的工作 。合适的项目设计方法和清晰的流程图是实现这一目标的重要保证 。

如何成为一名优秀的软件开发工程师

文章插图
四、项目整体评价能力
作为一个系统设计师,你必须能够从全局出发,对项目整体有一个清晰的认识,比如公司的资源配置是否合理到位,比如项目进度是否能够最大限度的提高效率而不至于不能按期完成 。评估整个项目和各个模块的工作量,评估项目所需的资源,评估项目可能遇到的困难,都需要大量的经验积累,换句话说,这是一个只有不断总结积累才能达到的状态 。在西方,一些软件系统设计的领导者都很老了,比如450岁甚至更老 。他们在编码方面远不如年轻人积极,但就项目评估而言,他们几十年的经验积累才是最重要、最有价值的财富 。中国缺少这样一代的程序员,主要是因为不缺少那个年代的程序员,而是因为那个年代的程序员都是科研机构做的,不是由产品化软件的专业R&D做的 。他们没有积累R&D产品化的经验,也没有办法做到这一点 。


推荐阅读