0
如果想当一个软件工程师要学习什么?
1、计算机硬件原理:了解硬件怎么工作,知道软件是怎样在硬件上工作的,CPU架构,指令,怎么做运算,内存如何工作,内容地址是怎么回事,硬盘如何存储,数据和指令如何通过电路和元器件转化成电流和脉冲,可能需要数据电路的原理。无论从事计算机哪方面,比如网络、软硬件,这个原理都必须精通。因为计算机技术是很抽象的,但是在现实和具象上是依赖硬件。2、操作系统原理:在了解了硬件原理后,了解操作系统是怎么工作的。因为所有的软件都是基于操作系统的,而操作系统本身也是一个软件。这些结合硬件来理解,就更容易了。
3、编译原理:了解软件从源文件到目标文件,到执行的全过程。如果有必要,其中的东西也要专门买书去研究。这样代码上不容易犯错误。了解了硬件原理和操作系统原理的基础上,了解编译原理也就比较简单。当然每种语言编译过程都不启悔一样,但是原理都是基本相同。
4、数据结构和算法分析:好的算法,事半功倍,此外可能还要补一些高中数学、高等数学的知识。
以上每部分,都要至少1-2个月或者150个小时以上的钻研,要做到基本掌握。如果不掌握以上部分,不是说学不了软件,但是如果想学精通,想比一般人强,是不可能的,因为你只知道怎么做,但是为什么这样做不清楚,就是死记硬背了,反反复复的记忆效率也很差。
有时候很多独立的软件开发的工具书,没有讲的那么细致,只是告诉你如何做,但尘链是不会告诉你为什么这样做,另外一些好的方法也无法告诉你,因为都需要从基础的硬件电路电流原理来介绍,如果从原理上说,那会说的没完没了。
大约半年甚至1年后,此时你所有软件开发需要掌握的基础知识,都比较明白了。再开始研究程序开发,就会觉得开发很简单,事半功倍。因为你已经从原理上理解了,软件是怎么工作的。所以也知道软件开发的学习周期至少在1年以上。 达到能够开发中型软件,至少也要1年半,而且这个时间还是每天都在钻派旁孙研的时间。
操作系统重点学什么?
我是学计算机的,可以给你详细解释一下:首先,操作系统相当于现在我们所说的嵌入式系统。是计算机结构中的负责沟通计算机硬件和计算机软件的桥梁。 也就是说:操作系统直接指挥计算机的硬件,例如:屏幕,键盘什么的。而软件则是调用操作系统的功能,从而达到调用计算机硬件的目陆困的。
所以,作为中间件的操作系统,你要学会计算机的硬件的一些结构。(有些硬老州件不用,例如显卡,因为显卡公司都是自己做驱动)。 然后,编写软件直接作用计算机的各个硬件,通常这部分代码被封装在操作系统的“内核”当中。 然后,基于内核代码再写一些系统函数就可以完成一个简易的操作系统了。
总的来说,想实现一个操作系统不难。但是想实现一早含念个完美的工业级操作系统就很难。微软做了这么多年还是有那么多的BUG就是这个原因。
如果想做:你可以看看:Linux内核, 操作系统原理, 汇编和c,c++ 这类的语言。 特别是前两本如果你看的可以。 就会明白怎么写操作系统了。 祝你成功。
不要忘记给分,我把我学到的都浓缩给你了,呵呵