BUAA软工第一次作业-热身
第一次作业-热身
项目 | 内容 |
---|---|
这个作业属于哪个课程 | 2020春季计算机学院软件工程(罗杰 任健) (北京航空航天大学 - 计算机学院) |
这个作业的要求在哪里 | 第一次作业-热身作业(阅读) |
我在这个课程的目标是 | 实现自己在软件工程方面的个人素质的飞跃 |
这个作业在哪个具体方面帮助我实现目标 | 回忆自己从高考结束到现在与计算机的点点滴滴,为以后的道路选择进行规划 |
作业正文...... | 见下 |
其他参考文献... | 博客B 博客F 博客H 15231145的博客 博客J 博客K 博客L 博客M |
一 结缘计算机
1. 你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?(必答)
计算机专业的选择,对于我和大多数北航17级以后的同学来说,是分两个阶段完成的。第一个阶段是高考的志愿填报,当时的分数处于一个虽然不低,但高不成低不就的位置:向上看,够不到更好的大学优秀专业的门槛;向下看,又显得太过“浪费”了好不容易考到的分数。看来看去,好大学的好专业里,分数段最接近的就是北航的计算机系了。另外,自己并不偏好过于“硬核”的理工类专业,比如一些与机械相关的学科;从小喜欢玩电脑,一定程度上也造成了我在专业选择时的偏好(当然“用”和“玩”的区别是知道的);再加上亲友的推荐,最终选择了士谔书院,选择了北航。简单概括,整个选择的过程就两个字:随缘。它并不是一个刻意的选择,而是顺水推舟的结果。第二个阶段就简单很多,因为来书院时的目标便是计算机学院,大一下选择专业时,虽然比较勉强(计算机学院招188人,我在书院的排名是189),但还是没做太多考虑,也没和其他人商量,便选择了计算机学院,选择了6系。现在想想,虽然结果可能不会改变,但也许再考虑一下会更好?
条件上,我的优势在于适应能力强,外加比较强的紧迫感,前者让我在每学期头一个月的学习状态保持在非常好的水平,后者让我至少在完成任务时起步比较早,不至于总赶ddl。劣势在于:缺乏长期的行动力、约束力,让我在学期进入第二个月以后往往在身心上都陷入倦怠;机械思维的能力不足,再加上大学以前几乎没有打下任何计算机相关的底子,导致完成大型实践代码时可能比别人慢数倍;再加上心理的脆弱,一遇到挫折便容易走不出来,陷入不断否定自己,产生消极心态,再因为消极心态的作用而否定自己的恶性循环。
相比推荐阅读的文章中的大多数科班出身的博主,我应该是要逊色于他们的:成绩上不如他们好看,与奖学金绝缘;经验上也不像其中一些博主,从中小学阶段就开始进行系统的计算机学习。当然,与其中任意一名博主比较,至少我也不是样样都不行:照比博客B的博主,我的高中应该没那么“土”;相比博客F的博主,我至少不是半路转行进来的,知识体系上更系统一些。对比非科班的博主来说,我想我的条件已经够好了,如果说有什么地方不如他们的话,那应该就是改变自身命运的进取心了吧。我并没有为自己定下过什么高远的目标,那些博主所拼命追求的,也许是我现在已经知足的东西,但有时候,知足也许并不是什么好事。
2. 计算机是你喜欢的领域吗?是你擅长的领域吗?
在选专业的时候,计算机也不能说是很喜欢的领域,只能说是有所偏好吧。不过当时也没有什么特别喜欢的专业,要说也都和计算机系一样是一种“偏好”吧。
计算机是不是我擅长的领域,这个问题我不好回答。和我对其他领域的掌握程度对比,回答是肯定的,毕竟大学两年半学的的计算机,而其他的东西又没有经过系统的学习,只有计算机还算相对擅长。但如果和系里一些从小学计算机学到大的大佬们比,我的水平肯定不如他们,在整个6系应该只排在中游水平吧。
3. 你热爱这一专业吗?你对计算机的热爱是怎样的?仅仅是口头的吗?
第一个问题的回答很简单:不热爱。
第二个问题,我想我应该回答“为什么不热爱计算机”吧。不热爱的原因呢,简单来说,就是感觉自己很多时候得不到与自己努力程度相符的回报吧。当然这句话从道理上是不那么容易讲通的,它掺杂了我太多的个人标准与情感在里面,也忽略了我自己存在的很多问题(不够专注、不合理安排时间、学习内容基本局限于课堂等等),不过对我自己来说,再问多少次“为什么现在不喜欢计算机”,首先想到的回答还是这一句吧。
最后一个问题,回答“热爱”的有可能只是口头上的热爱,但对于像我一样回答“不热爱”的人,想必都不是说说而已吧,毕竟消极心理往往是由内心深处散播其负面影响的。最严重的时候,甚至放假在家附近的马路上闲逛,都会因为想到计算机而心生厌恶,哪怕复习考研,也会刻意回避专业相关的内容。
二 在计算机系里学习
1. 你对你的大学生活有什么想要吐槽的地方吗?你理想的大学教育应该是什么样子的?跟学校给你的有什么区别?比较你在中国大学的经历,你的老师和学校能做到和国外那样吗?如果不能,请分析一下为什么。(必答)
博客H的博主显然是太过激进了,用一个“渣”字来对中国一切大学教育的方方面面毫不留情地否定。至少我们6系的课程体系还是非常合理的,如果忽略大一时显然不是为进入6系的学生打基础的课程,每门核心课,已经重要的一般专业课,都可以放在计算机知识树上不可取代的位置。但其他方面,很多的课程,特别是专业实践课,在形式上与内容上都。大一时上程序设计课,有助教批评学完程设后的学生编程水平甚至不如培训机构的学生;大二上的计组又被认为太过严苛;大二下OO和大三的编译课设更是数度造成学生内部或学生与课程组之间的激烈争论(当然这和课程改革有关,积极改革从长远来说总是好的,但被当作试验对象的“小白鼠”们可不见得这么想)。对理论课来说,又存在一个奇怪的矛盾:一方面老师上课讲的内容局限性很强,两个小时几乎离不开PPT和讲义中的内容,另一方面学生在认真听了两个小时课的情况下,依然无法达到一个理想的知识吸收水平,还需要反复阅读教材和PPT,才能勉强做对作业题。作为一流大学的一流专业,6系学生总体是向学的,只是受一些社会普遍风气的影响(看重成绩数值而轻视其含金量,在聊天群里经常“卖菜”)而做出一些有失风范的举动。
理想中的大学教育,首先要有完整、科学的课程体系,然后对每门课程,要有一个至少能“服众”的、能客观真实反映学生成绩的评价体系;同时各门课程的成绩分布应尽可能接近,不能一门课普遍虚高,一门课普遍贼低。课程内容上,要合理安排实践和理论课的时间比例,要着重考虑学生在课外的时间分配;实践课应合理设置实践内容和难度;理论课应更加偏向于吸引学生和教授学生更多课程之外的有益内容,毕竟两个小时的课堂上能吸收的东西也就那么多。
2. 迄今为止,你写了多少代码,描述你做的最复杂的软件项目/作业。(必答)
把所有大大小小的代码加起来,估计也不会超过一万行,大概和这位15级学长差不多。最复杂的项目在我印象里至少有三个候选:标准最高的计算机组成课设,难度最高的Java多线程电梯,和码量最大的编译实验。其他一些项目,比如程设和数据结构的大作业,虽然在当时也不认为是小项目,但现在来看也还不足以用“复杂”来形容。
3. 科班出身和北大青鸟有什么区别?
这个问题和下一个问题对我来说都不太好回答,因为我一不熟悉“北大青鸟”这样的培训机构,二没听过太多计算机专业的mooc,在高中的时候也就是偶尔看过一些大学的公开课。但看完作业推荐的博客,对这两个问题至少能有一点答案。
读完博客后的结论是:科班出身相当于北大青鸟这样的培训机构出身,还是占据明显优势的。文凭的优势是必然的,除此之外还有知识体系的优势。但二者之间的差距并不是不可逆转的,即使从北大青鸟出来,通过个人的不懈努力,总能超过科班中一些不思进取,甚至自我放弃的人吧。说到底,人的进取心和他(她)的出身其实没什么必然联系。
4. 速成的培训班和打基础的大学教育还有mooc之间有区别吗?
培训班教如何上手,至于达到什么样的深度则看个人;科班教育则是深入浅出,通过学习系统的理论来指导实际应用;现在的mooc应该说介于二者之间,教学内容偏向于正规科班,教学要求上偏向于速成培训班。在今年这个特殊的时期(写博客时正值2020新冠肺炎疫情期间,各大学均采用网络授课),mooc的地位应该会得到提升,并且也会迎来自身的一场革命,从而获得更高的地位。
5. 学线性代数和概率论的时候,你是否有过这样的疑问“我们为什么要学这么多数学,这和我们的计算机有关系吗”,你现在是否还有这样的疑问?对这个问题,你有自己的解答了吗?那么其他学科呢?
当时在学习的时候,其实不仅是我,就连教我们的数学老师都吐槽过“为什么信息类要学这么多数学”,不过她教的是数学分析,不是线性代数或概率论。对我而言,体会到数学的重要性,是一个随着计算机课程的深入而逐渐深入的过程。特别是在学了机器学习相关课程后,我了解到诸如贝叶斯分类器、支持向量机、神经网络等经典学习算法同概率统计、离散数学、微积分具有密不可分关系,没有深厚的数学基础,理解这些算法是不可想象的。除此之外,许多数学课,特别是离散数学的老师也在课堂中用许多实例揭示数学和计算机的关系,还给出了阿里面试时的题目作为例子。不过,即使学到现在,也不能说所有学过的数学都体现在了我掌握的计算机知识中,但这绝不意味这些数学知识没有用,而是我学的不够深。但分专业之前开的有些科目,比如物理和我们下一届的工图,可能确实不是计算机系必要的要求吧?
三 未来规划
1. 对于你未来在IT行业的发展,你有什么样的梦想或者未来想从事什么样的工作?你准备怎样来规划你技术道路,职业道路和社会道路?(必答)
我的思维也许做不到太机械,但行为方式上却显得死板守旧而不知变通。从我的性格上,也更偏向于随和,偏向于沉默,偏向于默默无闻地做事。因此,如果可能的话,我希望将来能够从事硬件(物理)级或者系统级这样相对底层的研究。
在以前计组、OS和数据库的学习过程中,我认识到,学习计算机底层的知识,需要严谨的精神和较高的抽象理解能力,但相对的,这些知识更为系统,更为集中,它的技术更迭也不那么迅速。所要克服的就是,急躁心理和随学习深入逐渐显现的惰性,沉得住气才能扎得住根。具体而言,要更加侧重理论,通过阅读大量领域论文形成自己的知识体系,同时尝试自己搭建中小型系统,锻炼自己的代码能力。
以我自己对IT领域的了解,从事硬件架构或系统级研究相关工作的人员是相对较少的。为了能够成为他们当中的一员,除了不断累积知识和经验,想必也没有其他可以做的吧。
2. 你对于实现自己的梦想已经做了或者计划做什么样的准备?
对我来说 ,现在最重要的准备,也就是考研了。即便最终事与愿违,我至少也能够在复习的过程中巩固和再认识我之前学过的基础知识,对将来无疑是有益的。
3. 你们马上就要面临实习了,你打算在企业内实习还是在实验室实习?
在阅读了这些博客以后,我觉得既然是科班出身,就应该尽量争取一些在实验室学习的机会,不然就浪费了大学的好资源。虽然有这样的想法,但考虑到自己已经大三,不仅保研出国无望,连考研都缺少把握的现实,还是从最坏的打算出发,尝试在企业实习,为将来的工作做准备吧。
4. 实习经验究竟有多重要?是否需要马上开始积累实习经验?
看完博客J 博客K 博客L 博客M,我觉得实习还是处于一个比较重要的地位的,缺少足够的实习经验,很难被大公司录用。但话说回来,这些博客中最为强调的重点并非实习,而是技术。实习的重要性,应该还是在于说明自己掌握的技术如何被自己在工作中使用,最为关键的还是技术本身。所以实习经验积累到一定程度就可以了,主要的还是掌握技术。
当然对我来说,确实需要马上就开始积累实习经验,因为现在还一点都没有。