下一篇 »

软件开发知识学习分类之我见

我把软件开发要学习的知识分为4大类:

一:计算机语言(包括编译原理啊,语言模型啊,比如学习C++语法啊,面向对象啊,范型编程啊,标准库啊,等等)

二:操作系统和硬件知识(这个是最大,最杂的一个分类,比如操作系统就有windows,linux,unix啊,硬件设备也是各种各样,操作系统又有应用层,核心层之分啊,每个层次上又可以分为很多小类别,比如说多媒体编程啊,网络编程啊等等,单单一个网络编程又可以细分为太多的小类啦,比如windows网络驱动模型中,又可以分为NDIS协议层驱动,NDIS中间层驱动,NDIS小端口驱动等,具体我就不多说啦)

三:数据库(把数据库单独出来我想没人会反对吧,数据库一般都是以一个应用软件实体存在的,但是它包含的内涵完全就是一个独立的学科,现在的数据库产品也是品种繁多,比如Microsoft公司的SQL Server, 甲骨文的Oracle数据库, IBM的DB2, 开源的MySQL, 面向嵌入式领域的SQLite等等,虽然说有这么多不同的实现版本,但是它们的基本原理却都是相通的,我对数据库方面研究不深,所以就不多说啦)

四:软件工程(这个更多是偏向管理方面,因为当软件越做越大,开发人员越来越多时,管理问题就不可避免,所以软件工程不可不学,它包括各种工具软件的使用,如BUG管理,单元测试,设计与建模,开发环境,各种类库及其文档,版本控制等等,还有各种软件开发方法,如敏捷开发(agile development), 测试驱动开发(Test Driven Development,英文缩写TDD)等, 将软件工程化就是它的目标,利用各种工具组成一套完整的软件生产线,而程序员在开发方法的指导下利用生产线高效的生产出各种软件产品,你说这是不是和一些传统工厂模式很像啊,比如一间造汽车的工厂.)