蒋大女儿
通常情况下,软件工程师需要具备以下几个方面的知识结构:
第一:操作系统知识。操作系统知识是软件工程师必须具备的重要内容,Web开发领域可能会使用到Windows系列操作系统,大数据和物联网方向要使用到Linux系列操作系统,掌握操作系统的体系结构是进行软件研发的重要基础。主要内容包括资源管理、任务调度、并发管理、权限管理、网络管理等内容。
第二:编程语言和算法。编程语言是软件工程师必备的技能,不同方向的开发需要使用到不同的编程语言,比如Web开发可能会使用PHP、Python、Java等语言,而大数据可能会使用Java、R、Scala等语言,而物联网开发可能会使用到C、C等编程语言。通常来说,软件工程师往往需要掌握多门编程语言,以应对不同的开发环境。算法是软件工程师的重点知识结构,因为软件研发说到底就是个数学问题,所以算法的掌握情况往往能够决定软件工程师的成长高度。当然,对于应用级软件工程师来说,也有可能不会接触到更多的算法。
第三:领域知识。不同开发领域需要掌握不同的知识结构,比如大数据软件工程师往往需要掌握Hadoop、Spark平台的使用,而Web开发工程师往往还需要掌握前后端开发技术,包括一系列Web开发框架的使用等等。
软件工程师需要学习以下知识:
(1)熟悉计算机系统的基础知识;
(2)熟悉网络操作系统的基础知识;
(3)理解计算机应用系统的设计和开发方法;
(4)熟悉数据通信的基础知识;
(5)熟悉系统安全和数据安全的基础知识;
(6)掌握网络安全的基本技术和主要的安全协议与安全系统;
(7)掌握计算机网络体系结构和网络协议的基本原理;
(8)掌握计算机网络有关的标准化知识;
(9)掌握局域网组网技术,理解城域网和广域网基本技术;
(10)掌握计算机网络互联技术;
(11)掌握TCP/IP协议网络的联网方法和网络应用服务技术;
(12)理解接入网与接入技术;
(13)掌握网络管理的基本原理和操作方法;
(14)熟悉网络系统的基本性能测试和优化技术,以及可靠性设计技术;
(15)理解网络应用的基本原理和技术;
(16)理解网络新技术及其发展趋势;
(17)了解有关知识产权和互联网的法律、法规;
(18)正确阅读和理解本领域的英文资料。

清水绫子
有句话说得好:“用电脑就是用软件。”而软件产业的发展也在改变着人们的日常生活,甚至成为IT产业发展的重要推动力。环顾世界,微软、Adobe、Oracle等公司无不是从软件起家,逐步发展到目前的庞大规模。因此,南邵电脑培训发现从某种意义上说,靠软件吃饭,是一辈子的事情。
随着软件业的快速发展,软件开发专业人才的人数逐年增长。但是,目前行业中紧缺的并不是单纯的IT从业人员,而是具备操作能力和开发能力的复合型软件工程师。这种要求只有在IT行业打滚多年的IT从业人员和正规IT培训机构培养出来的软件工程师才能胜任。
职业技能要求:
合格的程序员首先要具备扎实的功底,对编程语言比如C、C++语言要精通,同时熟悉数据结构、编译原理,以及算法等;
其次,由于程序的代码往往都有上万行,因此程序员养成良好的代码编写习惯是相当重要的;第三,程序员需要系统设计能力。随着技术的进步,编程的思维和模式、方法也会发生翻天覆地的转变,现在的思路跟三五年前相比可能就会大不相同,现在做项目需要的是新的、巧的设计思想,所以程序员必须要提高系统设计的能力,否则永远出不了头;
最后,由于目前软件开发基本上都是采用项目化运作,一个人或者一个小组往往负责完成其中的某一个模块,因此团队协作精神显得尤为重要。举个例子,微软的Windows2000操作系统在开发期间,就动用了5000名程序员进行开发,代码超过3000万行,如果这些人不能形成一个有机的整体,后果将不堪想象。总的说来,目前软件企业急需的是“即插即用”型员工。这类人才有三个标准:知识面较广,掌握一到两种比较常用的软件编程工具;具备一年左右实际项目开发经验,能够运用软件工程的基本概念;具有较高的职业素养,包括沟通能力、团队协作精神等。
职业规划:
目前计算机专业是各大高校主开的课程,在大学里或多或少地学习了几门计算机编程语言,平时做课程设计也会涉及到一些工作中的项目。从待遇方面来说,软件开发工程师年薪大约在5~7万元之间,资深人士还会更多。
从国内软件开发人员的层次看,工作几年以内处于初级水平的程序员占据最大的比例,至少在50%之上,高级的人员最多也就10%左右。但无论处在哪个层面,一定要按照自己的个性和优势做一些规划。已经工作两年以上的程序员可以有几种基本的职业规划:技术专家、软件架构师、实施顾问或销售。其中程序员最主要的发展方向是资深技术专家,无论是Java还是.NET,还是数据库领域,都要首先成为专家,然后才可能继续发展为架构师。
从职业规划的角度来说,一个程序员的成长,学习过程中首先要读到好书,然后是交到好的学友,找到好的老师,在这三个外围的条件下,找到适合的工作环境,然后在一些重要的环节上遇到适合的人和合适的项目,这样才能成功。对大多数人来说,首先是要专,在技术上做得比较深入,然后进行工作调整,把自己转变为某个领域的专家,第三步,根据自己的情况,决定自己做软件架构师还是高级的顾问销售。
曼丽nilei
软件开发就是根据用户要求建造出软件系统或者系统中的软件部分的过程。一般是用某种程序设计语言来实现的软件开发的,像Java、Python、2C和C++等都是软件开发的需要的编程语言。看到那么多编程语言,同学又就开始犯嘀咕,这么多,到底学什么?今天听人说Java不错,想学;明天听人说Python前景广,想学;为什么会迷茫,还不是因为你不够了解他们。所以,今天信盈达小编先来给大家普及一下Java、C/C++、PHP、Python到底分别是用来开发什么的?用任何编程语言来开发程序,都是为了让计算机干活,比如编写一篇文章,下载一首MP3等,而计算机干活的CPU只认识机器的指令。所以,尽管不同的编程语言差异极大,最后都得“翻译”成CPU可以执行的机器指令。理论上任何语言干任何事情几乎都可以, 但是主要干什么那就不一样了。Javajava常常跟”企业”联系在一起,因为具备一些很好的语言特性, 以及丰富的框架,在企业应用中最被青睐,你总可以听到关于J2EE, JSP, Hibernate之类的东西的讨论。同时, java在手机领域也有一席之地,在普遍智能化之前,很多手机就是以支持java应用作为卖点的,而智能手机爆发之后,java手机主场变成了android, 作为安卓的标准编程语言而存。总结:Java主要应用在网页, 企业级开发,普通应用软,游戏后台。C/C++C/C++理论上说可以做任何开发,只要有合适的硬件驱动和API,特点是效率高,基本上是编译语言里面效率最高的。除非你的系统中连C/C++编译器都不具备。某些系统当中C++编译器是不具备的,但是C一般都具备。目前而言,C语言主要用来开发底层模块(比如驱动,解码器,算法实现),服务应用(比如web服务器)和嵌入式应用(比如微波炉里的程序。C++也可以做这些,不过由于C++的复杂性和标准问题,人们还是更愿意使用C来做。C++更适合比较复杂但又特别需要高效率的设施,比如大型游戏,一些基础库, 大型桌面应用。总结:C 主要应用在系统底层,驱动,嵌入式开发。C++主要应用在游戏开发,大规模,高性能,分布式要求的程序开发。PythonPython由于具有丰富和强大的库,它又叫做作胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。Python是做服务器开发与物联网开发。信息安全,大数据处理,数据可视化机器学习,物联网开发,各大软件的api,桌面应用,都需要python。总结:Python主要应用在动态解释型,开发效率高,开源,灵活,入门门槛低。
以心为马
软件工程师(SoftwareEngineer)是从事软件开发相关工作的人员的统称。软件工程师包括软件设计人员、软件架构人员、软件工程管理人员、程序员等一系列岗位,技术要求除了最基础的编程语言(C语言/C++/JAVA)、数据库技术(SQL/ORACLE/DB2)等,还有诸多如JAVASCRIPT、AJAX、HIBERNATE、SPRING等前沿技术。
中文名
软件工程师
外文名
SoftwareEngineer
属性
职业认证
释义
从事软件开发相关工作的人员
基本简介
分级
一般情况下都是分4级:
1、软件技术员
2、助理软件工程师
3、软件工程师
4、高级软件工程师
优质工程师考试问答知识库