如何学习软件工程

文/fasiondog

因见CSDN社区有询问如何学习软工的问题,遂粗略总结了一下自己的看法,以供参考。

个人浅见:软件工程涉及的内容非常多,而且学习时理论抽象的东西居多,没有具体的实践经验在将来处理具体问题时会有难度,也许这也是为什么很多人觉得很空洞的原因,不过事实显然并非如此。如果是在学校学习,个人建议:耐心先学习课本理论、多看杂志开阔视野、最重要的程序设计和系统设计的计算机基础千万不可抛到一边,否则将来实践时,很难理解开发人员面临问题的实质。
上面的建议可能觉得有点空,不过问题是在是有点大,下面针对上面所提的给出一点参考,希望能有所帮助,不过如果还是觉得比较空泛的话,我也不知道怎么办啦:(  还请“狂V软工”兄海涵。具体问题可以到我的BLOG(http://blog.csdn.net/kongdong/)讨论,顺便推销一下,不介意吧:)

几点建议:
理论基础,这是基础,时间有限,无论如何这个必须熟悉:
1、软工理论(课本知识)
2、CMMI(浅尝的话可以看看这本《CMMI精粹:集成化过程改进实用导论》(第二版),不过有空的话还是建议看看CMMI的原件,虽然比较枯燥,不过还是可以扫一下,不要强迫自己都记住,那是不可能的)

开拓视野:
多看书籍、杂志、网页,别无它法。不过看的时候有几点注意事项:
1、只要浏览,不要深究,留个印象即可。将来实际需要时,能知道如何找到相关主题资料即可。
2、目前书籍、杂志、网页等谈的多是敏捷方法,这和Web开发、企业应用IT的领域有很大的关联,而这部分领域正是由于和网络相关,所以非常火爆,不过这毕竟只是软件领域中的冰山一角,千万不可被其表象所迷惑,而抱怨课本理论。这方面很难一言道尽,有一本书《平衡敏捷和规范》(清华大学出版社)不妨买来收藏,不过要体会其中的价值,可能需要真正积累的许多问题和经验的时候才能有所发现,但先留着免得以后绝版。
3、PMP(项目管理)的知识不放也有空浏览一下,因为在软工中占据很大位置的一块——质量管理,始终是和项目管理纠缠在一块,很难分家。
4、总结一下,多看书,不是要盲从,而是要在将来形成自己的观点。实践中需要具体问题具体对待,最忌生搬硬套。“理论”和“经验”都很重要,象现在很多人都在谈“道”(理论),切不可被其迷惑,“术”也很重要,知道“道”不一定能够帮你解决问题,但知道“道”会使人得到升华和括宽思路,“术”则是真正体会“道”的基础,否则一切都是空谈,就像武侠小说里常说的什么“明白就是明白”之类的鬼话。

系统与程序设计:
1、需要深究,一是这一块也是软工中的一块重头,二是没有自己的开发实践,很难理解开发所碰到的困难和问题。
2、系统设计推荐《软件架构实践》(SEI的书,清华大学出版社),可以深究。其他主要是涉及UML的使用和模式,书籍很多,需要了解。关于UML这方面的书,良莠不齐,我个人暂时没有什么特别优秀的书推荐,只能多看多用了。模式方面有很多介绍,就不敢班门弄斧了。
3、《产生式编程-方法、工具与应用》这本书也值得一读,里面对现今程序设计的发展有一定的论述。尤其是领域工程部分,值得再去查阅其他资料。
4、上面的书可能都是引子,看到有兴趣的话题不放通过书中所列的参考书籍进行进一步的查阅,不过这就和个人很相关了,谁也帮不上忙。
5、没事时,自己要多写写代码编编程序,结合自己的体会验证一下各家所言。

关于学软工的职业道路:
1、直接从事软件开发,成为软件开发主力
2、软件质量管理:QA、EPG、项目运作管理。这一行也很容易转回开发做管理。
3、软件咨询:新兴的行业,不过要有实力和广交朋友才行。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注