撰写本博客时,笔者正就读北航计算机系大三下的软件工程课程。借由此次博客做业的机会,笔者从高考时与计算机专业结缘、大学对计算机的学习以及对将来的计划三方面进行了些许思考。
如下附上相关的信息:html
Tips | Link |
---|---|
课程连接 | 2019春季计算机学院软件工程(罗杰)(北京航空航天大学) |
博客做业链接 | [2019BUAA软工助教]第0次我的做业 |
实验做业连接 | [2019BUAA软工助教]第0次代码做业 |
实验结果连接 | [2019BUAA软工]第0次代码做业 |
本身的课程目标 | 系统学习软件开发理论和流程,经过实践积累软件开发经验 |
本博客的收获 | 静下心来总结了一下本身,对之后的规划更清晰了 |
高考成绩刚刚公布的时候,我对本身取得的成绩是十分满意的(远远高于我平时的成绩)。有了比较好的成绩,对于学校和专业就有了更多的选择。当时结合本身的兴趣和成绩,再在网上查找了许多的资料,我对于计算机系、数学系等专业有了必定的想法。最初接触到计算机专业正是在查找各个专业的信息的时候,在此以前因为忙于高中课内的学习,我对于计算机专业没有任何的了解,在计算机的使用上仍停留在用用PPT、打打游戏的层面。在对计算机专业的内涵以及前景进行了必定的搜索研究以后,我很快地对于真正的计算机专业产生了浓厚的兴趣,认为从此计算机专业拥有巨大的发展前景,但愿在大学更加系统地学习计算机知识。所以,在最后提交的志愿中,我清一色地选择了各个计算机专业较强的学校,并依靠着高考优异的成绩来到了北航。
最初对于清一色地选择计算机专业,我本身是有着很大的顾虑的。最主要的就是我当时几乎没有在计算机方面的知识铺垫,再加上从周围各方渠道了解到的计算机专业的学习压力至关大等消息。我在最后作出决定时是下了至关大的觉悟的。(上大学后才发现身边有许多人也是从零开始)
在这些博主中有在上大学前就解除了计算机专业的,也有像我同样从进入大学才开始学习的。我自身的条件比不上许多博主,但北航的学习条件是因为不少博主曾经的条件的。前端
最初选择的计算机专业时我是出于本身对计算机领域的好奇之心。也许当时多是一时的冲动让我投身于这个显然十分艰苦的道路。但在通过了两年的学习,在此期间我经历了计算机组成原理、操做系统等硬核的计算机基础课的洗礼后,我仍以为当时我作出的选择是正确的。我不能说是擅长计算机专业,由于我接触它才仅仅两年半,对于如何高效地学习该领域各方面地知识我才刚刚有些头绪。在最初的一年中,因为我对实践在计算机专业中的重要性缺少重视,致使我在大二各个实验开展时遇到了种种困难。今后以后我才逐渐开始了在在编写代码方面的增强,在认真完成课程任务的同时对于本身提出更高的要求(虽然通常是达不到的),积极地向身边擅长的同窗请教经验。尽管我真正的编程起步较晚,但通过了一年多的亡羊补牢,我也逐渐走上了正轨。通过了并不平静的两年半,在克服了许多学习上的困难后,我也算是有了很多的收获。克服一次次困难后所带来的知足感让我从最初的好奇逐渐变成了喜好。git
热爱的定义有不少,若是按照博客R中的例子做为标准的话,我对计算机专业的热爱程度可能还相差较远。现在,我在计算机专业的学习仍处于开荒期,本身在计算机专业上的知识积淀还不足,以本身的能力勉强能完成课内的实验。至于我对计算机的热爱更多的是体如今每次都尽可能给本身提出更高的要求,在计算机的学习上挑战本身,在课内的要求以外让本身学习更多的相关知识与技术。程序员
大学生活用一个字来总结就是——忙。感受以前的大学生活几乎就是在忙碌中度过的。大一忙于各个基础课,忙于适应大学生活;大二忙于各个实验以及其余的事务。事情每每是接踵而至,甚至在你还没完成前一个任务时,后一个任务就接踵而来。这使得我常在一些事情上出现有始无终的状况。我理想的学习状态应当是可以单独完整地完成一件任务后(包括反思和总结)在开始投入到下一个任务当中去,固然这在现实中也是很难实现的。可以“多线程”地完成工做学习上的各类事务是必须拥有的能力。
如今我所处的大学环境已经基本和我理想中的大学教育符合:北航为我提供了多样的计算机专业课程以及学习资源。惟一让人不满的可能就是其中的一些选课要求了。我不否定全方面发展是大学生须要达到的,但就我的而言在一些跨领域的学习要求有些过于赘余,在此就不展开。
我对于国外计算机专业的教学方式了解并很少,但经过本身一直以来的一些认识并阅读了博客以后,我以为若要求咱们的老师和学校作到和国外的同样是存在必定的困难的。最主要的缘由就是教育资源的问题。就我这一届来讲,若是要让全系三百号人都接受国外那样的教育显然是不现实的。可是咱们学校的计算机课程的开展方式能够将国外课程的核心与实际状况相结合,造成本身的教学方式。国外计算机专业的教育方式更加注重的是实践和应用能力,而个人学校已经有许多至关注重学生实践能力的实验型课程,例如计算机组成原理实验、操做系统实验、编译系统原理实验等。面试
至今为止,我大约写了近2万行代码,其中主要是计算机组成实验、操做系统实验、面向对象课程设计系列程序、编译原理实验、数据结构课程相关代码以及其余工程的代码,涵盖了C、Java、JS、Python、Verilog等语言。其中最复杂的项目应当是编译原理实验中的“类C语言编译器”。因为我是选择使用C语言编写的编译器,相交使用C++编写,我须要使用更多的代码来维护编译器中的各类数据结构以及实现相应的逻辑(而C++则可以使用不少类库以及面向对象等来简化)。此外,不一样于计算机组成实验中编写CPU时有着详细的指导以及算法说明,在编译原理实验中须要基于课本内基础的理论从程序顶层的设计,到各个模块的划分,再到底层各功能的实现都要求本身有着比较明确的思路,以及最后在优化算法实现的部分也对以前完成的原始编译器的可延展性提出了较大的挑战。
除编译原理实验以外,在同一时期完成安卓应用开发项目一样令我印象深入(即便从复杂度角度上来看不如编译原理实验)。当时我计划开发的是安卓平台上的一个游戏助手(项目链接)。在此期间,我基本算是自学了安卓开发的基本原理,并自主设计并完成了应用前端交互界面以及先后端交互逻辑。正是在这时候,我接触到了行业中有如MVC框架、MVP框架等课内不曾见过的新概念,并尝试将其实践于应用之中。这让我由衷地感到自身知识量的不足,并驱使我开始了解更多的前沿的知识。算法
科班出身的学生所掌握的更多的应该是学习方法、研究方法。职业学校以及培训班出身的学生掌握的更多的应是职业技能。打个比方,科班出身的学生学到的应当是为解决问题不断寻找资源、学习各类技能的能力,注重解决问题的能力以及对于深层思想的掌握;职业学校出身的学生所会的是更好更熟练的某种技术来解决问题,注重对某种技术掌握的熟练度以及应用能力。编程
这三者创建的目的以及面向的对象有着巨大区别。速成的培训班成立的目的更多在于为其学员解决眼前的技术问题,其面向的对象有临时学习技能的人,有为学习完成某个项目所需技术的人等等。
有关于博客E中所讲:后端
或许,我我的的经历也不足以表明通常性。而我依然仍是痛恨培训学校。 由于他们会教学生简历造假。 会教学生投机取巧。 会教学生“如何开发项目”。 然而,那些项目经验,几乎一文不值。 甚至不如一些学生在寝室里写出来的没有界面的小DEMO。
我以为一个正常的程序员,是不该该去参加培训的。更况且,培训真的没有什么用。 多半都是想走捷径,坐享其成。 而若要好好走好职业道路。 在走出大学校门的那一刻,应该学会自我成长,自我完善。数组
我是表示部分赞同的。大学教育更多在于思想、方法等更为基础的内容,每每没法在短时间带来效益,但从长远的角度来看,这些是发展的基石。于此同时,我也不否定速成的培训班的重要性。就计算机专业而言,课内的知识量是彻底不够的,当在完成一些项目(甚至是课内的实验)的时候,须要咱们在短期内寻找、学习并联系有用的技术来实现相应的功能。远水解不了近渴,此时,参加培训班就成为了较好的选择。何况计算机专业的知识之普遍是难以所有掌握的(最多达到涉猎的底部)。时常会出现知识量不够须要对相应的技能进行“抢救式”的补充的状况,这也是网络上一些培训班存在的意义。可是培训班每每采起的是填充式的教学,丧失了大学教育中启发式的元素。若仅专一于眼前技能的“抢救”,而忽略基础思想与方法的掌握,不免会本末倒置,弊端也迅速地暴露。就如同博客F中博主的经历同样:网络
我跟着也回宿舍学习几回,慢慢的天气变冷了,宿舍特别冷,学校也特别冷,只看视频,不怎么作练习,发现到后面前面的东西又忘记了,而后就回头学,效率低下来,这个时候开始学winform,学习作视频上的练习,winfrom虽然简单,可是要作个和视频上同样的练习项目仍是挺花费时间的,可能一节课,把练习作完须要两三天才行,当时没有这样学习过,其实我一直都没有培养出好的学习方法,之前学习都是上课45分钟,做业几十分钟搞定了,而后下一课。这个时候学一课须要作的练习时间很是长,而后本身就 把握很差,进进退退,企图把平台的知识学完,经常倒回去看多态,抽象类,接口,索引器,委托,二维数组,这些难点。而后几天一周下来,不知道本身搞到哪了,彷佛这一周什么都没学会,如今看来是人在学习时经常高估本身的能力,编程不是高中背书,不是作数学化学题,它是技能,是须要大量练习和长时间实验感悟的。
我也曾在培训学习过一些课程,主要是出于现实须要的因素要快速运用到一些项目中。短期的学习让我可以比较熟练地使用这些技能,但本身对于自身到底学了什么却没有什么实感。完成项目后随着时间推移,又开始忙于其余事情,这些知识很快就淡忘了。
至于mooc,以中国大学mooc和国外的coursera为表明,其中大多为大学将课程移至线上。在保证了大学教育的精髓的同时,又可以知足学习时间灵活的需求,可让咱们接受更多不一样大学的不一样课程,使学习的内容更多样。
在学习这些基础课程之初,我是存在这样的疑惑的。但通过一段时间的学习,这些疑惑也逐渐消除了。计算机技术归结到最底层每每与算法与数学密切相关。好比计算机图形学的基础理论与线性代数有关,大数据分析的基础与几率论和数理统计有关等等。
就我我的而言,按照博客I中的技术栈的分类标准,我但愿向系统架构的方向发展。至于前端仍是后端,我尚未明确的想法。目前来看我对于这些部分都有学习也都有较高的兴趣。我将来的规划应当和不少的同窗类似,大体以下:
2019年,在学习课内知识之余,全力进行考研的准备,计划报考北航的计算机专业。在课余的时候完善计算机的基础技能和知识的学习,尝试参加一些企业的面试,进入企业进行实习。
长远的看,不管是否顺利考入研究生,在近十年的计划即是不断的强化自身的计算机专业的实践能力,尽可能向现在前沿的理论和技术学习。在这个阶段中,经过不断学习,逐渐在庞大计算机领域中寻找本身真正属于的部分。
大家立刻就要面临实习了,你打算在企业内实习仍是在实验室实习?
我更加但愿前往企业中实习,主要是由于经过在企业中实习可以切身体验当前IT行业的现实环境。但这可能会须要更多的时间和精力。
实习经验固然重要。在平时学习了知识归结到最后就是要落地于实践。可是否须要立刻开始积累实习经验这一问题的答案因人而异。就我我的而言,因为大学前并无计算机专业的基础,在大学学习期间,须要投入比较多的精力来完成课内的任务。为保证课内学习的质量,我在此以前并无进行实习。但现现在大学学习渐入尾声,也是到了将知识实践落地的时候,我也计划开始积累实习经验。