【软件工程】第0次作业
写在前面
项目 | 内容 |
课程 | 软件工程 |
作业要求 | 第0次个人作业 |
我的课程目标 | 提高自身代码能力,体验软件开发的整体流程,学会团队协作的方法 |
此课程的具体帮助 | 有规划的开发计划,在实战中学习 |
第一部分:结缘计算机
你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?
我选择计算机的原因最主要是高考分数和我周围人眼里对计算机行业的普遍认知两个方面。
-高考分数:分数是直接的原因。我所在的地区有国家专项的优惠政策,加上本身分数,可以通过专项计划稍稍优惠一点几乎压线报上北航的计算机专业,就以"总不能浪费"的心态试了一把,最终中了,也是机缘巧合。
-普遍认知:周围人的认知可以说是根本原因。选择专业的时候,实际上最多的就是迷茫,因为实际上对于每个专业都不是很了解。但是计算机给我周围几乎所有人的概念就是热门行业、容易就业、工资高等等正面印象,而我接触计算机也有很久了,虽然不是干什么正经的,这个后文再说吧,总之最终计算机就成了我选择前面所说的高考不浪费分数试一试的目标。
条件很差。我接触计算机要从时间上看可能算是同学中比较长的那一类,然而正如前文所说我接触计算机并不干什么正经事。对于大学前的我来说,计算机除了能浏览网页看看新闻或者利用网络联系老师同学之类的功能的就是玩游戏的功能了。在我大学之前,我对计算机相关的知识完全没有接触的机会,身边也没有对这方面有了解的人引导,有一位亲戚是学计算机而且也是做这方面的工作的,但是正因为工作去了异地,没有什么交流,也没有对这方面的指导,至于竞赛之类的根本没听说。初中高中上虽然有计算机课,但是除了被语数外之类的课以"老师有事"这种理由占掉之外,上课内容就是基本的word、excel等工具的使用,实际上没有多大的帮助。而大学后身边的同学经常能见到某竞赛的什么奖的得主,或者是从初中高中就开始编程之类,与他们相比,我的条件其实比那些在大学前没怎么接触计算机的好不了多少。
与这些博主相比就更差了,如博客1的经历,他与电脑一接触就是对电脑的研究,编程练习,甚至为了电脑自己学英语学到了满分的程度等等,也许这算是时代差异,遇到那个年代的那种配置的电脑,我现在的玩游戏在那个时候就是他那种对电脑的狂热的研究也说不定。究竟真相如何虽不得而知,但我所能知道的就是,看了他们对计算机的认识的经过之后,我深刻认识到了我自身条件差,基础薄,现在仍然对未来的认识不清晰,因此更要努力学好知识。
计算机是你喜欢的领域吗?是你擅长的领域吗?
要问喜不喜欢的话,我的回答是喜欢,即使现在的基础的学习让我感到困难,但我仍然喜欢计算机这个领域。要更细一点的话,对于计算机技术应用方面的喜欢更甚于对于计算机方面的基础科学,看到新闻里出现了各种很酷的新产品就会心神往之,但与此同时又会因为自己技术不够前路茫茫感到困惑。
对于擅长这个问题的话暂时是不擅长,基础薄弱,技术跟不上,前路茫茫。
第二部分:在计算机系里学习
你对你的大学生活有什么想要吐槽的地方吗?你理想的大学教育应该是什么样子的?跟学校给你的有什么区别?比较你在中国大学的经历,你的老师和学校能做到和国外那样吗?如果不能,请分析一下为什么。
最想要吐槽的东西是各个课程设计。课程设计上课全是考核,下课自学方法自己做东西。我本以为的课程设计是上课讲做法,下课自己做,考核另找时间这样子,结果目前这样的结果实在有些难以接受。可能以为是理论课讲的已经够多了?就我的感受而言理论课和课设之间的差距不是一点半点,总感觉两者之间缺一点能让它们相连的桥梁。或者说一股脑把操作方法指导书和要完成的东西塞过来,内容过多且过于抽象,让人有种“消化不良”这样类似的感觉。
理想的大学教育应当更加自由一些,虽然学校给的方案是自由选课,但是必修课和其他学分要求以及针对不同年级的开课计划把课限制得只是看上去给了自由这种感觉,最直接的例子就是很多同学在选课期间就吐槽他们选一个法律类课程的曲折历程——因为法律类课程是有要求的,但是容量太少每学期选上的都不多。
要说国外大学的话实际上没去过也无法谈起,只能说点道听途说的东西。听说国外大学每学期要选的课都不多,但是每一门课的要求很高,要读很多东西写很多东西做很多东西,这样的话很少的课但是能学的很深,时间上也和国内上这么多课一样很紧。真实性就不清楚了,这样的模式听上去蛮理想的,也是我曾经理想的大学模式,但是国内要做到那种程度的话感觉还是太难了,首先学校太多人太多了,那样做的话资源肯定不够,而且这样的方法出来人学会的东西感觉很精但是适应性不强,就拿计算机来说这个行业每时每刻都在进行激烈的变革,因此学校更重要的是为学生训练基础和适应这个行业的思想。
迄今为止,你写了多少代码,描述你做的最复杂的软件项目/作业。
代码的话加起来也许够1万行了,学过了python、java、c、mips汇编、Verilog,但是很多东西是重复的,虽然量不算大,质量上也没有什么信心。
复杂的作业必然是各个课程的课设,要说最难必然是编译的课设,做了一个c0文法编译器,实现过程中不断出现各种或是白痴问题或是难以解决的技术问题,最终虽然还有小bug,不过大部分功能还是能完成。
学线性代数和概率论的时候,你是否有过这样的疑问“我们为什么要学这么多数学,这和我们的计算机有关系吗”,你现在是否还有这样的疑问?对这个问题,你有自己的解答了吗?那么其他学科呢?
当时必然是相当的疑惑,现在没了,甚至想再学一些数学,我现在深刻认识到数学基础对于编程的重要性,能培养数学思想对于将实际问题抽象并解决有巨大帮助,而且对于算法对于建模数学就是基础中的基础,像是深度学习课上老师明说以大部分同学的数学基础去看那些模型是完全看不懂的。
第三部分:未来规划
对于你未来在IT行业的发展,你有什么样的梦想或者未来想从事什么样的工作?你准备怎样来规划你技术道路,职业道路和社会道路?
我是越来越对于未来充满迷茫,一方面是技术进步速度越来越快而自身实力相比之下实在微不足道,另一方面是去年开始不少互联网行业的公司裁员,有听说寒冬之类的描述,虽然是这么听说但是对行业内不了解又不知道如何去了解,凭这个印象就更加担忧。
对于未来的规划的话我现在只能做好自己,努力提升,像是博客2、博客3中就有很多实用的建议,而且不少建议具有相似性,比如动手实践、亲手操作这一项我越发体会到其重要性。另外比如博客3给出了具体的求职的经历,是一个很好的参考,博客4就给出了很多具体对于职业的看法。目前看来就是要多多提升自己,把路子走的宽一些,能有更多选择面最好,就像博客4说到“我们不害怕转行,害怕的是自己对自己缺乏认识,害怕的是小猫钓鱼,害怕的是一山望比一山高”,当然并不是说就不做计算机方面,我是觉得首先要有自身基础并清晰认知,这样就能有更多选择。
实习经验究竟有多重要?是否需要马上开始积累实习经验?
我认为实习经验非常重要,软件工程第一堂课老师讲到大意是很多公司并不指望刚入职的应届学生能干多少,更重要的是多久他能开始正常干活,这给我很大的启发,只要有机会我希望能越早开始实习越好。