第一部分:结缘计算机
1. 你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?
我在上大学之前,其实一直就没怎么考虑过自己以后想要选什么专业,只知道一个大致的方向一定是理工科。毕竟大学之前,只有一个目标,那就是高考嘛,高考之前,一切都是虚的。考完以后,面对自己不上不下的分数,照往年的资料胡乱圈了几个学校,就开始面对五花八门的专业发愁了,物理,电子,生物,化学,看起来都挺有意思的(因为自己高中的时候数理化竞赛都搞过一点)。忽然瞄到七个字:“计算机科学与技术”,心想,要不就选计算机吧,听起来酷酷的,整天摆弄一些别人都不懂的东西。
然而,父母并不这么认为:“医生多好,计算机有什么好,整天趴在电脑前,身子都搞坏了balabala。”那么问题来了,我选什么专业呢?由于两派分歧,我选了看上去更厉害的“高等工程学院”,号称大二可以随便选专业。父母觉得我这样的话大一可以先体验体验看自己到底喜欢什么,大二再选不迟嘛。我心里想的是,我大二再选计算机不就好了吗(哈哈哈)。于是我就这么在大二进了计算机的门(过程艰辛)。
说到这里,我的条件基本可以用三个字概括了吧,零基础。相比一些博主高中乃至初中就开始自学编程,各种技术,参加竞赛,我的中学时代淹没在数理化的泥淖中。除了大一的时候学了C语言,大二才算进了门,也就是说只有一年多的入门时间,可以说是非常不友善了。但就算是在科班,我也意识到,在计算机专业,光靠上课是不能学到所有知识的,自学是必修中的必修课。所以相比于各位大神博主,路漫漫其修远兮。
2. 计算机是你喜欢的领域,是你擅长的领域吗?
上一个问题的答案已经陈述了我学计算机的缘由,对于目前进门一年的小白我来说,可能谈不上喜欢不喜欢吧,但是觉得挺有意思的,虽然有时候也会觉得枯燥,觉得难,比如上上学期上计组的时候,面对自己写的CPU,完全找不到bug的时候,对着MIPS汇编一条一条执行,比如上学期学操作系统的时候,补内存管理的各种函数的时候,各种无助,再比如上学期期末算法分析考试的时候,一度怀疑自己的智商够不够学计算机。但是,同样的,我也同样在这些课程中学到了许多,在上完这些课的时候,可以说心里没有半点不乐意,这可能不算喜欢,但也不算讨厌吧。
3. 你热爱这一专业吗?你对计算机的热爱是怎样的?仅仅是口头的吗?
热爱这个词,比上一个问题的喜欢更进一步了,大约上升到奉献一生的程度了,但是正如文章P所言,别轻易说,我热爱编程,热爱学习。其实绝大多数人都不敢说自己对自己的专业有多么热爱,更多的是一种责任和压力迫使自己去保持热情,去“热爱”这样一个事业,毕竟,当兴趣爱好上升到工作,就不再是兴趣爱好了。所以我不敢说我对计算机这个专业热爱与否,我只能说我在这个专业,会努力把它学好,这是对自己的选择负责。
第二部分:在计算机系学习
1. 你对你的大学生活有什么想要吐槽的地方吗?你理想的大学教育应该是什么样子的?跟学校给你的有什么区别?比较你在中国大学的经历,你的老师和学校能做到和国外那样吗?如果不能,请分析一下为什么。
要吐槽的大概就是前两年的沙河生活吧,交通不便,地域偏远,学校没有很有趣的娱乐活动,导员和系领导对我们的教育就是多刷题,好好学习,没有有趣的人文的活动,博雅课堂也是无聊多于有趣,很大程度上是在应付。说到理想的大学教育,大概就是风趣幽默的教授,志同道合的同学,以及轻松自由的氛围吧。对比前两年的大学生活,我觉得第一年的数理基础课的老师(特别是数分高代)配得上风趣幽默吧,计组的GXP老师也很NICE啦,但是也有的老师属于念PPT的,我不能说这样的老师不认真,很水,因为他可能能力很强,也是很认真的在读PPT,但是依然是在读PPT呀 = =
不得不说,我们学校(北航)的一些课程正在努力和国际接轨,比如计组,操作系统,算法,都在学习国外的教学模式,且确实很有水平。但是依然有很大一部分课程属于中国计算机教育的糟粕之类的,考试水,教的水,几乎没有练习和实践(例如高工开的数据结构?)。虽然相比国内很多其他学校的计算机专业(一直到毕业都没写几行代码的),北航已经很不错了,但是距离国际一流仍然是很远的,毕竟国外计算机教育的发展,计算机技术水平整体早于也领先于国内。我相信随着进一步课程的改革,北航会越来越好的。
2. 迄今为止,你写了多少代码,描述你做的最复杂的软件项目/作业。
很惭愧,大概只有几千行,和大佬们有明显的差距,组成大概是C语言作业,计组用Verilog语言写CPU,算法大作业写送餐问题,以及自己零碎刷LeetCode。盘点下来最复杂的大概是CPU吧,犹记得当时为了一个很傻的BUG焦头烂额的样子,其次就是小组合作写算法大作业,虽然是很简单无脑的算法,但是面对一个不那么简单的问题,就算写简单的算法也是很难理清思路,当时也是很痛苦地整合小伙伴们的代码。
3. 科班出身和北大青鸟有什么区别?
区别在于基础,也就是关于计算机的基本素养,体现在一些计算机的基础课,比如操作系统,计算机组成,数据结构,算法之类上。北大青鸟之类的必然是以就业为导向,学习一些基本的技术,而并不care背后的原理。他们的懂的技术多,不想科班出身的大学生进入企业后还要自学很多东西,相对的,他们可能学得没有科班出身的快。当然,这只是我的一面之辞,因为并没有切身体会过。
4. 速成的培训班和打基础的大学教育还有mooc之间有区别吗?
培训班类似上一个问题,忽视基础教育,学生可能缺乏学习能力(当然不排除也有强大的),mooc是现代传统大学教育的很好的补充,当你觉得正在上的某门课很差,学不懂,可以通过mooc看看其他大学,其他老师是怎么教的,有的mooc更是远远强于自己所在大学的课程。
5. 学线性代数和概率论的时候,你是否有过这样的疑问“我们为什么要学这么多数学,这和我们的计算机有关系吗”,你现在是否还有这样的疑问?对这个问题,你有自己的解答了吗?那么其他学科呢?
现在已经有了解答,这些数理课程是在为更高层次的课程内容打理论基础,比如随机算法复杂度,机器学习等。
第三部分:未来规划
1. 对于你未来在IT行业的发展,你有什么样的梦想或者未来想从事什么样的工作?你准备怎样来规划你技术道路,职业道路和社会道路?
看了博客K,作者强调先踏踏实实牢固技术能力,进行积累,但技术不是主要的,同时要学做人,学做事,学习使用技术实现具体的需求。对于现在的我来说,职业规划还是个暂时比较虚幻的问题,需要一些实习了解一下,看自己的胃口所在吧。不出意外的话,将来会先是一个技术职位的吧。
2. 实习经验究竟有多重要?是否需要马上开始积累实习经验?
实习经验毫无疑问是很重要的,正如上一个回答所言,实习可以让一个小白快速的了解工业界的运作模式,通俗点说,就是大家都在干什么,怎么干,要学什么,会什么。博客M建议道,对于技术职位,准备得越早越好,越充分越好,其实实习也是一个准备的过程,一个经验的积累,同时很多职位对于实习经验也是有加分和要求的,我计划大三下或是暑假实习。但同时,实习经验也不是神乎其神的“我有***的实习经历,所以我拿到了****的offer“,更多的是从一个人的各种经历中看出他的能力水平,不仅限于单纯的实习,很多大牛能够自己完成很多小项目,这也是个人能力的体现,和实习孰轻孰重呢?其实一切以能力导向为准才对。