第一部分:结缘计算机
1.你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?
我选择计算机专业真的是一个很多方面因素共同作用的结果。记得很小的时候(甚至我还没有上小学),我的邻居家就买了电脑,因为要好的关系,经常一起去他们家玩。当时我就觉得电脑真的是一件神奇的东西,它能够将很多神奇的,你平时看不到的东西移到你的面前。当时其实并不明白是怎么做到的,但是真得觉得特别神奇。虽然并没有像很多名人传记中所写的那样,从此沉迷其中,最后成为一代大牛,但是不得不说,很早地接触电脑至少让我心中有了对计算机感兴趣的种子,对他有一种多年以来所培养出来的熟悉感。
虽然很早就接触了电脑,但我真正开始接触到能够“改变“电脑中的东西就已经是初中了,但也不是什么高大上的东西,是当时微机老师叫着我们用visual basic,当时真的感觉对天天玩的电脑有了更深的,质变一样的了解上的改变,认为自己能够让自己的电脑在自己的编写下有所改变了,哪怕只是一个简单的弹窗,也着实让我十分兴奋。
随着慢慢长大,对计算机了解的逐渐增多,慢慢感受到了它在我们生活中所发挥的巨大作用,在现在这个时代,不管是衣食住行还是整个社会的更加深入的各个部分,几乎没有什么东西能够真正离得开计算机,而计算机作为人们发明出来的一种工具,也确实证明了自身在这个时代的实用性和便捷性。而现在的情况是,计算机活跃在社会的各个方面,人们对其功能的需求不断更新,而深入了解计算机(包括编程、系统、应用等方面)的人又并不足以满足整个社会的需求,所以计算机这个专业特别适应时代,又走在时代前沿的专业,而且它的潜力真的无比巨大,一眼望不到边际,没有人能断言计算机的发展止步到哪里,程序员真的是能够改变世界的(像我这种中二的人真的想改变世界,让它更加美好)。
童年的兴趣,后来的了解,时代的趋势,再加上最后高考成绩正好和北航的计算机专业相符,最后我当然选择了计算机专业啊。
对于自身的条件而言,我其实属于那种条件比较好却没有及时把握的人。很早就接触电脑,虽然有一定的自学能力,但却没想过对它深入的学习了解一下实在是一件比较遗憾的事情。我是到了高考之后的暑假才简单地从网上学习了一些计算机专业的简单知识,学习了一点基础的C语言编程,上大学基本上相当于零基础了。和那些博主相比,博主们都是在比较早的时候就接触到编程和专业知识的学习,而且博主们真的是热爱这份事业,甚至是挚爱,自认为无论是在知识层面还是在热情方面都是逊色于他们的,但是认识到差距才更加要努力,在努力下总会越来越好的。
2.计算机是你喜欢的领域吗?是你擅长的领域吗?
毫无疑问我是喜欢计算机的,无论是从小时候的接触还是后来的了解都是这样,至于擅长真的算不上,两年以来虽然最后的评测方面还能够过得去,但是每次上课或者编程真的还能发现自己有很多很多不懂的问题,不理解的错误,乃至巨大的误区,但是一天天的学下去,总有一天我会变得比现在擅长的,加油!
3.你热爱这一专业吗?你对计算机的热爱是怎样的?仅仅是口头的吗?
当然热爱啊,感觉计算机专业最好的一句话就是:未来是光明的,过程是曲折的。 的确很多专业课挺难的,也不是很好入门,一些编程作业也是非常复杂的,写的时候真的特别费心费力,还会出现各种各样奇怪的错误,但当你一点一点静下心来去找错误,去阅读代码,看着你的程序一点点功能完善,变得健壮,最后成为一个你开始都想不到能做出来的作品,成就感真是难以言表的。
第二部分:在计算机系里学习
1.你对你的大学生活有什么想要吐槽的地方吗?你理想的大学教育应该是什么样子的?跟学校给你的有什么区别?比较你在中国大学的经历,你的老师和学校能做到和国外那样吗?如果不能,请分析一下为什么。
我的大学生活总体而言还是比较令人满意的,虽然课程有些比较难,但却是在一步步学习中学到了真正属于自己的东西,在一次次的动手实践中对知识有了更好的了解。在我的想法中,大学应该是一个通过培养和引导找到未来的方向和自身的热爱的场所,这个过程应该是充实而且有明确的脚踏实地的感觉,做到这一点就需要有一套循序渐进的体系以及开放自主的教学氛围。在实际中还是有一些区别的,课程中学生参与的部分仍然比较“传统”,在课程上自主探索的部分仍然少了一些。其实这也不难理解,毕竟这种教育体系已经持续了很多年,而且一个大的教育体系一定是一以贯之的,在十二年应试之后,让我们一下子完全适应自主探索,而讲师只进行适当引导的方式也是不太现实的,但是就就职以后或者踏入研究工作之后并没有一个人会方方面面手把手地教,还是建议能够加强引导和集体讨论在学习中的比例,也是为以后打下一个较好的基础。其次,我更希望能够像[博客O](https://zhuanlan.zhihu.com/p/20610349)中的教学模式那样,能够将整个学习思路体系化,不要像赶进度一样完成孤立的一门课,而是能够分析这门课与其他课程在知识和逻辑上的联系,使得大学整体的学习体系更加地连贯,同时通过适当的练习将其巩固下来,但在前两年的学习中,我发现很多课程似乎是“孤立化”的,当然事实上并不是这样,他们是有内在的联系的,但这种联系往往是隐性的,不明显的,而我们考虑又很难站在一个比较高的位置全局考虑,就导致了有一些割裂的感觉,如果老师们能就学过的课程与本门课的内在联系和思维方式进行分析,也许效果会更好一些。
2.迄今为止,你写了多少代码,描述你做的最复杂的软件项目/作业。
到现在为止,大概写了有1-2w行代码了吧,包括大一大二各门课的作业以及冯如杯项目和ccf竞赛的练习和考试等。到目前为止应该最复杂的代码程序还是oo课上的出租车项目吧,100辆出租车完成闲逛,接单,等待,前往目的地的工作,设计最优路径的选择以及多个乘客多个出租车的竞争接单。在实现上主要是解决多线程协同工作的问题,还是有一定难度的。
3.科班出身和北大青鸟有什么区别?
大概相当于自然科学及其应用的关系吧,科班出身学习的就像自然科学以及从他身上所延伸出的简单应用,在以后工作的时候立足的是自然科学的知识,来完成自己所要实现的项目,总体上而言系统全面很多,而且因为学习的内容并不仅仅是针对立刻投入工作的应用方面,潜力更强一些,是可能有所创新和写出原本没有深入了解但是有所涉及的内容的。像北大青鸟就很面向应用了,几乎是在学习一件工具的应用而不是它的原理到应用,在知识面上就会显得欠缺一些,由此也会导致在拓展性上不如科班出身的人员。简单想也是,从技能培训班进行几个月的编程培训(也仅仅是面向编程工作的一些内容),与正规大学从发展历程,到相关的数学知识,到编程,到拓展应用还是有比较大的差距的,就像用筷子,北大青鸟更接近于教你如何用,而科班出身则从它的材质,支点原理到如何省力都有一个介绍,这样你下次从头接触撬棍是不是要比只学过用筷子的人要简单许多呢?
4.学线性代数和概率论的时候,你是否有过这样的疑问“我们为什么要学这么多数学,这和我们的计算机有关系吗”,你现在是否还有这样的疑问?对这个问题,你有自己的解答了吗?那么其他学科呢?
当时肯定有这种疑问啊,大一上的时候一度以为自己上的是数学系,感觉以后应该一直是打代码啊,有必要学这么多数学么?在一步步走来现在稍微对这个问题有了一点点自己的看法,数学和计算机都是很逻辑性的东西,对于计算机专业来说,一个解决问题的正确逻辑是很重要的,而数学是培养这一素质的非常好的工具,数学能够帮我们培养这种思维,其次,在计算机专业中离不开算法这种东西,而算法本质上是数学的,理性的,不学好相关的数学很难从无到有研究出一种算法,而数学的多样性也能为我们的算法改进提供很多的思路,所以数学对于计算机是不可或缺的。其他学科其实和数学一样,在某些方面都是对计算机有所帮助的。就像很多导论中的发展史,一步步了解才能对未来的发展有所展望,而不是简单的历史知识,所以看待某个学科不要过于短视,真的要从整体,长远来看,看似无用或者联系不大的学科可能对于一个人逻辑,思想乃至以后的知识储备都是一个很好的引导,所以踏下心来学习每一门课还是很有必要的,就像 [Scalers](http://www.scalerstalk.com/816-attention)所说的那样,课程有用没用不是我们现在能够轻易下定论的。
第三部分:未来规划
1.对于你未来在IT行业的发展,你有什么样的梦想或者未来想从事什么样的工作?你准备怎样来规划你技术道路,职业道路和社会道路?你对于实现自己的梦想已经做了或者计划做什么样的准备?
希望从事软件开发的架构师或者从事机器学习方面的研究工作。这两个目标都是不容易的,前者不仅需要强大的编程能力,还需要从中总结出相应的思路和架构,需要高屋建瓴的眼光和思维,同时下需要对大量的程序结构比较深入的了解。而后者是当前比较热门的话题,在精细的程度和学习的深入程度其实还有所欠缺,要达到以上的任何一个目标都要多看书,多写代码,像[博客c](https://book.douban.com/subject/4006425/discussion/22802960/)那样能够对这一本比较好的编程书所有实例都手打一遍,真的会有一个非常大的提高,对程序也会有更深入的了解。
2.你们马上就要面临实习了,你打算在企业内实习还是在实验室实习?
如果有机会的话两者都是可以的,企业内就更面向应用和实际问题一些,实验室更倾向于知识的积累。我个人而言请倾向于在实验室,因为个人知识还没有积累到一定的程度,现在的主要任务仍然应该是积累必要的技巧和编程经验,直接面向企业的就业还是略微早了一些,那个部分可以等到大四或者研究生期间,必要的知识积累完成之后再去面向企业,因为企业所需要准备的不仅仅是知识方面,还有交际、客户交流、成本等更多方面的需求。
3.实习经验究竟有多重要?是否需要马上开始积累实习经验?
实习经验肯定是很重要的,因为只有知识没有实际工作中的应用几乎就相当于空谈了,而且真正的实习除了专业追评之外还需要对个人心理上以及加入集体工作做一个准备,和学校的学习还是有比较大的区别的,而这些也是我们未来工作所需要面对的。但也不是立刻就要开始实习,当下还是主要应该积累必要的编程知识和思维,专注是很重要的,在实习前还是要做好充分的知识储备,让自己有一个比较高的专业水准,毕竟好饭不怕晚,那为什么不准备好以最好的姿态去进行呢?