软件工程:从嗤之以鼻到视若法宝

若是非让我来回忆大学软件工程课的相关内容,我只能拜托大哥大姐您们别为难我了好吗,我对本课程的惟一印象就是这门课是开卷考试的。那么做为一个计算机专业、而且做为当时班级里为数很少会编写一些程序的学生,我对这门课程为什么如此的无感呢?程序员

首先,大学一系列枯燥的理论课功不可没,咱们在学习不少的理论知识,但是却不了解这些知识的应用场景或者说是没法深入体会其应用场景。计算机能够说是一门实践出真知的学问,你能够把一些经典的理论看成是真知,但由于缺乏实践,不少同窗对这些真知视而不见,甚至厌恶而刻意远离,对学校为什么如此安排课程感到困惑、愤愤不平、嗤之以鼻。在咱们尚未写出过几个像样的程序的时候,对软件的理解还很是肤浅的时候,真不知道为何要去学习软件工程。微信

其次,并非全部学生都是这样的,怪就怪本身没有足够的领悟力,缺少高人指点和引导,不知道大学里学的那些知识如何被真正运用到以后的工做中,所以对学校里学习的内容重视不够,对于像我这样没有以保研为目标的部分学生来讲,及格万岁。所以,不少人在最有时间精力、最应该努力打好理论基础的年华,把热血奉献给了游戏或一些虚幻的东西。若是本文的读者有学生的话,我真心建议你在学生时代好好学习理论基础,总有一天你会用得上的。框架

由于以上的缘由,软件工程这门课程只给我留下了开卷考试这么一个印象。后来随着工做经历的增多和视野的开阔,我很快就意识到这个问题,也曾花不少时间去补学校里学的更多理论知识,但由于工做的繁忙,老是难以静下心来学习。关于软件工程,大概十年前还刚毕业不久的时候,我看了林锐的《软件工程思想》和周爱民的《大道至简–软件工程实践者的思想》,看的时候以为挺爽,事后又什么都忘了。后来通过反思,我认为本身当时还称不上一个合格的读者。为何呢?由于实践仍是不够多,我可能还处在熟悉框架、基本工具使用的阶段,在项目中只负责某一个模块的开发,没有造成全局视野等等,都致使我没法理解软件工程知识在项目中的做用。而随着阅历的增加,本身也成为了一些公司的技术负责人,对项目的成败担负更大的责任时,才渐渐以为须要一些流程和方法论,才能更好地将项目推向成功。固然,我也知道一些大神级的人物,好比大学时代就独立开发出游戏引擎“风魂”而名声在外的云风,声称本身对软件工程没有兴趣。我想或许一些工程相关的东西早就固化在他们那类人的脑子里了,他不用再去学什么软件工程照样能够把大项目作成,但不该该让大多数人去效仿。工具

林锐的《软件工程思想》虽然是二十年前的做品了,但今天阅读仍是能有所启发。在书中他把软件工程包含的主要环节画在一个图上,以下:学习

那么软件工程模型就是要将图上的各个环节串联起来,而后以必定的规范去执行,成为一条生产线。关于生产流水线,我在拙做《漫谈中小企业研发技术栈》中也有说起,通常来讲,闭环的生产线是高效率产出的必要条件。具体的好比线性模型、渐增式模型、快速原型模型等等,能够去参考具体的软件工程教程。cdn

在《大道至简–软件工程实践者的思想》中,周爱民说道:blog

在我现在看来,语言实际上是开发的细微未节,而在大学时代、在课桌上使人昏昏欲睡的《软件工程》才是软件开发中的髓质与灵魂。十年的软件开发实践中,其实在不少时间里我都落入了细节陷阱。教程

“实现”的欲望是从程序员出身的管理者的通病。所以若是你仍然在思考选择什么语言、如何重构,以及在开发部里争论一段代码有没有或应不该该采用某种模式,那么请你暂时沉寂下来,听我说:那是细节。游戏

—《大道至简-软件工程实践者的思想》开发

这样的观点,简直不能赞成更多了。我未尝不是在至关长的时间里,陷入了实现的细节而不自知,对本身熟悉的东西习觉得常以为没价值,对别人作的本身暂时不了解的东西,即便再简单,也总觉得高深莫测,从而做茧自缚缺少自信。

从对软件工程的嗤之以鼻到视若法宝,是一我的对客观事物认知不断变化的一个过程。人的一辈子中会有许许多多这样的过程在并行着,好比咱们不少年前坚信的东西,随着阅历的增长已经变得不那么坚信了,这是由于咱们对本身、对事物等等的见解发生了变化,你们常说的三观发生了变化。那这样是否是意味着过去的本身对不少东西的认知是错误的呢?其实我以为有时候也不能分对错,多是有偏颇,那么咱们能作的,就是不管处于哪一个阶段,都应该汲取更多的知识,进行更多的实践,使本身对这个世界的认知尽可能地接近真相,这样有助于在每一个十字路口都能作出相对正确的选择。

此文是对我本身经历的总结剖析,若是还能给刚上船的年轻朋友们一点点启发,那将倍感荣幸!

微信扫码,进入【技术人成长】社群逛逛。

相关文章
相关标签/搜索