开启软件工程课程之旅

此博客只因软件课程而存在,本人主要活动于 GitHub 。哦对,文章标题应该是:

我对软件工程的认识

学会第一门编程语言之前,对软件工程的认识莫过于是编代码了。对软件工程的认识,应该从学第一门编程语言时说起。

初识软件工程

第一门编程语言,是C++。高考后开学前,看了课表发现要学C++。其实早就想学编程,正好预习一下。嗯,变量,命名法则,条件分支,循环......编程真是好简单。直到C++的上机作业之前,编程都是简单的。至于为什么要把一些常量,用一个常量名初始化在程序最前面,为什么要有什么静态的东西,以及为什么经常看到这么一句话:

一段好的程序,由20%的代码和80%的注释组成

我都摸不清头脑。

直到,我们开始快乐上机。仍记得当时全班上机作业完成用时的范围,是从五分钟,到二十小时。

我还好,四个小时就能做完。当时最长的,长得充满挑战的程序,莫过于两百行。不过那些能让我头疼脑热的问题,大多不是软件工程的问题

关于软件工程,我们老师试图培养我们将来承担大型编程工作的素养。但是,贯穿整个课程,我应该都是不理解为什么老师要告诉我们这样那样的规范,为什么要这样,为什么要那样。

接触软件工程

自己做的第一个“工程”,应该是自学虚幻引擎写小游戏的时候。虽然他是支持C#的,但是我偷懒用了图形化编程。也算是软件工程,不是吗?

因为我在做工的时候,深刻体会到了软件带给我的困扰。

用图形化编程做数据处理工作还是比较愚蠢的,但是我的vs实在和UE引擎搭配不起来,就只能全程图形化编程。我按照C++老师传授给我们面向对象的思想,尽可能地提高代码复用性,但是每个实例,好像都是那么特殊,我每创建一个新的实例,都要覆写好多代码,做好多初始化工作,并且debug非常久。最有感触的一件事是,过了几天再回来看我的代码(密密麻麻缠绕的线条),大惊:这是哪个孙子写的屎山?

逐渐逐渐意识到,搭建一个全部逻辑都十分严密的工程,并不是一件简简单单的事情。

事到如今

之后写代码的机会越来越多,课程项目用面向过程的方法前后抄了三四千行,也没出过太多bug。拿pytorch搞实验,文件夹套文件夹,天天也算是与代码打交道了。不知道是做的东西太简单,还是当年C++老师对我潜移默化的影响,当年那种怎么也不理解哪里出了问题,头疼脑热debug的感觉,仿佛好久没有再经历过了。也对课上引用的一位大佬的话深有感触:

在没有机器的时候,编程根本不是问题;当我们有了计算机,编程开始变成问题;而现在我们有巨大的计算机,编程就成为了⼀个同样巨大的问题。

也陪着软件工程有过很多欢乐,比如有人问我什么让你感到powerful?

  • 找到自己代码的bug
  • 找到别人代码的bug
  • 在不会编程的人面前用终端

我想我也明白,为什么会有软件工程这个学问。也明白,势必要学好他。

posted @ 2022-09-17 20:15  Doby_Xu  阅读(19)  评论(0)    收藏  举报