作为一个从业10年的IT老兵,个人觉得软件开发这个概念太过庞大,它既涉及到很多行业领域,又能包含各种具体的开发技术,面面俱到的描述会让人无所适从而且其实也不可行。个人建议学习软件开发不用着急马上入手学习编程语言,应从计算机原理开始,由底层上上层,循序渐进,由硬件到软件。虽然所花的时间会长一点,但会学的比较扎实透彻。
软件开发需要学的技术

计算机原理的学习

首先最好学习下计算机背景知识,包括计算机发展历史,二进制计算原理。总之从科普角度全面的了解计算机的含义。这块的资料很容易在网络上获取。其次学习下计算机的硬件知识,包括CPU,内存,输入输入设备,搞清楚这些设备的用途,有条件的话可以跑跑电脑城,自行配置组装一台计算机,这是有好处的。学习以上的内容原因在于再高级的计算机语言,都要通过控制硬件来实现。先熟悉硬件,了解计算机的运行机制,才会对软件设计有扎实的理解。

 

选择一门编程语言

在众多的计算机编程语言中,选择一门语言进行入门学习。建议选一门相对“低级”的语言,比如C语言,它其实是一种介于高级语言和低级语言之间的语言,它有控制硬件的能力,可以通过指针直接操作计算机内存。学习好C语言可以让你透彻的理解计算机原理,也会对变量,数组,内存存储等这些基本概念有本质的理解,这些是其他语言所不能带给你的。一般来说,熟练掌握C语言后,学习其他语言会比较容易。另外,C语言得入门书很多,比如谭浩强版本得就比较经典。

软件开发需要学的技术

比技术本身更重要的是习惯的培养

最后,编程要一开始就养成良好的习惯,例如变量命名,书写格式都要有规范。刚开始看似会浪费时间,但习惯养成后,以后就轻松了。此外,要重视架构,架构即设计模式,它本身也是软件工程中的一个重要组成。编写一个程序的时候不能只顾完成功能即可,一定要思考软件能不能分个模块,能不能层次化,方便以后扩展。比如完成一个特定功能有好几种算法,那能不能设计成工厂模式,方便以后扩展算法,这样做,看似代码复杂化了,但是其内涵就要比普通做法提升了很多。所以设计模式其实就是编程思维的一种重要表现形式。

总之,不管哪个行业,不要被五花八门的具体技术所困扰,选择原理性的,基础性的技术去学习,并且坚持实践。长此以往,才能举一反三,触类旁通。