问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-08-29 11:11

我来回答

1个回答

热心网友 时间:2023-07-20 15:27

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

  随着社会的高速发展,电脑的使用也已经日益普及。同时Java的应用可以说是无处不在,从桌面应办公用到网络数据库等应用,从PC到嵌入式移动平台,从Java小应用程序(Applet)到架构庞大的J2EE企业级解决方案,处处都有Java的身影,就连美国大型太空项目当中,也使用了Java来开发了控制系统和相关软件。如此巨大的应用市场,造就了JAVA软件工程师的巨大需求,选择JAVA,有无数机会在等着你!
职业发展路径:
根据IDC的统计数字,在所有软件开发类人才的需求中,对Java软件工程师的需求达到全部需求量的60%-70%。 目前,虽然Java人才的薪水很高,但是对该类人才需求旺盛的IT企业却很难招聘到合格的Java人员。其中,最根本的原因就是许多计算机专业的毕业生在读期间没有掌握实用的技能与经验,距离企业的实际用人要求有较大的差距。因此,计算机专业的大学生欲成为Java工程师,最便捷的一条路就是参加以实战项目为主要教学方法的Java职业技能培训,从而有效地缩短同企业具体用人要求之间的差距。
从事该行业所需的职业素质,您具备吗?
第一、需求分析能力
对于软件工程师而言,理解需求就可以完成合格的代码,但是对于研发项目的组织和管理者, 他们不但要理解客户需求,更多时候还要自行制定一些需求,为什么这么说呢?
一般而言,进行研发任务,也许是客户提出需求,也许是市场和营销部门提出的需求,这 时候对于研发部门,他们看到的不是一个完整的需求,通常而言,该需求仅仅是一些功能 上的要求,或者更正规些,可能获得一个完整的用户视图;但是这都不够,因为客户由于 非技术因素多一些,他们可能很难提出完整和清晰,或者说专业性的性能需求,但是对于 项目组织者和规划者,他必须能够清醒认识到这些需求的存在并在完成需求分析报告的时 候适当的提出,同时要完整和清晰的体现在设计说明书里面,以便于程序员编码时不会失 去这些准则。
程序设计者必须正确理解用户需求所处的环境,并针对性做出需求的分析,举例而言,同 样一个软件通过ASP租用方式发布和通过License方式发布,性能需求可能就是有区别的, 前者强调的是更好的.支撑能力和稳定性,而后者则可能更强调在各种平台下的普适性和安 装使用的简捷性。
第二、项目设计方法和流程处理能力
程序设计者必须能够掌握不少于两到三种的项目设计方法(比如自顶至下的设计方法,比 如快速原型法等等),并能够根据项目需求和资源搭配来选择合适的设计方法进行项目的 整体设计。
设计方法上选择不当,就会耽误研发周期,浪费研发资源,甚至影响研发效果。
一个程序设计者还需要把很多功夫用在流程图的设计和处理上,他需要做数据流图以确立 数据词典;他需要加工逻辑流图以形成整体的系统处理流程。
一个流程有问题的系统,就算代码多漂亮,每个模块多精致,也不会成为一个好的系统。 当然,做好流程分析并选择好项目设计方法,都需要在需求分析能力上具有足够的把握。
第三、复用设计和模块化分解能力
这个似乎又是老调重谈,前面基本素质上不是已经说明了这个问题吗?
作为一个从事模块任务的程序员,他需要对他所面对的特定功能模块的复用性进行考虑, 而作为一个系统分析人员,他要面对的问题复杂的多,需要对整体系统按照一种模块化的 分析能力分解为很多可复用的功能模块和函数,并针对每一模块形成一个独立的设计需 求。举个例子,好比是汽车生产,最早每辆汽车都是独立安装的,每个部件都是量身定做 的,但是后来不一样了,机器化大生产了,一个汽车厂开始通过流水线来生产汽车,独立 部件开始具有一定的复用性,在后来标准化成为大趋势,不同型号,品牌甚至不同厂商的 汽车部件也可以进行方便的换装和升级,这时候,汽车生产的效率达到最大化。软件工程 也是同样的道理,一个成熟的软件行业,在一些相关项目和系统中,不同的部件是可以随 意换装的,比如微软的许多桌面软件,在很多操作模块(如打开文件,保存文件等等)都 是复用的同一套功能模块,而这些接口又通过一些类库提供给了桌面应用程序开发者方便 挂接,这就是复用化的模块设计明显的一个佐证。
将一个大型的,错综复杂的应用系统分解成一些相对独立的,具有高度复用性的,并能仅 仅依靠几个参数完成数据联系的模块组合,是作为高级程序员和系统分析员一项最重要的 工作,合适的项目设计方法,清晰的流程图,是实现这一目标的重要保证。
第四、整体项目评估能力
作为系统设计人员,必须能够从全局出发,对项目又整体的清醒认识,比如公司的资源配 置是否合理和到位,比如工程进度安排是否能最大化体现效率又不至于无法按期完成。评 估项目整体和各个模块的工作量,评估项目所需的资源,评估项目可能遇到的困难,都需 要大量的经验积累,换言之,这是一种不断总结的累计才能达到的境界。在西方一些软件 系统设计的带头人都是很年长的,比如4,50岁,甚至更老,他们在编码方面已经远远不 如年轻人那样活络,但是就项目评估而言,他们几十年的经验积累就是最重要和宝贵的财 富。中国缺这么一代程序员,主要还不是缺那种年纪的程序员,而是那种年纪的程序员基 本上都是研究单位作出来的,都不是从专业的产品化软件研发作出来的,他们没有能积累 那种产品化研发的经验,这也是没有办法的事情。
第五、团队组织管理能力
完成一个项目工程,需要团队的齐心协力,作为项目设计者或研发的主管人,就应当有能 力最大化发挥团队的整体力量,技术管理由于其专业性质,不大同于一般的人事管理,因 为这里面设计了一些技术性的指标和因素。
首先是工作的量化,没有量化就很难做到合适的绩效考核,而程序量化又不是简单的代码 行数可以计算的,因此要求技术管理人员需要能真正评估一个模块的复杂性和工作量。
其次是对团队协作模式的调整,一般而言,程序开发的协作通常分为小组进行,小组有主 程序员方式的,也有民主方式的,根据程序员之间的能力水平差距,以及根据项目研发的 需求,选择合适的组队方式,并能将责权和成员的工作任务紧密结合,这样才能最大发挥 组队的效率。 ;
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
化学速率的理解问题 标准平衡常数Kθ公式「科普」 沼泽过滤用沙子还是石子 艾利和U10VP(1GB)主要功能 艾利和U10VP(512MB)重要参数 艾利和U10(1GB)重要参数 艾利和U10(1GB)艾利和U10(1GB)详细参数 艾利和U10(512MB)艾利和U10(512MB)详细参数 电信手机查详单能不能把上网的历史记录查出来 电信流量超支怎么查询 护理学剪切力名词解释 中层管理需提高自身能力 森鑫森林公园从顺义南法信坐什么车能到 白姨和树叶怎么认识的 松下波轮洗衣机可以空转吗 洗衣机空转怎么修理 洗衣机空转对洗衣机有影响吗 蜂蜜水可以放冰箱吗 蜂蜜水能不能放冰箱 熊猫直播间那里的那些电视剧不违法吗 江西省九江市星子县工业园区 江西省热能工程有限公司怎么样? 九江诚达电梯有限公司怎么样? 江西辛格林电梯销售有限公司怎么样? 西继迅达许昌电梯有限公司江西分公司九江既有住宅加装电梯事业部有此... 鼓励完成销售业绩的话 lng和cng有什么区别;lng和cng发动机的区别 cng和lng什么区别 请在家提供一些赞美人的谚语,谢谢! 鲟鱼生活在什么水域,吃了对身体如何? 象山环保局大气污染电话举报中心 球刀怎么磨? 工商银行股票走势分解?工商银行行业地位分析?工商银行最新信息公布... 华为荣耀7X百度网盘熄屏断网(已设置不清理,锁定和熄屏后保持联网也都... 交错级数一定收敛吗? 交错级数是不是都是收敛的? 交错级数都收敛吗? 为什么这个交错级数不是收敛的? 2016年农历十月十五出生的姓林男孩起什么名字好呢 2011年农历十月十五日凌晨一点五十五分出生的男孩起什么名字好_百度知 ... 秋季怎样搭配卫衣 字谜:权限集中,猜一个字 权限集中,猜迷,中国伟人的姓 什么ROOT可以集中最高权限,方便好用的 怎么能集中最高权限,有合适的软件么 英文缩写KK翻译成中文是什么意思? 《游子吟》中三春指的是什么 谁言寸草心, 报得三春晖. 三春指哪三春 股票格力电器今年最高价是多少?今日股票行情 格力电器?格力电器今年... dnf背包里没有用的任务材料怎么扔?显示为0,扔不掉呢?很久以前的任务材料... DNF的任务栏中物品删除不掉怎么办? DNF怎样才能把已经完成的任务给删除掉?