构建之法的前三章内容主要向我们介绍了什么是软件工程和我们学习软件工程的人应当以哪种态度去对待这门学科。事实上以前我一直以为我们之前所写的等于算法加数据结构的程序就是简单的软件,实际上软件等于程序再加上软件工程。如果说我们现在的状态来讲可以说是处于书上所说的“玩具阶段",我们只是做到了实现了一些简单的理论的实现。而当我们真正想要完全融入这个行业还需要经历业余爱好阶段、探索阶段、成熟的产业阶段,这些都是我们要成为一名合格的软件工程师所要经历的必经之路。因此对于软件工程来说我们都只是新生儿还需要经过不断的努力才可以长大。
软件工程是以软件为主的,我们的工作离不开软件,因此软件的特性是我们要明白的,在软件开发过程中我们所遇到的问题被归结为五点:复杂性、不可见性、易变性、服从性和非连续性这些特性使得做好一个软件变得很难但也使我们这个专业充满挑战性。而我们在实际编写时遇到或听到最高频的一个词应该是bug了,在之前我一直认为只要自己写的程序可以build无误,然后成功run就ok了,自己写的程序就算完美了。实际上这是曲解了bug的意思,bug并非指一个程序无法运行无法调试,而是在它实际运行时实现了另外一些不需要或令用户不满的功能,而这都是我在以前编程过程中所没有考虑的。如书上提到的民用飞机所拥有的一个百万分之一使用率的功能,虽然它实现的概率小但这并不意味着不需要它。这和我们编程一样,应该全方位考虑所有情况,并不厌其烦的实现它。
当我们做好了一切准备之后,我们需要做一下个人的个人能力的衡量与发展。我们应该如何开始成长呢?这里书中有了比较明确的建议,积累软件开发相关的知识,提升技术技能(如对具体技术的掌握,动手能力);积累问题领域的知识和经验(例如:对医疗或金融行业的了解);对通用的软件设计思想和软件工程思想的理解;提升职业技能(区别于技术技能);最后要有自己的成果。因此经验对于我们来说真的很重要,慢慢积累并不断的练习,将之持之以恒就是我们当前要做的事。
1.在阅读前三章之后我对自己对这门专业的态度进行了反思,以前对待这门课不够认真,总是把作业拖到最后几分钟,简单一点的程序自己做,稍微复杂的就找别人的来copy,而且往往只是纯粹的复制粘贴,完全不经大脑。同时自己在编程时总是认为只要输出和题目要求的内容一样就ok,程序就算完美,没有瑕疵。
2.而当我了解到真正的软件工程师该有的素养时才发现自己什么都不是,真的只是态度的问题,都没有正确的态度又谈何热爱,学习。同时,在了解到bug的含义后才明白自己的代码漏洞百出。
3.我自己应该正确树立对这门课的态度,多练习,积累经验,在编程时注意细节,尽量考虑全面,不要急于求“成”。