如果想当一个软件工程师要学习什么?

如题所述

1、计算机硬件原理:了解硬件怎么工作,知道软件是怎样在硬件上工作的,CPU架构,指令,怎么做运算,内存如何工作,内容地址是怎么回事,硬盘如何存储,数据和指令如何通过电路和元器件转化成电流和脉冲,可能需要数据电路的原理。无论从事计算机哪方面,比如网络、软硬件,这个原理都必须精通。因为计算机技术是很抽象的,但是在现实和具象上是依赖硬件。

2、操作系统原理:在了解了硬件原理后,了解操作系统是怎么工作的。因为所有的软件都是基于操作系统的,而操作系统本身也是一个软件。这些结合硬件来理解,就更容易了。

3、编译原理:了解软件从源文件到目标文件,到执行的全过程。如果有必要,其中的东西也要专门买书去研究。这样代码上不容易犯错误。了解了硬件原理和操作系统原理的基础上,了解编译原理也就比较简单。当然每种语言编译过程都不一样,但是原理都是基本相同。

4、数据结构和算法分析:好的算法,事半功倍,此外可能还要补一些高中数学、高等数学的知识。

以上每部分,都要至少1-2个月或者150个小时以上的钻研,要做到基本掌握。如果不掌握以上部分,不是说学不了软件,但是如果想学精通,想比一般人强,是不可能的,因为你只知道怎么做,但是为什么这样做不清楚,就是死记硬背了,反反复复的记忆效率也很差。

有时候很多独立的软件开发的工具书,没有讲的那么细致,只是告诉你如何做,但是不会告诉你为什么这样做,另外一些好的方法也无法告诉你,因为都需要从基础的硬件电路电流原理来介绍,如果从原理上说,那会说的没完没了。

大约半年甚至1年后,此时你所有软件开发需要掌握的基础知识,都比较明白了。再开始研究程序开发,就会觉得开发很简单,事半功倍。因为你已经从原理上理解了,软件是怎么工作的。所以也知道软件开发的学习周期至少在1年以上。 达到能够开发中型软件,至少也要1年半,而且这个时间还是每天都在钻研的时间。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-26
目前很多的高中生都很想成为软件工程师,其实,高中生学软件工程师很现实,首先软件工程师薪资待遇挺高的,工作环境也没的说,而且随着我国信息化建设的开展,以及国家各项相关政策的下达,使得全国各地的信息化建设如火如荼,出现了大量的信息化软件人才的缺口,而我国信息化人才培养还处于发展阶段,导致社会实际需求人才基数远远大于软件开发人才的培养基数,使得数以万计的中小企业急需全面系统掌握软件基础技能与知识的软件工程师。应该说软件工程师的就业机会和前景是非常大的。当然软件工程师也有一定的要求的 。 那么想当一名软件工程师要学什么呢? 首先让我们来看一下软件工程师考试(高级)要求: (1)理解软件工程管理的概念和任务; (2)理解软件生存期过程; (3)理解软件工程标准; (4)掌握需求分析、测试、维护基本技术; (5)掌握软件度量、软件配置管理方法; (6)理解软件复用概念; (7)理解软件质量保证的手段; (8)理解软件项目对人员的需求; (9)理解软件知识产权的基本知识。 通过本级水平考试的合格人员具有从事软件系统分析与工程系统分析员、工程管理员的实际工作能力和业务水平。 不过目前最好的软件工程师证书就是软考得中级工程师(软件设计师)很权威,那么软件工程师要学什么课程呢?: 1:数据结构 数据结构可以说是编程的灵魂,它不是一门语言所以没有关键字。它只是给程序开发人员一个开发思路而已,讲的主要是已经成熟的编程思想和算法,而且几乎适用于所有开发语言。就好像学习英语一样,学习编程语言让你会说英语,记住很多英语单词,熟悉英语的很多语法。而学习数据结构能让你编出很漂亮的英语文章。 2:操作系统(第三版),主要从资源管理的角度来分析系统功能的实现。假设你要设计一个新的操作系统,如何实现它?操作系统理论就是向读者逐步介绍和解释。重点是五大管理职能的实现及其原理。 3:计算机网络(第三版),要学习ISO/OSIRM七层的划分以及各种协议的功能。传输理论、互联设备、Internet知识,和参考模型理论 4:数学,数学是基础,你暂时不太能体会它的作用,但是以后会非常有用。所有的计算原理都要数学作为指导。 5:计算机专业英语,不是软件考试特有的,是专业知识+英语水平,考前不需专业准备,平时有意识地上网读点英文专业资料 6:软件工程(第二版) 要熟悉数据流图和流程图 7:数据库理论.这要求熟悉SQL的语言.几乎所有的编程语言都要和数据库打交道的。 8:C语言或者VB语言应该掌握,不过目前JAVA和.net是当前比较火的两个编程语言。 想当一个软件工程师,最后要学习统一建模语言UML,它代表了软件工程的发展趋势,目前是可视化建模的事实上的工业标准。本回答被提问者采纳
第2个回答  2022-03-18
如果想当一个软件工程师要学习以下课程:

1、数据结构:数据结构可以说是编程的灵魂,它只是给程序开发人员一个开发思路而已,讲的主要是已经成熟的编程思想和算法,而且几乎适用于所有开发语言。
2、操作系统(第三版),主要从资源管理的角度来分析系统功能的实现,操作系统理论就是向读者逐步介绍和解释。重点是五大管理职能的实现及其原理。
3、计算机网络(第三版),要学习ISO/OSIRM七层的划分以及各种协议的功能。传输理论、互联设备、Internet知识,和参考模型理论。
4、数学。数学是基础,所有的计算原理都要数学作为指导。
5、计算机专业英语,是专业知识+英语水平,考前不需专业准备,平时有意识地上网读点英文专业资料。
6、软件工程(第二版),要熟悉数据流图和流程图。
7、数据库理论,这要求熟悉SOL的语言,几乎所有的编程语言都要和数据库打交道。
8、C语言或者VB语言应该掌握,不过目前JAVA和net是当前比较火的两个编程语言

想了解更多有关软件工程师的相关信息,推荐咨询达内教育。达内目前已在北京、上海、广州、深圳等70个大中城市成立了342家学习中心,拥有员工超过10000多人,累计培训量已学员已达100万人次。达内凭借雄厚的技术研发实力、过硬的教学质量、成熟的就业服务团队,为学员提供强大的职业竞争力,在用人企业中树立了良好的口碑。
第3个回答  2020-07-15
软件工程师所要具备的条件是:对于软件工程师,不太重视学历,但并不是对学历没有要求,重点关注项目的经验和学习知识的能力,能否利用软件工程专业知识来解决问题,根据岗位不同,对软件工程师的要求也有所不同。具体能力要根据岗位和自己的兴趣爱好选定自己的职业规划方向,一方面要详细了解软件工程师的要求,可以关注企业的招聘信息。一方面自己要贮备通用的知识技能,广泛阅读相关的计算机材料对自己以后的发展大有帮助。可以确定的是软件工程师的前途在未来的发展依然是不断升温的职业,比较需要有技术和良好前景的专业之一。软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)等,还有诸多如JAVASCRIPT、AJAX、HIBERNATE、SPRING等前沿技术。此外,关于网络工程和软件测试的其他技术也要有所涉猎。
相似回答