用户登录
用户注册

分享至

基础软件研发工程师 软件研发工程师

  • 作者: 吴三桂丶
  • 来源: 51数据库
  • 2020-04-14

基础软件研发工程师

软件开发高级工程师难考吗?没有基础也可以学会吗?

没有基础的可以学,软件开发高级工程师都会有相应对应的项目的培训,只需要参加培训,并最终成绩合格后,就可以给予工程师的称号。

以下是考试所需要的一些基础知识:首先是对操作系统的认知大家都是知道,不管什么应用软件,都必须依靠一个操作系统,只有在一个操作系统上,它才能很好的运行;常用的操作系统最多的当数微软的windows操作系统了,2013年微软推出的是win8操作系统;由于是刚刚推出,它还不能被用户所接受,2013年大多用户还在用win7和windows xp操作系统。

其次是对开发语言的掌握软件开发,通俗的说就是写程序,就是把一串一串的命令组合起来,让它来替完成某种特定的任务。

如果考试者从事的是java软件开发,那么考试者重点必须精通java语言,考试者要懂得java的特性,java语言的语法,java语言的算法等等。

第三是对开发工具的使用俗话说:磨刀不误砍柴工,要想开发出一个好的软件,对开发工具的熟练应用是非常重要的,它可以让考试者事半功倍;java软件开发常用的开发工具有:开源的Eclipse和收费的MyEclipse,.Net软件开发工具有:微软的VisualStudio,Pascal软件开发工具:Delphi。

关于软件开发工具的使用,可以参考扩展文章《常用的软件开发工具有哪些使用技巧》。

第四是对TCP/IP网络协议的了解有了TCP/IP网络协议,使网络得到了飞速的发展;从早期的C/S结构的运行模式到现在主流的B/S结构的完美转变,TCP/IP协议是功不可没的,未来更是离不开TCP/IP协议;要想成为一名优秀的软件开发工程师,特别是手机软件开发工程师,考试者不仅仅要知道ISO有哪几层组成,考试者更要知道,每层的功能和作用。

第五是对数据库的熟练应用数据库对软件的影响是不容小视的,因为做的工作都是心数据为中心,重点部分就是操作数据,如果没有数据库,那么软件的作用也就会大大降低;2011年常用的都是关系型数据库,主流的有:甲骨文公司的Oracle、微软公司的sqlserver、IBM公司的DB2,还有一些小的数据库,如mysql,Access等;一定要熟练掌握SQL语言,它是操作数据库的关键。

第六是对软件工程的了解大多软件开发公司在招聘的时候,都会问考试者对软件工程的了解,软件工程是软件开发的前提;因为公司不可能招一个只会写代码而不知道为什么要这样写的员工;作为一个优秀的软件开发工程师,考试者不仅仅要会写代码,更重要的是要掌握《软件开发的流程》中每个阶段所要用的技术,如客户需求,市场调查,可行性分析,需求分析,详细设计,最后的软件测试等等。

第七是要有勇于探索,勇于创新的精神一个优秀的程序员,不能总是原地不动,不去思考,要多去想一想为什么要这样做,如果不这样做会产生什么样的后果;要努力学习新的知识,因为软件行业是一个更新速度非常快的行业,如果考试者的知识2年都没有更新的话,那么,考试者在这个软件开发行业的前景就不容乐观了;每天都要抽出一定的时间学习新知识,只有这样,才能走的更好,更远,更稳。

我想知道,要成为一个优秀的游戏软件开发工程师,无基础,在大学...

开发不难。

像我写一个int main(){return 0;}这也算是个程序。

当然,想卖得好就很难了。

我自己没做过ios系的开发工作,但是很明显,一步登天是不可能的。

我花了一年半的时间啃完了相当数量的C++教程,但是写出的代码还是被人骂的狗血喷头。

在计算机方面,会赢的人都是(并且只有)行家

软件开发工程师之路怎么走

从国内招聘网站上的数据也能看出来,近些年由于移动互联网,互联网的蓬勃发展,以及因为互联网对传统行业的整合一系列影响,软件工程师需求一直很旺盛,另一方面,高校的计算机专业培养出的人与企业需要的人有差距,所以知名大学的硕士博士首先有更多的机会进入知名的企业和科研单位,得到快速提升的机会,进入工作岗位后,个人资质不同,自学能力不同,有的人能够向上游移动,有的人被淘汰转行,或者找个地方混日子。

其实现在无论各大网站还是传统软件公司,都还是很缺乏人才的,尤其是能独当一面的合格工程师,IT行业的猎头公司特别多,也是供求关系的一种体现。

在一些论坛里,有很多人自嘲做软件的是码农,IT民工,有部分人是自嘲,因为IT行业蓬勃发展的北上广深杭州都是物价房价高企的大城市,因此在这些城市本身立足就已不易,所以刚毕业头几年是很屌丝的,即使是名校硕士,为房子车子也少说要奋斗十几二十年,但是和其他行业比,相对还是有优势的,我周围就有很多机械,物理专业的博士硕士,转行投身IT,这至少说明IT比很多专业薪水高,职位多。

从职业发展角度,有的人向往大公司,外企,有的人理想是创业,做自己的产品,不能相提并论,自己做东西相对辛苦,压力大,且有不低的失败率,但是从经验提升,从回报率来讲也是最高的,就看个人能否承受相对不稳定的生活及对自己产品或者公司的执着,有成功有失败,回头看只是过程,自己享受这个过程就不足惜,当然也要看自己的家庭背景及各方面承受力,对生活的期望和要求,大部分人还是希望有相对的稳定和保障,所以在公司谋取自己的职位也是大多数人的选择。

作为一个软件工程师,前三五年能够熟练掌握一门语言,熟练掌握开发工具及相关行业知识就很不错,在移动互联网,互联网公司可能这个时间要缩短,因为变化太快,记得苹果手机有了APP平台后,有一年iOS开发经验的工程师就已经炙手可热,两年的就已经算大拿了,这是行业的特殊性,当然当平台或者技术趋于成熟后,比拼的还是个人的自学能力和努力。

再往后,做完几个项目或者产品后,有了一定的全局观,可以在架构,系统层面看问题,通常是5到8年,甚至更久,看个人机遇,其实刚毕业进外企不一定是一个好的选择,因为大的外企分工过于细致,每个人只做好一小块,如果没有工作之余阅读书籍或者其他项目经验的话,长期下来全局观一定受限,反而是中小公司由于人力有限,能够得到很多项目上独当一面的机会,在项目或者产品的开发中获取大量经验。

10年以上的,基本可以做到项目管理,产品管理,或者研发管理,当然了,有些小公司3年5年就做项目经理的不在少数,国内软件水平参差不齐,客户的要求也参差不齐,所以有各种各样的团队也很正常,什么团队做什么东西,一个平均5年工作经验的团队,要求软件做出来可靠性,安全性,可维护性可扩展性上有高水准,显然也不现实。

个人觉得目前国内互联网和移动互联网受国家或者政策限制较少,发展已经接近世界先进水平,投身这些行业都能获得比较良好的职业发展和技能提高,传统软件国内大环境不是太好,除了金融电信等极度依赖IT基础设施来盈利的行业,其他如政府,企业,软件的替代性都比较强,功能质量要求上都有很大浮动,很多时候客户关系更加左右竞标和项目的结局,近些年虽然有所好转,但真正透明化,市场化还需要时间。

相比来说,外企是一个有经验并追求稳定的工程师的较好的选择,劳动强度相对民营企业较低,薪资待遇比较高,虽然也有市场竞争公司的不稳定性存在,但从性价比来说是比较高的,只要不混日子,及时更新知识,随着进一步国际化和国内IT行业的发展,还是有一定竞争力的,尤其是近期几大互联网公司和国内纯软件公司在研发和产品上的不断加大力度,对产品质量的要求越来越高的基础上,我也看到很多以前工作在外企的人回到民营企业,他们在外企的工作经验,对产品质量和软件工程,开发规范的理解,正是民营企业需要的,随着国内市场容量的增长,回流现象在若干年内一定还会持续。

回想现在的大环境和十几年前已经有很大不同,当时,大多数国内公司还是作坊式的,招几个毕业生就开始没日没夜干活,攒出一个软件就出去卖钱,客户也不怎么懂,能用就行,到后来,当时的毕业生已经过了30甚至40岁,IT行业也诞生出华为,阿里,腾讯这样的世界级公司,整个行业愈发成熟,记得当年很多IT论坛问得最多的问题是:做软件30岁以后怎么办,还能干什么? 很多人当时认为这是青春饭,30岁就会被刚毕业能熬夜的人替代,现在看来是多么可笑,软件工程师是一个和其他行业一样的职业,欧美公司里白头发白胡子老头一样在写程序,只是可能在写架构,写核心代码,写编译器,他们的经验和对软件的认识绝非5年10年的人所能望其项背,这也是欧美软件强国的进步之处,好在国内大环境也越来越好,90年代出道的程序员如今也都40岁左右了,其中还有部分人从事一线技术或者技术管理工作,国内公司也越来越看重技术,技术在科技企业起着决定性作用,很多公司也像外企一样有了两...

软件工程师需要什么基础?

软件工程师英文是Software Engineer,是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格。

软件工程师是从事软件开发相关工作的人员的统称。

它是一个广义的概念,包括软件设计人员、软件架构人员、软件工程管理人员、程序员等一系列岗位,工作内容都与软件开发生产相关。

软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)等,还有诸多如JAVASCRIPT、AJAX、HIBERNATE、SPRING等前沿技术。

此外,关于网络工程和软件测试的其他技术也要有所涉猎。

项目管理在软件开发中的应用有哪些?

如果用两个字概括当前社会的特点,那就是“变化”,而这种变化在信息产业中体现得尤为突出,技术创新速度越来越快,用户需求与市场不断变化,人员流动也大大加快。

在这种环境下,企业需要应对的变化以及由此带来的挑战大大增加,也给管理带来了很多问题和挑战。

软件行业是一个极具挑战性和创造性的新行业,管理上没有成熟的经验可供借鉴。

而项目管理应该说对于软件企业,尤其是那些以应用开发为主的软件企业,是行之有效的管理方法。

因此,项目管理在软件开发中的应用日益受到重视。

项目管理的两个问题 1、什么是项目管理? 项目管理是在一定的约束条件下,以高效率地实现项目业主的目标为目的,以项目经理个人负责制为基础和以项目为独立实体进行经济核算,并按照项目内在的逻辑规律进行有效的计划、组织、协调、控制的系统管理活动。

2、为什么要有项目管理? 没有项目管理,项目也有可能成功。

但没有管理的项目,很难保证项目的利润空间,对公司来说,亏损的风险就大。

所以我们要有项目管理,以保证公司在总体上是盈利的,注意不是每一个项目都要盈利。

另外,有了项目管理,就有了管理改进的基础,无论刚开始的项目管理多么糟糕,只要有管理,就有了改进的可能性,至于能不能得到改进,以及改进的快慢,则取决于两个因素:一个是人,特别是各级管理者;另一个是利益。

关键是“利益”,准确的说是“利益的分配”,在权责利明确的前提下,人才能充分的发挥作用。

还需要指出的是“利益”是多元的,这里的多元不仅指利益的具体形式,而且指利益的受众是多元的,包括客户方相关人员个人的利益。

3、项目管理的发展与现状。

今天,项目管理作为一种现代化管理方式在国际上已获得了广泛的应用,从最初的国防、航天、建设工程领域,迅速发展到电子、通信、计算机、软件开发、金融等行业以及政府机关的项目管理工作。

随着计算机、网络系统的迅速发展,项目管理技术的不断进步,项目管理软件产品层出不穷,其功能、特点、应用对象也各不相同。

当前,越来越多的企业和组织在内部推广项目管理的理论方法及管理模式,如果都采用项目管理软件进行管理,效果就更加明显,可以节省大量的资源和财富。

国外90%以上的项目管理都采用软件进行,但我国在这方面的应用还不到10%.新世纪项目管理在中国的迅速兴起,给软件企业的发展带来了前所未有的发展机遇。

项目管理在软件开发中的应用的成因 随着信息技术的飞速发展,软件产品的规模也越来越庞大,个人单打独斗的作坊式开发方式已经越来越不适应发展的需要。

各软件企业都在积极将软件项目管理引入开发活动中,对开发实行有效的管理。

从概念上讲,软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。

实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展(即减小开发风险)。

同时,随着软件开发规模及开发队伍的逐渐增大,软件开发不再是向过去那样一二个开发人员即可解决的事情。

迫切需要一种开发规范来规范每个开发人员、测试人员与支持人员的工作,每个项目组成员按约定的规则准时完成自己的工作。

同时采用规范化管理,专业分工也可以降低对开发人员的要求,从而降低产品研发成本。

软件开发是一项复杂的系统工程,牵涉到各方面的因素,实际工作中,经常会出现各种各样的问题,甚至面临失败。

如何总结、分析失败的原因,得出有益的教训,对一个公司来说,是在今后的项目中取得成功的关键。

早在20世纪60年代中期,人们就发现软件的生产出现了“问题”,主要表现在生产过程不规范,缺乏管理。

后来,人们在软件工程方法学中引入了工程的概念、原理、技术和方法,这种思想在一定程度上解决了软件生产过程中遇到的问题。

但是直至80年代还是没有提出一套管理软件开发的通用原则,软件管理不善的问题依旧在大范围内存在。

目前的软件开发正逐步趋向于复杂化、多元化,大多数开发团队中都会出现同时开发多个版本、开发维护工作并存、多地点同时开发等情况,给软件开发管理带来了前所未有的困难。

如果管理不善,必将造成版本混乱,各个开发人员的工作相互交叉、干扰,整个开发团队的工作在一种无秩序的不良状况下运行,严重影响软件产品开发的进度和质量。

因此,随着软件开发的深入、各种技术的不断创新以及软件产业的形成,人们越来越意识到软件过程管理的重要性,管理学的思想逐渐融入软件开发过程中,应用开发的项目管理日益受到重视。

而项目管理技术的发展与计算机技术的发展是密不可分的,随着计算机性能的迅速提高,大量的项目管理软件涌现出来。

它们可以用于各种商业活动,提供便于操作的图形界面,帮助用户制定任务、管理资源、进行成本预算、跟踪项目进度等。

软件项目管理常见问题及解决方案 对于软件开发项目中,经常出现两种极端情况,一...

软件工程师入门需要学习什么呢?

1:数据结构 数据结构可以说是编程的灵魂,它不是一门语言所以没有关键字。

它只是给程序开发人员一个开发思路而已,讲的主要是已经成熟的编程思想和算法,而且几乎适用于所有开发语言。

就好像学习英语一样,学习编程语言让你会说英语,记住很多英语单词,熟悉英语的很多语法。

而学习数据结构能让你编出很漂亮的英语文章。

2:操作系统(第三版),主要从资源管理的角度来分析系统功能的实现。

假设你要设计一个新的操作系统,如何实现它?操作系统理论就是向读者逐步介绍和解释。

重点是五大管理职能的实现及其原理。

3:计算机网络(第三版),要学习ISO/OSIRM七层的划分以及各种协议的功能。

传输理论、互联设备、Internet知识,和参考模型理论4:数学,数学是基础,你暂时不太能体会它的作用,但是以后会非常有用。

所有的计算原理都要数学作为指导。

5:计算机专业英语,不是软件考试特有的,是专业知识+英语水平,考前不需专业准备,平时有意识地上网读点英文专业资料6:软件工程(第二版) 要熟悉数据流图和流程图7:数据库理论.这要求熟悉SQL的语言.几乎所有的编程语言都要和数据库打交道的。

8:C语言或者VB语言应该掌握,不过目前JAVA和.net是当前比较火的两个编程语言。

想当一个软件工程师,最后要学习统一建模语言UML,它代表了软件工程的发展趋势,目前是可视化建模的事实上的工业标准。

软件开发各阶段的质量管理有哪些呢?

软件产品的质量是个很大的概念,因为软件产品完全是人们大脑思维的产物,就是将大脑里无形的看不见摸不着的思维变成一个可以看到的,可以解决实际问题的一组界面或者组件。

这样的一个复杂的过程,质量应该如何保证呢?有人想到了ISO9000、CMM,也有人很反对,说应该用敏捷开发。

其实,不管用什么样的开发过程,关键是找到这些过程的真谛,有些人说,ISO和CMM到中国来就变了味了,为什么变味儿了呢?其实我们只学到了该做什么,却不知道怎样去做,为什么要这样做?大家都知道做软件开发需要写需求规格说明书和设计文档,为什么要写,文档的重要性有多高?没有资深开发和管理经验的人员可能很难理解其重要性,如果只是简单的形式上去写一篇这样的文档,对后面的编码和测试没有实际的指导作用,甚至起了“ 误导”作用,同样会引起大量返工,那么这些文档除了负担之外就没有其他用途了,要知道写这些文档是需要消耗项目组资源的(进度、成本...)。

很多人又想到了测试,觉得是我们测试的力度不够,所以我们产品质量不过关,其实,软件开发的质量保证从开发最初就应该开始了,如果到了测试阶段才重视就已经晚了。

软件产品开发过程,不管采用瀑布式还是迭代式,都离不开需求、设计、编码、测试这几个阶段,在迭代式开发中,这几个阶段也是周期性出现的。

怎样把握好每个阶段的质量,确实不是一件容易的事,本期重点介绍一下需求、设计和编码阶段的成果质量,当然以后会共享一些过程质量方面的知识。

1、需求 我们知道人与人的交流总是会存在一些误会,同样一句话,心情不好与心情好的时候听起来的感觉可能会截然相反,正是因为人们之间存在着理解上的偏差,在描述需求的语言上就应该注意尽量避免歧义的产生。

如果对UML比较熟悉的话,需求分析可以利用UML工具进行,这样可以减少一些自然语言引起的歧义,但是UML可能与用户沟通起来有一些障碍,因为并不是所有的用户都了解 UML各种图形的意思。

除了工具之外,我们可以从以下几个方面来保证需求描述的质量。

1、看句子和段落是否简短,一个很长的句子,看起来会非常困难,因此无法弄懂真正的需求,另外过长的句子和段落容易让人忽视一些需求,所以如果一个句子不能完全描述清楚需求,应该将其拆分成多个小句子。

2、句子是否有语法错误,还要注意标点符号,有时,标点符号点错了,就完全成了另外一个意思了。

3、是否存在模糊不清的需求,出现类似于可能,大概,或者等词汇表述的需求。

4、另外注意引用的术语和词汇是否前后一致。

5、是否存在一些形容词、比较性词语,比如:容易的、快速的、方便的、有效的、许多、很少、简单、复杂、最新的,界面友好的,减少、扩大,不小于等等,需要将描述性词语进行量化,并且给出具体值或者范围,要不然不同的人根据不同的理解就会得出不同的结果,最终可能跟用户最初的要求有偏差,那“炒回锅肉”的事情就不可避免地会发生。

另外保证需求质量的一个很重要的因素就是需求是否细化,如果需求不细化也会很容易造成代码的返工,于是就出现了我们的程序员尽管总是加班加点却总是不能如期的完成任务的情景。

那么我们怎样才能判断需求细化的程度呢?需求细化程度确实很难把握,什么样的需求可以算是比较细了,不用再进行细化了呢?哪些需求又太粗了呢?答案是需求是否可以写出相应的测试用例,如果写不出来,就说明需求还不是很细,还需要再进行细化。

2、设计 软件架构设计在软件产品开发周期中占有很重要的位置,我们开发出来的软件产品在开发伊始到产品发布会涉及到方方面面的角色,例如:用户、项目管理人员、程序员、测试员、维护人员等等。

不同的角色对架构设计的要求也不相同。

例如用户关心的是需求,因此我们的设计对需求的覆盖率是多少?对于程序员来说模块是否清晰,类的功能是否单一等等,对于测试人员来说系统的是系统的可测试性。

对于维护人员来讲系统的扩展性、可维护性如何?一个高质量的软件架构,应该最大限度的考虑并满足不同角色的不同要求。

正是因为有这些要求,我们在进行软件设计的时候,应该进行全面的考虑。

一般用来衡量软件设计质量的标准可以从以下几个方面来考虑: 1)、功能性:包括完全性、正确性、安全性、兼容性、互用性。

完全性包括功能点覆盖率,重点功能点覆盖率,优先功能覆盖率。

正确性包括需求一致度。

安全性根据软件需求的不同有不同的安全性要求。

来源于考试大 2)、效率:包括产品运行的时间效率和利用的硬件资源两方面来考虑。

3)、维护性:包括架构的可改正性,可扩充性以及可测试性。

如果用户的一个很小的需求变更会引起架构设计很大的变化,那么这样的架构设计的可改正性和可扩充性就比较差。

4)、可移植性:包括硬件的独立性、软件独立性、可安装性、可重用性。

软件设计是否模块化、每个模块的可复用性如何都是应该考虑的因素。

5)、可靠性:包括缺陷数量、容错性、可用性。

6)、使用性:包括可理解性、易学习性、可操作性、易沟通性。

我们软件的最终目的是让用户来使用的,如果易...

想学软件工程师是一定学好英语吗?

那就从基础做起啊!先把单词掌握,一步一步慢慢来,多上网搜些软件学习资料和学习方法,然后坚持下去,努力去做你喜欢的事情,相信你一定会的很出色的!其实你这个专业挺好的,我也曾想过要学!所以加油哦!挺你!送你一句话,你不逼自己永远不知道自己有多强!

软件开发项目的特点是什么呢?

软件开发项目的特点 与其他类型项目的共同点:项目成功与否不仅取决于项目过程中所采用的技术方法工具,还取决于项目管理的水平,特别是计划与控制的水平。

了解软件开发项目的特点对于项目的计划制定和管理控制非常必要的。

与其他类型项目的不同点: 1、 软件产品和其他产品不同,软件产品是一种“逻辑”产品,是无形的,没有物理属性的,看不见、摸不着、难以理解; 2、 需求难以明确且频繁变更:由于用户的成熟度或责任心的原因。

用户已开始无法给出明确的需求。

在开发过程中,需求可能要经常及修改,因此需要经常地修改程序与文档; 3、 难以在早期发现问题:需求不明确,加上后期修改可能没有进行全局性的考虑,产生的问题难以从早期的文档中直观地发现,需要等系统设计出来后才会发现。

4、 项目成员对文档的重视不够。

符合用户需求的高质量软件需要依赖于大量准确规范的文档编辑工作,但项目组成员对他并不感兴趣,很少愿意认真去做,因而直接影响了软件的质量。

5、 劳动密集型+智力密集型:软件开发过程需要大量高强度的脑力劳动,并且都是手工劳动,这些劳动非常细致、高度复杂、容易出错,质量那一用简单的度量来衡量,使得软件的正确性难以保证。

对于不深入找掌握软件工程知识或缺乏软件开发实践经验的人员,是难以做好软件开发项目管理工作的。

转载请注明出处51数据库 » 基础软件研发工程师

软件
前端设计
程序设计
Java相关