个人阅读作业#1

项目 内容
这个作业属于哪个课程 2021春季软件工程(罗杰 任健)
这个作业的要求在哪里 个人阅读作业#1
我在这个课程的目标是 学习软件工程基础知识以及培养软件开发能力和项目组织能力
这个作业在哪个具体方面帮助我实现目标 认识自己与行业,进行未来规划

1.结缘计算机

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

我为什么会选择计算机专业呢?现在回忆起来,发现我选计算机专业的理由很简单,正如大多数人一样,大家想选什么,我就跟着选什么罢了。
其实我一直对自己的未来规划不太关心,但是每次到不得不进行抉择的时候,由于知识储备的缺乏,导致我很难结合自身的情况去以一种比较客观的方式去得出结论,因此我的做法就是跟随大家。当年高考完,看了看自己的分数以及北航的分数线,觉得比较契合,便决定上了北航;大一的时候,听周围的同学都会计算机学院比较好,于是选专业的时候也就选择了计算机专业。
就这样,我跌跌撞撞的误入了计算机专业,然而自己之前对这个领域完全没有任何的了解。仍然记得大一的第一次程序设计实验课,课程任务是解决几道简单的编程问题,让大家对编程有个初步了解。但是我根本没有了解过这方面的任何知识(在这之前甚至都不知道C语言是什么),面对着几行不明所以的字符串,根本无从下手,最后理所应当的没有做出来任何一道题。但是周围却有很多人解决了不少的问题,甚至还有人早早写完了题目就离开了。因此“几乎为0的相关知识储备”+“不爱探索的性格”,造就了我十分薄弱的基础。
虽然相比于博主I,我们现在的环境以及外部条件已经好了很多,各种强大的搜索引擎以及丰富的社区环境已经能够支持我们找到大部分问题的答案,但是博主I不断的对计算机进行钻研和探索的精神,是我极度缺乏的,因此虽然外部条件相较以前有所提升,但由于自身的素质原因,自身条件还是比较薄弱的。

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

计算机这个领域我是很不喜欢——至少以前是这样。从第一次编程开始,我们就要在别人既定的规则下,按照他人所制定的规则去做相应的任务(至少我大一时周围一些同学不选计算机学院的理由就是这个)。各种各样的规则与约束使得我一曾对编程抓耳挠腮,像配置环境之类的任务到现在我还是无法应付。
但是随着不断的学习,看到各种各样的博主阐述他们的学习经历与方法,讲述他们的成长经历,看着他们如何将复杂的知识体系进行拆分与总结,我也会为之感到震撼与感动,因此现在希望能够像他们一样,在这个领域不断的进行学习。
虽然想法很宏远,但是我对于计算机领域的认知还是非常浅的,不论是各方面的知识储备,还是逻辑能力、设计能力以及编程能力等,都是非常薄弱的,周围的同龄人在这些方面都要比我强得多,因此这个领域相较于其他人来说我不擅长。但是对自己来说,相较于其他学科,我还是比较喜欢这种有较多数学元素的科目的,所以相较于自己的其它方面还是比较擅长的。不过现在虽然我还很菜,但还是希望能跟大家一起学习。

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

仔细的思考一下我对热爱的理解,究竟什么是热爱呢?——做的时候聚精会神、做完之后会对每一个细节进行反思,寻找能否有改进的方法、不断的寻找相关资料,看看他人是怎么做的、睡觉的时候闭着眼也满脑子是这件事......显然在计算机方面,这些特征我是一个都没有(不过之前寒假打游戏的时候好像有过这种状态😄)。所以很显然的得出结论:我是不热爱这一专业的。
虽然现况是:我对计算机不热爱,但是既然发现了问题,那相必是要进行问题分析与提出相应的解决方案。为什么对一件事不热爱呢?可能是周围缺少与你一起做这方面事情的人,缺少团队的激励以及交流对象;缺少相应的正反馈,从而影响内在驱动力;缺少合适的学习方法......(突然发现答偏了)
虽然现在还不热爱这个专业,但还是希望自己以后能够不断的提升自己的热爱程度。

2.在计算机系里学习

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

2.1.1你对你的大学生活有什么想要吐槽的地方吗?

首先是竞赛方面,我不明白的是为什么学院要强制大家每学年参加一门受认可的竞赛,甚至大二强制要求本学院所有学生都参加冯如杯,也许学院的出发点是很好的,希望每个学生都能因此受益,而得到锻炼,但也许他们想象不到这对不想参加的人是一种多大的灾难,浪费大量的时间在自己根本不了解的地方,又因为本身就不了解但是又要要求一定的质量,因此只能不得已的不断选择他人总结的部分进行摘写,这种自己明明不明白但又不得不写出来的感觉是非常难受的。然后就是学校的课程要求,要求我们必须选跨专业课程与全英文课程,但是实际分析它们对我们的帮助,显然是不如选自己方向的专业课程带来的帮助大的,虽然名义上是帮助我们“开阔视野”,但是形式上和实际效果还是有差距的,希望学校也能改进这一方面。
上面的吐槽是针对学校的教育安排方面,接下来针对自身部分进行吐槽。由于自身的执行能力比较低下,平常所想的与实际实践的都会有较大一段差距,因此自己很多想做的事情都没有做,直到如今都快要毕业了,感觉还是很是遗憾,只希望自己以后能够脚踏实地罢,不要在奢求自己得不到的东西。

2.1.2你理想的大学教育应该是什么样子的?跟学校给你的有什么区别?

这个问题一时想不到答案,于是去搜索了一下“计算机科学与技术”的培养目标——掌握基本理论知识技能与方法、具备科学思维能力以及设计解决方案,实现基于计算机系统的能力、具备清晰表达的能力、具有团队配合能力、具备终身学习能力......

由此我觉得理想大学的教育应当从上述几个方面进行全面的培养。不过现在学校所给的教育给我的感觉是“理论知识与思维能力”>"设计解决能力">"表达与团队配合能力"。在很多比较重要的课程上,理论部分教授的深度与广度与课程设计所考核的较大程度是不匹配的,因此这些超出实践范围的理论部分,感觉很难进行理解与消化,给了我一种“学了与没学差不多”的感觉。除此之外,我感觉学校对于学生的表达能力的培养也是不足的,但是并没有像别的课程一样专门用一门课程去系统的教授这方面的知识。

以及理想大学的教育应当培养的是学生的知识体系,而且这个知识体系尽量应该广,在某些必要的知识方向上才需要进行深度挖掘。而学校似乎并没有教授我们这个领域的知识图谱,导致在遇到某一类问题的时候比较难对该问题进行正确的定位,从而难以确定该问题应当属于知识网络的哪一部分。

2.1.3比较你在中国大学的经历,你的老师和学校能做到和国外那样吗?如果不能,请分析一下为什么

看了看博客N,感觉到中国的教育与国外一流大学的教育还是有一段距离的...正如博主N所说的:“美国常青藤学校有很合理的制度设计和人文关怀,强调学生的参与,相对于中国仍然沿用的传统式知识灌输,这是很现代化的教育”。这一点我深有感触,中国学校的课堂教育,大部分都是老师单方面的给学生讲述知识,但是这其实是一种传授效率很低下的做法。之前看到别人讲述应该如何学习一个概念的时候,他是这么说的:“首先从信息的角度了解概念的含义,然后从知识的角度纵向的了解这个概念的前因后果以及产生原因,明白这个概念的运用方式与运用场景。然后从见解的方面这个概念与相邻知识的关系,并且串联起来。最后能够完整的将其向外表达与传播,这样才算是概念的正确学习方法”。显然当老师单方面的不断传输高密度的信息的时候,学生是不会主动以及没有时间从这么多角度对一个概念进行思考的,因此老师调动学生积极的思考与表达是很重要的。

除了上面的课堂角度中外教育的差距,我国的计算机学习环境还是较差的。前几天还在听舍友吐槽国内外计算机著作,国外有影响力的书籍很多,而国内在这方面却没有能说得出口的;中文互联网的环境也是不堪入目,各种低质量的文章、各种不加掩饰的抄袭、各种盲目的转载使得我们在中文互联网上想要搜索到一篇较为高质量的回答的时候显得尤为困难......上面所说的都会较大程度的限制我们的自学能力。

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

课程 项目简介 代码量
程序设计与数据结构 大一开设的两门编程课程 2000+
算法设计 leetcode与牛客常见算法题 3000+
计算机组成原理 实现一个支持异常中断的五级流水线CPU 2000+
面向对象设计与构造 利用Java开发代迭四个带版本迭代的项目 4000+
编译原理 利用c++实现一个类C文法编译器 4000+
数据库系统原理 全栈实现了一个插图社交网络服务系统 7000
ruby语言程序设计 实现了插图社交网络服务系统后端框架从"spring boot"向"Rails"以及数据库从"SQL server"向"SQLite"的移植 1500+

2.3科班出身和北大青鸟有什么区别?速成的培训班和打基础的大学教育还有mooc之间有区别吗?

对比了一下博主E的培训经历以及我们学校所进行的教育,我意识到了科班与培训班培养出来的人才在科学思维能力、对计算机体系的理解程度等更方面,后者都是远远不如前者的。

培训班往往秉承着速成的理念,一味的向学员灌输一些面试的高频考点,这让我想到了大家都在调侃的高中的“应试教育”,一旦脱离了卷面,做什么都束手无策。而科班的课程体系设计本身就是科学的,会引导学生从最科学的方法去系统的学习计算机相关的知识。

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

之前大一在学线性代数以及数学原理分析的时候,我确实有过这样的疑问,因为当时根本不知道这些知识如何去应用。不过后面看了别人的看法以及学了部分课程后,又有了新的理解。计算机本来设计的目的就是以更加高效与快速的方式去进行计算,而良好的数学可以帮助我们去更加准确的评估时间复杂度与空间复杂度,并以此为根据提出更加高效的解决方案。现在仍然有很多计算机专业课程是以这些数学为基础的,比如人工智能、图形学等,因此有良好的数学基础是非常重要的。

3.未来规划

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

其实我以前一直不知道自己将来想从事什么工作,不过最近阅读别人所写的文章,逐渐感受到了系统学习与知识网络的魅力,因此梦想着将来与计算机有关的什么方向都做一点,前端、后端、基础架构、安全...(不过梦想终究是梦,可行性很低)。最近的工作的话希望先从事后端相关的工作,最近也在为此做准备。

3.2你对于实现自己的梦想已经做了或者计划做什么样的准备?

最近正计划为实习做准备,补习一些为达到实习要求而所需的课程的知识,希望自己能够锲而不舍,屡败屡战。

3.3你们马上就要面临实习了,你打算在企业内实习还是在实验室实习?

我打算在企业内实习,一方面企业实习的门槛相对于实验室实习较低,另一方面由于自己将来想要更快的就职,因此在企业实习的经历可能相对更有用一些。

3.4实习经验究竟有多重要?是否需要马上开始积累实习经验?

虽然现在还没有过任何实习经验,不过我认为对于向我这种缺乏经验的人来说实习带来的收益是很大的,除去能给自身升值,在将来的竞争中处于较为有利的地位外,实习能够让我们熟悉团队运作的机制,了解当前大互联网公司开发所采用的技术栈,并且能够接触到更多编程能力更强的人去进行学习。因此我觉得对于一名大三学生来说,积累实习经验还是比较有用的。

posted @ 2021-03-08 16:10  hastune_39  阅读(102)  评论(2编辑  收藏  举报