所谓软件开发,就是没有硬件设计实施部分的一种开发,一般就是指编程。
但因为硬件环境的多样,软件需要在硬件环境支持下工作,所以软件开发实际上分成很多情况(类型),不同的需要不同的知识,它们有的共通,有的很有针对性。
现在常见的软件开发有 嵌入式软件开发(有的也称为硬件软件开发)、系统软件开发、pc应用软件开发(还细分各种系统平台)、web应用软件开发等等。
它们共通的就是需要有基本软件编程知识,
一些基本的算法知识。
不同的其实更多(当然这些知识其实也有一定的相关性):
和硬件开发联系的一些知识,例如硬件原理(操控原理、接口技术);
不同的语言(开发不同的软件有不同的语言和相应的库);
不同需要的协议规范 等等。
你需要明确你的开发方向,才能有针对性的了解相关知识。