软件工程第0次作业 软件工程第0次作业 第一部分:结缘计算机 第二部分:在计算机系里学习 第三部分:未来规划 参考文献

项目 内容
本次作业所属课程 2019BUAA软件工程
本次作业要求 第0次个人作业
我在本课程的目标 学习软件工程的相关知识,了解团队协作编程,为以后的工作打下基础
本次作业的帮助 通过阅读其他博主的博客,了解了许多优秀的人的学习和工作经历,他们对于计算机的理解,帮助自己选择未来的路。

第一部分:结缘计算机

你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?

在上大学以前,我对计算机几乎没有了解,通过高考进入了北航高等理工学院学习。在大一的学习过程中,我第一次深入了解了计算机,并学习了其基础知识,在这个过程中,我逐渐对计算机产生了兴趣,最后在大一结束分专业时,选择了计算机专业。

在大学前我对计算机基本没有了解,在大一时也只是学习了一些皮毛(C语言),我的家庭中也没有从事相关专业的亲属,我认为我的条件只能说是一般了,与博客I的博主则更没有可比性。不过得益于现如今资讯的发达,在选择了计算机的一年半的时间里,我也逐渐领悟到了计算机的美妙,也在不断的提高着自己。虽然起步较晚,但我也相信自己能够在计算机方向有所成就。

计算机是你喜欢的领域吗?是你擅长的领域吗?

喜欢是必定的,在北航这么多理工科院系中,我最终选择了计算机,正是因为自己对于计算机的喜欢。正是由于喜欢,在大学学习计算机的过程中,我能够逐渐感受到自己能力的提升,哪怕为了完成作业必须熬夜的情况下,我也没有对我的选择感到任何后悔,但与许多大佬们相比,这点水平确实没有什么拿的出来说的,也说不上擅长,但只要能比昨天的我更优秀,那就无悔于自己。

第二部分:在计算机系里学习

你对你的大学生活有什么想要吐槽的地方吗?你理想的大学教育应该是什么样子的?跟学校给你的有什么区别?比较你在中国大学的经历,你的老师和学校能做到和国外那样吗?如果不能,请分析一下为什么。

要说吐槽的话,其实并没有对学校的吐槽,相反是对自己的一些吐槽。回顾大学以来的学习历程,自己浪费了很多机会。在大一上时,我还保持着一定的自制力,每天都会认真听课,写作业,成绩也比较优异。但在这之后,自己又慢慢地松懈了下来,也逐渐养成了翘课,在寝室打游戏,睡懒觉的习惯,虽然看到自己绩点随着时间在不断下降,但除了在看到考试成绩时突然感到一丝懊悔,并没有什么实质性的改善。虽然在选择计算机后,就关注了*哥vczh,也知道他很优秀,但其实并没有深入了解它的经历。看了他的博客(博客M)后,才意识到那些比我优秀的人却比我还要努力。

我理想中的大学教育是理论与时间相结合,例如博客B中提到的朱仲涛老师的“数据结构”。虽然我们在许多课程也有相应的课程设计,但是这些课程设计往往是限定了范围,而且大多数是在学习比较成熟的系统的基础上,完成它的一个简略版。虽然说这样能够使得大部分同学将理论课上所学知识运用起来,但对于一些想要在这些方面有所深究的同学而言,过多的限制却又限制了他们的探索。

我对于国外的教育了解并不多,但我们在许多课程中,老师都推荐我们多看一看国外的一些教材,有的甚至也直接使用这些教材的翻译版,也足以见得,国内的计算机方向的教育与国外仍有一些差距。

迄今为止,你写了多少代码,描述你做的最复杂的软件项目/作业。

必须承认,我在大学本科期间并没有很认真地对待科研,也没有拿得出手的好项目。除了自己写着玩的一些小程序,也就只做了计组,OO,编译这些课程的课程设计。相对来说,编译课设可能是最复杂的项目了吧。在写删减版的C语言编译器的过程中,是我第一次主动使用git来控制项目进度。在计组中我完全没有使用git,在OO,OS两门课程中,唯一使用git的地方是提交作业。

在写编译器的过程中,从前期的规划,到中期代码的编写,到最后的需求更改,debug等过程中,都有着git的影子。尤其是在后期一次进行优化时,曾经不小心删掉了部分源文件,正是依靠git的版本控制,将这次误操作带来的损失降到了最低,也是在这之后,我也坚定了使用git进行项目管理的决定。

科班出身和北大青鸟有什么区别?

我认为科班出身和北大青鸟没有贵贱之分,但确实有高低之别。贵贱是出身之间,无论何种选择,都应该得到尊重,高低则是个人水平之间,无论是哪一类人,总有优秀的和差劲的。

无论是科班出身还是北大青鸟,学习时不少知识是重叠,工作时不少职业也是相同的,对于一些职位而言,尤其是程序员等,我认为这两类人是没有多大区别的。但是科班出身的人毕竟是有着系统的,完善的计算机方向的知识,尤其是理论层面上的知识,而北大青鸟培训出的人,大部分是朝着找工作的目标来的,学习的也多是一些工程实践相关的知识。

我并没有发现这些所谓的“正规大学计算机专业毕业生”的就比“没有文凭”的开发人员强多少

对于博客H的博主的这段话我是赞同的,正如我上文所说,科班出身和北大青鸟各有所重,他所从事的职业正是北大青鸟所关注的工程实践,所以有这种现象是正常的,但这并不能说明科班出身没有用,尤其是博主下文对于中国大学教育的“批判”,讽刺,却让我看到了非科班出身的人的一些缺点——过于自尊,“反智”。

将两种出身的人做对比,如果只是考察写游戏,写软件的水平,我认为北大青鸟的同学可能能力会更强,但若是考察计算机原理,结果则必定是科班出身的人更强。或许博主会认为所谓的计算机原理有什么用?那么就举简单的矩阵相乘 A*B ,最常见的想法如下:

for(int A_i = 0; A_i < A_row; A_i++){
    for(int B_j = 0; B_j < B_col; B_j++){
    	for(int n = 0; n < A_col; n++){
        	C[A_i][B_j] += A[A_i][n] * B[n][B_j];
		}
    }
}

如果将计算机储存特点(cache命中率,内存管理)和使用的编程语言特点(二维数组行优先储存的编程语言)考虑进来,这种写法的效率是极其低下的,若是学过计算机原理的人来改进此部分,只需要将循环的顺序交换,就能极大的提高运行效率。这仅仅是工程中的运用,如果涉及到了计算机前沿知识的研究,就更不必说了。

总的来说,我并不会对非科班出身的人有任何偏见,但是我会看不起非科班出身却又过分自傲的人。

第三部分:未来规划

对于你未来在IT行业的发展,你有什么样的梦想或者未来想从事什么样的工作?你准备怎样来规划你技术道路,职业道路和社会道路?

在大学本科期间,我只能说我由于自己的不作为失去了很多机会,所以更应该规划好自己未来的路,最关键的是,在这条路上,坚定地走下去。

大学本科毕业后,我会继续学习计算机,考虑到现在的成绩,保研的可能性并不大,所以现在已经在准备考研了。虽然没有完全确定想考哪一所高校,但现在已经将自己的作息时间调整回学习的状态,开始复习公共课程。在学业完成以后,我应该不会选择科研,会进入一家公司,从事计算机方向的工作。工作后,正如博客K的博主所说,在工作时也要学习,不能放松自己。现在社会上也有不少声音说计算机是吃青春饭的职业,但我认为吃青春饭的只是程序员这个职业,而非计算机。作为一个接受过系统的计算机教育的人,必定不会仅仅满足于做码农,在工作的过程中,逐渐学习,为自己以后的发展打下基础,是一件更为重要的事。

参考文献

上文中提到的博客链接如下(也可以直接在上文中点击链接)

博客I
博客M
博客B
博客H