软件开发小白的第一次软工作业

软件开发小白的第一次软工作业

项目 内容
这个作业属于那个课程 2021春季学期软件工程(罗杰、任健)
这个作业的要求在哪里 个人阅读作业#1
我在这个课程的目标是 和团队成员一起成功开发出一款具有实用性的软件,了解软件开发的流程并掌握软件开发过程的分析方法
这个作业在哪个具体方面帮助我实现目标 对过去的学习进行梳理,初步了解软件工程并且进一步明确之后的发展方向

第一部分:结缘计算机

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

A:和许多同学不同,其实我本人在大学之前并没有接触过编程,是一个十分纯正的计算机小白。填报志愿时士谔书院其实也不是我的第一选择,在种种机缘巧合之下我来到了士谔书院。在大一上的C语言课程中我第一次接触了编程。在课程中我每周的上机都要经历一次自信满满到机房、焉焉地回宿舍的大起大落。但是我在课程结束之后发现,上机结束之后的心情低落只是针对于当时情况的正常表现(毕竟在大佬们的对比下,自己确实显得非常菜鸡),这种失落并没有让我惧怕编程本身,在最后的考试中其实我的表现也还不错。从这里至少可以看出我是不排斥编程的。另一件事是在数据结构课程中我对从来没有接触过的种种概念接受的还是挺快的。这两门课程实际上在一定程度上培养了我对编程的兴趣,同时在电子设计、工图等课程上我发现我对自动化、电子信息等专业并没有更多的兴趣,因此在学习成绩本身和我的兴趣二者的权衡之下我选择了计算机专业。

相比博客I的博主,他在中学时代就已经对计算机有了很多的了解同时掌握了很多计算机的技能,他显然有更强的求知欲更强的动手能力。其实但是回顾我过去两年半的学习生涯,我其实并没有在课程中有过什么突出的表现,基本上都是中规中矩的完成了课程的要求,获得了中规中矩的成绩。虽然并不突出,但是从我自己的感受来看我在每一门课程中都是有很多的收获的。说来惭愧的一点是我对各项技术更多的是一种浅尝辄止的状态,我并没有底气说我精通某一个编程语言或者某一项技术,但是我个人评价自己的自学能力尚可。其实在一段时间中我也抱有和博客B类似的疑惑,感觉自己上了很多的课程又没有在直观上的感知到自己对计算机的了解有什么进步,后来在日常的生活中我发现其他专业小伙伴难以解决的编程问题我总能很快的帮忙解决,甚至还能在一些程序的结构上给出一些建议,在使用各种APP时我也会想它是怎么实现这样的功能,所以实际上学习的各种课程实际上为我培养了一种计算机的思维,让我看待这个世界的视角有了变化。

简单来说,虽然我现在的能力比不上这些优秀的博主们,但是我认为我身上也具有成为一名优秀计算机领域人员的潜力。

Q:你热爱这一专业吗?你对计算机的热爱是怎样的?仅仅是口头的吗?

A:在上一个问题中我说我在在学习成绩本身和我的兴趣二者的权衡之下选择了计算机专业。而我对计算机专业的真正认识起始于我在计算机专业中的第一门专业课计算机组成原理。在自己编写CPU的过程中我开始真正的认识到了计算机的伟大之处。任何一个人只需要简单的学习(甚至依靠直觉)就能满足日常的需求。我们不需要了解他如何在运行,只需要键鼠的操作就能完成我们想做的事。经过了计组的学习,我才知道了计算机的内部设计是多么的精巧,流水线CPU、数据的转发都显示着人类的智慧。这也使我真正燃起了对计算机的热情。经过其他课程的学习,我有了更加全面的认识,但是我从来都没有萌生过逃离计算机的想法,相反我对计算机的未知领域有了更多的好奇。我可以肯定的说我对计算机的热爱绝对不是口头的,至少在我可预见的未来我认为我会一直呆在计算机相关的领域中。

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

Q:你对你的大学生活有什么想要吐槽的地方吗?你理想的大学教育应该是什么样子的?

A:虽然目前已经是大三下了,但我还是觉得我大学生活和我的想法有一定的落差。想要吐槽的地方也是存在的。把视角放在外部,我感觉同学之间的协作性其实很差,大家更多的时候都是在各做各的,小组完成的项目往往合作的程度也不够高(至少我参与的一些作业是这样的)。向内反省自己的话首先我认为我没能培养出主动学习的热情,我往往都是被动的跟随课程的进度在学习,这其实导致了我在课程之外的内容了解很少。第二点是一直没有能够克服自己的畏难情绪,在遇到学习中常常会因为担心自己完不成而不去挑战更高难度的要求。

博客N博客O都向我展示了两位博主在美国的部分求学经历。我本人并没有国外学习的经历,仅从这两篇博客实际上只能窥得美国教育的一角,但是就我的阅读一眼来看,这两篇博文的确激起了我的向往。·首先是对于实践的重视,这种实践对学生有很好的引导作用;其次是考核的方式,博客N 中描写的结课project表现出的同学们的创造力和活力令我十分向往。我理想中的大学生活就是能够有丰富的授课形式而不仅仅囿于上课讲授,大家更够更加关注课程内容本身而非被分数限制。

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

A:我本人并没有确切的统计过代码量,大致估算的话应该大致超过了万行。(但是我认为其中大多数的代码并不具有很高的价值),主要的代码还是集中于课程的大作业或者实验项目。

我目前做过最复杂的项目就是编译课实现的小型编译器。他主要的功能就是面向给定的类C文法,更够将程序编译为MIPS汇编程序,同时具有一定的错误处理功能。最后整个编译器的代码量超过了3000行。从代码量中也可以看出程序写的并不简洁。在动手之前我对编译器的结构做了一定的规划,但是最后并没有按照我的预想完成。我的语法分析程序代码量占整个项目的一半以上,原因就在于我把生成中间代码的工作也加到了语法分析中,导致语法分析变得又臭又长。虽说功能正常,但到后期我本人都不太待见这个程序。这一点也是我觉得需要好好锻炼,简洁优美的代码谁都喜欢。

Q:学线性代数和概率论的时候,你是否有过这样的疑问“我们为什么要学这么多数学,这和我们的计算机有关系吗”,你现在是否还有这样的疑问?对这个问题,你有自己的解答了吗?那么其他学科呢?

A:在学习这些数学课的时候我并没有类似的疑问,但是我也没有清晰的认识到它们的用处具体在哪儿。我在上一学期选修了机器学习相关的课程,我才发现在机器学习中线性代数和概率论都发挥着重要的作用。至于其他的课程比如物理更多的可能是思维的训练。在培养计划中也有人文课程的要求,可能有一些同学并不喜欢这类型的课程,但我还是挺喜欢这方面的课程,虽说它们对于专业技能可能没有什么直接的贡献。但我认为很重要的一点是它能够增强我们的思辨能力,它实际上是增强了我们的个人素质。另外我想多说的一点是我认为对于各种不同的课程不要抱有太强的功利性,用包容的心态学习可能会使我们更好的享受课程本身的内容。

第三部分:未来规划

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

A:现阶段的打算主要是本科结束之后继续深造。在研究生结束之后应该会进入企业工作。(研究生之后的事情我个人认为还比较遥远,所以并没有更多的思考)。从我的个性和能力来考虑,未来想要从事的工作应该是项目经理或者架构师。就我目前的认知来看,这两个工作都需要有很强的综合素质。首先是要有技术的积累,尤其是广度和综合运用的能力;其次是统筹规划能力;最后是管理沟通能力。从以上几点来看,我暂且认为未来的努力的方向在于:

  • 了解并掌握更多的开发技术,至少精通两到三项开发技术(不过我目前还没有选定向哪个方向更多的钻研
  • 阅读管理学的书籍,选修相关的课程
posted @ 2021-03-10 22:00  liuqian9961  阅读(137)  评论(6编辑  收藏  举报