zoukankan      html  css  js  c++  java
  • 回顾过去,展望未来-软工热身作业

    项目 内容
    课程:北航2020春软件工程 博客园班级博客
    作业:阅读并撰写博客回答问题 第一次作业-热身!
    个人课程目标 通过这门课锻炼软件开发能力和经验,强化与他人合作的能力
    这个作业在哪个具体方面帮助我实现目标 认识自我与计算机行业
    参考文章 博客1| 博客2| 博客3| 博客4| 博客5

    第一部分 结缘计算机


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

      ​ 大学以前的理想很简单,就是要考一个好的大学,选一个好的专业。

      ​ 由于心思全部都投入到了学习中高考“必考”科目中,我在大学之前并没有接触过编程。但我还是选择了计算机专业,一方面是因为我在当时觉得写代码很好玩很有意思,而且电脑上的软件、游戏等都是通过编写代码实现的;进一步地,以后可以经常性地接触电脑;12年寒窗苦读,每天都对着书本拿着笔孜孜不倦地做题,我的内心渴望着摆脱这种枯燥无味的学习方式,期待着使用电脑完成作业,想必一定比用纸笔学习方便、轻松很多;此外,从事计算机行业步入社会以后的工作环境和薪资也不会太差:在办公室内工作,没有危险因素、薪资待遇较好;另一方面是填报志愿时考虑自己的短处,我的数学能力还不错,但是物理不太理想,我也有仔细思考过原因,可能是我对问题的建模能力比较差,因此经常会想不到如何去解答,幸运的是当时高考考的比较简单,我的物理也拿到了高分,而且计算机专业也不怎么需要物理,因此计算机专业也就纳入了我的考虑范围。浙江学子的第一志愿当然是浙江大学的计算机系,遗憾的是最终与浙大的计算机专业差了4分,来到了北航的计算机系,但我现在觉得来到北航的计算机系也是一件非常幸运的事情,来到了北航以后我也有关注浙大的计算机系的授课方式,我还是觉得北航的授课方式更加适合我,课程组非常地用心,大佬也很友好,经常分享自己的学习经验,让我学到了很多东西。

      ​ 我的条件和博客1比起来其实根本不是一个层次的,我选择了计算机,是因为我衡量了自己的长处和短处,最终得出计算机专业是最优解;而博客1的作者,让我感受到了他对计算机的从小就萌生的热爱,并且一直没有减退,他有过迷茫,有过失望,但是最终还是坚定了自己的想法,其中有一句话我很喜欢:

      生活中,往往决定方向的,不是自己,而是众说纷纭,不知所措,其实,真正的方向,是自己决定,不由别人左右。

      ​ 现在的我也是在人生的一个关键阶段,工作还是读研,身边的人都清一色地建议我继续读研深造,但是我内心却依然在抗拒回到高考那段时间般的孜孜不倦刷题做题的反复过程,我更希望进入像工作那样投入就有产出的正反馈激励,也更希望更早地进入社会,锻炼自己,但这也只是我的一个不成熟的见解而已,在自己掌握的信息还不足的情况下,作出决定是很不明智的,但我期待我以后知道足够多的信息以后,能够独立地作出自己的决定,而不是盲目地随大流,如果心里一直动摇的话,是会两面都做不好的。

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

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

      ​ 在读完博客2以后,我有一种感同身受的感觉:

      当时自己的价值观念是读书为要,一切让道,完全套用自己的高中思维来应对大学生活,最终到处碰壁。

      ​ 虽然我没有作者那么夸张的经历,但是我的损失在其他地方,反思我的大学生活到现在为止,确实也只有学习和游戏两样,对人际交往、社团活动、学生会方面并没有花心思(因为觉得浪费时间,也没有正经的兴趣),但是现在想起来,大学阶段的同学虽然关系可能没有高中那么的铁,但是大家都很优秀,是未来的宝贵资源。大学学习固然重要,但是如果不参与社团活动、与人打交道,是一个非常大的损失,更何况是在北航这样优秀的平台呢?以后做软件做开发,也不可避免地要与许多人打交道、合作,如博客4中的建议7

      不要只把心思放在技术上,技术是hard skill,只要下工夫就一定会掌握。更要注意与人沟通等为人处事的soft skill上。hard skill像一个大树的根,而soft skill则像一个大树的枝叶。树根是你的根基,能让你站得很稳,而枝叶能让你向天空伸展,获得发展。

      大学是锻炼这些能力的大好机会,但我却没有抓住,这是我需要反思的地方。

      ​ 另一方面,博客2的作者写到他的大学的学习模式时:

      我像高中阶段一样,只学习那一点点可怜的上课讲的知识,几乎不看教材、不怎么看课外资料,课后的作业基本是独立完成,却从来不是主动地思考、从各个可能的角度出发寻找到解决问题的方法,而是沿着老师讲过的固定的模式,或者寻找类似的解答方法,然后稍微变换,从而完成解答。我总是认真听老师讲课,每次上课从来不预习,从来不会计划这学期我要干什么、这堂课我要干什么,我机械地听着每一节课,机械地在迷糊中重复着作业、考试...

      ​ 我在大学的确也是大致遵循这种模式过下来的,结果就养成了不愿意花时间在课外学习的坏习惯,比如最近很热门的机器学习技术等,如果计算机学院没有开设相关的课程(事实上一定会开的),我觉得我可能就得等需要用到的时候再去学习相关内容,竞争力就大大不如别人了。

      ​ 但是我觉得,在北航的大学生活已经就是我想要的大学教育了,在理论课上,至少是教我的老师的ppt做的都很用心,把知识点揉碎,配上图让我们比较好理解;在实验课上,课程组的助教都很用心,为了维护一门高质量的好课,他们花费了许多的精力组织学习材料、设计作业,为了让我们更好地理解课程的相关内容,而且我也相信专业课的设计会变得越来越好。

      ​ 在阅读完博客3以后,我可以说我们学院的课设类课程已经做的很好了,尤其是助教们都花费了很大的心思在这些核心专业课上,博客中提到的课在北航也都有相关的课程,面向对象、Swift程序设计/iOS应用开发,模式都与国外的类似,我可以说丝毫不逊色;但只是觉得国内的教育导致学生都比较看重分数,课设给的学分与付出的努力,确实不成正比,许多学生就会有“我放弃这最后的大作业的5分去多复习其他课不好吗?”这种心态,但我觉得这就类似于打副本到boss面前,想想觉得这个boss有点困难,我不如去打其他的boss好一样,是非常可惜的;同时,课程组为了区分度,在最后的大作业设置的前提条件感觉也不是很好,可能是课程资源不足所致,我认为学生如果愿意去做,就应该尽量地多给机会。

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

      ​ 我写的代码基本上局限于课程要求,比如:

      • 大一的数据结构基础课的小程序、《走进软件》课编写的使用html+div/css完成一个小组网页
      • 大二的计算机组成课程设计、面向对象程序设计、操作系统课程设计作业
      • 大三的专业课类C文法编译器,以及使用rails框架和ruby语言完成一个小型模拟电子商城系统
      • 课外参与的游戏mod的开发

      这些代码加起来可以达到万级,但我觉得还是远远不够,编程就是一个通过编写代码不断锻炼自己的过程,写的代码越多,越可以产生质的变化,提高自己的编程水平。

      ​ 我做的最复杂的(硬件)项目我觉得是计组课设开发的CPU,当时我完成了所有的project,用verilog语言实现了支持异常与中断和基本mips指令,可以在FPGA上运行的流水线CPU,尽管没有什么算法上的难度,但在编码的过程中对我的整体思维能力和debug能力有很大的提升,也学到了很多的思想与设计方法。

      ​ 软件项目最复杂的项目应该就是类C文法的编译器了,尽管思维和方法都是依照课本上推荐的来,但是在优化这一块还是需要自己努力的。遗憾的是,我在一开始编写编译器的时候就没有把整个项目的框架设计好,直接上手写,基本上就是在前一次作业的基础上往里面继续塞东西,词法分析一个文件,语法分析、错误处理、翻译文法一个文件(到这里几个文件已经快2000行了),好在优化是针对中间代码的优化,可以和之前实现翻译文法的代码独立,因此也算是勉强可以完成课程的要求,但是结构过于臃肿,从软件的角度来说,这是很糟糕的,我也希望在软件工程这门课中能学到更多代码管理的知识,让自己的项目变得好看起来。

    第三部分 未来规划

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

      ​ 对于未来,我的想法非常地简单,就是找到一份好工作,打下好的基础,但是现在看到实习招聘的简历上要求都比较高,就有一种差距感。现在招实习的公司似乎都非常注重机器学习、大数据这块的前沿技术,但我对这方面的技术认识还是有很多欠缺的地方,还需要进一步去提升自己。个人未来想从事后台开发的岗位,比如Java,但现在我正处于一个不断尝试的阶段,还没有能完全确定自己适合哪个方向或者对哪个方向很感兴趣,如博客4所言:

      职业规划就像软件工程,我们要一开始就确定好自己的“需求”,只有需求确定以后,才谈得上个人的职业设计的HLD(High Level Design)和LLD(Low Leave Design),以及具体实现。此后随着自身的日益成熟,可以随时为自己的Bug打补丁(Patch)改进自己的职业生涯的设计和实施细则(Enhancement),并为自己加上更多更强的能力(New Feature Requirement)。最终达到软件版本的升级。

      博客5告诉我们,第一重要的是兴趣,也是成功的必要条件。为了确定好自己的需求,我在大学阶段就需要不断地尝试技术,最终才能找到自己感兴趣的工作和岗位。

  • 相关阅读:
    centos7配置vsftpd
    vsftpd上传文件出现553 Could not create file错误解决方法
    mysql表引擎myisam改为innodb
    python字符串
    linux虚拟机设置本地yum源
    python3读取excel数据
    expect远程登录服务器并执行命令
    sed中支持变量的处理方法
    test
    test
  • 原文地址:https://www.cnblogs.com/bakahentai/p/12376177.html
Copyright © 2011-2022 走看看