软工第一次作业

项目 内容
这个作业属于哪个课程 2020年春季计算机学院软件工程(罗杰 任建)
这个作业的要求在哪里 第一次作业-热身
我在这个课程的目标是 提高自己的代码水平,熟悉团队合作
这个作业在哪个具体方面帮助我实现目标 找到差距,警醒鞭策,点明方向

第一部分:结缘计算机

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

    博客I中作者从初中开始便开始接触计算机,高中时身边已经聚集了一众志同道合、技术精湛的朋友。

    说来惭愧,我在小学时家里便有一台电脑,但一直到上大学前,我从未接触过计算机编程方面的内容。这台计算机一直被我用于看剧玩游戏,直到大一c程序设计上机时,我才真正意义上接触到了编程。

    在高考填报志愿时,我阴差阳错进入了北航信息大类。大一时计算机专业方向的程序设计和数据结构两门课给我留下了非常深的印象,我花费了许多时间去完成课下的编程题目。ac一道题目的成就感让我喜欢上了编程,这也促使我在专业分流时选择了计算专业。

    现在已经大三了,我也经历过了计组、OO、OS、编译技术等等的专业课,从一开始完全不懂编程到现在能完成3000行左右的代码,我认为我还是有进步的。但相比于同年级的学生,我的水平还是十分有限的。我认为我的资质并不出色,同等代码量我可能要付出比别人更多的时间。在见识了许多优秀同学高水平的代码之后,我还是觉得十分惭愧的。毫无疑问北航给我提供了足够好的条件,但我自身的发挥并不是十分出色。

    跟这些博客上的技术大牛相比,我认为我的编程水平还差得很远。博客I的作者更是让我知道了计算机领域知识的广阔,我现在所掌握的技术不过是沧海一粟,距离架构师这样的目标只能说是迈出了一小步。

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

    计算机确实是我喜欢的领域,这么多年的学习经历中,计算机是最能带给我满足感的。我十分喜欢Debug成功、题目ac、项目成功运行等带来的愉悦。在学习一些理论知识时,我不止一次感叹计算机科学系统化、工程化的魅力,我认为计算机就是数学、工程学在现实世界最好的应用。

    但有一说一,我在编程时常常遇到许多困难,让我尝尝怀疑自己到底适不适合计算机专业。但我会继续坚持,不断学习完善自己,让自己也成为别人眼中的技术大牛

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

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

    我对大学生活没有太多要吐槽的地方,只有看到其他专业、学校的同学周末游玩发的朋友圈才会感到忿忿不平:为什么我从来都没有周末!大一的时候每周周末都在做程序设计课程的练习赛,大二周末基本都奉献给了计组、OO和操作系统,大部分课下作业都要利用周末这两天的大段空白时间来完成。

    我理想中的大学教育自由度应该比北航的高,计算机专业的任务很重,学生把大量的时间投入到了课程组设计的作业之中,但是总的来说我们学到的知识还是太单一了,虽然深度够了,但是我希望能接触到更多的、前沿的知识。理想中的大学教育应该赋予学生更多的选择权,至少不会因为课程人数限制导致有些课没法上。其次像作业等等可以给学生更多的选择,也希望能有更多的自学时间。

    博客M的作者在自己的大学阶段完成了很多编译方面的工作,都是凭借着自己的兴趣找时间开发出来的。博客C的作者并非计算机专业出身,在大学阶段读了许多计算机领域的书,也取得不错的成就。就我的经验来看,北航计算机系的同学很难有如此多的时间。

    至于中国大学能不能像国外那样,我认为很容易,加大师资力量就可以。博客O中提到了美国研究生的一些课程作业,与我们的作业要求十分相似,但就这些课程的反馈来说,还是有差距的。我认为最主要的原因在于老师、助教根本忙不过来。助教本身有学业要完成,对于我们的一些问题很难及时解答。老师也有科研任务要做,投入到教学上的精力也有限。单就我们学校来说,但凡涉及到全系一起上机,服务器必炸,这也能反映出我们学校的一些问题。

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

    迄今为止我写了大概15000行代码。我做的最复杂的软件项目是编译技术的课设——类C文法的编译器。这个作业持续了一学期,从词法分析、文法分析开始,到生成中间代码、生成汇编代码再到最后的优化,一步步迭代最终完成了一个简单的编译器。这些程序的实现本身没有什么太大的难点,最主要是的理论知识的融会贯通,当完全了解了编译器如何运行时,写起来也就得心应手了。

  • 科班出身和北大青鸟有什么区别?

    科班出身更熟悉理论知识,北大青鸟更注重实践,都是在实际的工作中积累经验。我认为科班出身最大的优势就是计算机科学的素养,以及在大学教育中培养出来的学习能力。北大青鸟的程序员并没有经历过系统的训练,对计算机的理解可能不是很深刻,但他们往往有着非常丰富的工程经验。科班出身的程序员更注重“道”,北大青鸟出身的程序员更注重“术”。

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

    有过。在接触到计算机图像处理,编译原理等方面知识后,我已经没有了这样的疑问。计算机是一门科学,数学时科学的基础,学校培养人才更注重的是科研方面的人才,希望学生能在某一领域取得重大突破,所以这些基础学科十分重要。像计算机图像处理,没有一点线代知识真是寸步难行,编译技术没有离散数学的知识也是不行的。我们系要求我们修的法律、经济课也是这个道理,希望我们在将来的工作中有一定相关方面的知识,同时在程序开发时能考虑到社会经济等方面的因素,这也是一名优秀的架构师必须要考量的。

第三部分:未来规划

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

    我希望能在以后成为一名优秀的架构师,博客K的作者给了一些建议:

    从毕业开始到毕业后至少5年内,踏踏实实地专研技术。

    从毕业后3年到7年的时间,注意学习工作当中的方法以及相关的管理和流程,不但要知其然,还要知其所以然。

    在IT行业的发展离不开长期的学习积累,我目前掌握的知识还是太少,未来四年内,我的规划如下:

    1. 大四时间比较充裕,借此机会充实自己,学习更多的技术。
    2. 读研,加深专业知识,同时也能为进入企业工作做更充足的准备。
    3. 找机会进企业实习,增加自己的经验。

    目前还没有考虑好未来的职业规划。我认为首先要把自己充实起来,工作起来才能的事半功倍。

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

    我打算在企业内实习。一方面,我未来想成为一名架构师,在企业内实习无疑能够积累更多的经验;另一方面,我未来没有做科研的打算,去企业实习能够为我将来走入社会做好铺垫。

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

    看了这么多篇大佬的自述,这些大佬们都从工作中学到了很多知识,工作经验成为了他们日后寻求发展的一大倚仗。由此看来,对于一名优秀的程序员,工作经验是十分重要的,他们在工作中积累的知识是一笔财富。与此同时,这些大佬,有的人很早接触编程,有着十余年的编程经验,有的人天资聪颖,很快就在编程方面小有成就。但他们都有一个共同点——在开始工作时就已经有了非常扎实的基础。

    实习经验时大学生正式工作前最重要的工作经验来源,不可谓不重要。但与此同时,我们先要有足够扎实的基础,才能在实习中查漏补缺,更上一层楼。俗话说“基础不牢,地动山摇”,基础不能成为实习的绊脚石。

博客 链接
博客I 我的软件开发生涯 (10年开发经验总结和爆栈人生)
博客M 进入2012 -- 回顾我走过的编程之路
博客C 徐宥:掉进读书的兔子洞
博客O 分享下在美国读研期间的一些计算机课程作业
博客K 谈谈职业规划——CSDN对我的采访
原文地址:https://www.cnblogs.com/Pupil59/p/12393135.html