最终章就以本学年阅读的三本有关软件架构的著作,大三下的软件体系架构以及大学三年对软件工程的理解,谈谈我对软件架构以及整个软件工程的个人看法,也是大学三年学习的一次阶段性总结,还挺有感触。
从大一开始接触软件这门学科,一直以来其实很难对软件的整体框架有一个很深的理解,虽然有过大一的概论课,但很难建立起整个知识框架,以至于我感觉在大三下学习软件架构之前,我可能学习了无数个版本的软件工程,最初的java设计课,软件工程课,后来的数据结构课,软件构造课,软件需求与分析课,都像是独立的模块,很难在脑子里构建起来知识网络图,对软件工程的理解只停留在几门语言的代码上。
但是大三下的三门课对我影响很大,软件架构,软件过程与管理,软件测试,这三门课好像是三个驿站一样,把我大学三年的软件知识全部串联在一起,直到这时,我才真的明白需求与分析不是我以前认为毫无意义的长篇大论,而是真的一个项目的基石,没有做好需求分析,整个项目完全踩着石头过河,指不定啥时候就掉坑了,数据结构和构造也不是晦涩难懂的知识,而是软件最最灵魂的部分,架构更不必说,直接决定着一个软件的生命周期,没有好的架构支撑,一个软件是不会再有第二个新生版本的,花费大量人力物力去改造绝不是软件工程人想要看到的。
以前老师总说代码是最次要的,我就很疑惑,这学软件你不会用代码那不等于没学吗,对那些文档和设计、管理测试之类的东西总是嗤之以鼻,现在我终于明白代码是真的不重要,为什么编程语言那么多,但是程序员只要掌握一种就可以,而软件整个的需求、设计、分析等等这些工程化的东西却是每个好的程序员必须掌握的。
软件工程之所以叫软件工程,作为一门大学专业学科,真的和普通的码农教育有着天壤之别,短期看可能码农是会有些许优势,但是稍微长期一点,码农的劣势就凸显无疑,我的亲身经历,qq聊天群里的一个应聘前端岗位的培训妹子抱怨说,面试官问他类是什么,她一腔怒火,我一个搞前端的问我类是什么。听到这句话我真的很无奈,作为一个从事软件相关专业的人员,你不知道类是什么,可想而知你对软件工程的理解只停留在哪几行代码可以出现哪几行输出,软件对他来说只是工具,而不是一个真真正正的工程,如果跨不过这个坎,只能是一辈子的码农。
还有就是,我觉得对于概论课的重视程度应该要加深,有关框架的课可以提前学期,技术性的课程可以推迟,越早建立起来对软件工程的整体知识框架,就越能加深对软件的理解,要是让我现在去上以前的课,对课程的理解是指数级别的增长。
大学三年的一点总结,发表在这里,以后工作了再回头看看。