第一部分:结缘计算机
1.你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢?
我选择计算机专业的原因按照权重来排,主要有下面三点:
- 高考成绩确定学校选择,学校选择确定专业选择。我的高考成绩决定了我可以选择北航,南开,同济,上财,或者家乡的西交。由于我一直向往北京,而且由于父亲的工作原因(后文会说),对航空航天有好感,因此选择北航。而我的分数在选择专业时有着较大优势。对应计算机系的录取位次。
- 喜欢数理,心仪工科。高中阶段,我在物理和数学方面有较高的学习热情,与计算机专业要求的基本能力符合得不错。其次,我从小就希望能够“做一些东西”,因此倾向工科。而计算机相对其它专业,“自己做一个东西”的难度相对较低(写代码就好)(不过这是那时的想法orz)。
- 父亲的影响。我爸爸在中航工业从事计算机相关的岗位,我也正是由此对航空航天感兴趣。更重要的是,他很喜欢自己的工作,虽然成长过程里,我没有被刻意进行过这方面的启发,但是我对计算机行业的认知,多多少少比其它工科多一些。同时,在报考志愿过程里,爸爸也大力推荐我选择计算机专业。
选择本专业,我有着优势,但是也有很明显的不足。我的优势主要在于性格与思维方式。我性格开朗而好奇,对新鲜事物始终有着高涨热情,也喜欢与周围人打交道,而这个特质对我未来的职业发展可能产生正面的作用。在思维习惯上,得益于高中阶段的数理竞赛经历,我思维活跃,且具备较强的逻辑能力。不过,在具体技能方面,我有着一定的劣势。我是“零基础”进入计算机专业的。很有意思的是,高中时数理化生竞赛均有涉足且有所斩获的我,唯独没有参与过信息竞赛,而最终却来到了计算机专业。。。我不但没有接触过任何一种编程语言,甚至在大学前对电脑的使用与了解也和多数同学一样。
这项劣势,在涉及专业核心技能的一些课程上尤其明显和突出。比如说,在《数据结构》这门课上,在我学习C语言相关特性时,很多同学已经可以熟练运用高级数据结构实现复杂算法了;在《计算机组成》和《操作系统》课上,很多我需要专门去了解学习的知识,但对于不少同学来说可能已经算是常识;在《面向对象》课中,我仍在逐步适应Java开发时,很多同学早已在用专业的测试工具挑我的作业里面的bug。。。
至于和博客里面的不少大佬比,那我真是弗如远甚。博客I[1]的作者初三时便开始整夜捣鼓电脑,高中时热火朝天地和同伴进行编程竞赛,在他高考后甫入英语系时,实际的软件能力应该不输很多计算机系的高年级学生;博客M[2]的作者,现在成天带着别人逛知乎的“轮子哥”,在初二时便开始学习编程,作为大一新生时就能写Pascal的解释器和脚本引擎。和他们相比,我的专业基础真的太弱太弱了。
2.计算机是你喜欢的领域吗?是你擅长的领域吗?
计算机是我喜欢的一个领域,因为我确实可以利用它,完成很多非常酷的事情,避免很多无谓劳动,而又无需付出大的物质成本。与大多数非本专业的同学相比,这是我擅长的领域。我也常常在这方面为他们提供有偿或者无偿的帮助。但是,如果想要走上职业道路,我目前的本事差得太远太远。甚至,与同学院同年级的很多同学相比,我都远远谈不上擅长。
3.你热爱这一专业吗?你对计算机的热爱是怎样的?仅仅是口头的吗?
我不能说自己热爱这个专业。因为“热爱”是对某件事物有远超其它的兴趣,但是如我在上题所说,计算机只是我喜爱的领域之一。不过如果我想要真正取得进步,我必须努力想着“热爱”这个层次发展。
第二部分:在计算机系里学习
1.你对你的大学生活有什么想要吐槽的地方吗?你理想的大学教育应该是什么样子的?跟学校给你的有什么区别?比较你在中国大学的经历,你的老师和学校能做到和国外那样吗?如果不能,请分析一下为什么。
我对大学生活吐槽的地方有三点。首先,很多的老师授课时,无法有效引起我的兴趣。虽然就像博客D[3]里面说的,计算机专业自学非常重要。但是,既然我花了时间到教室听课,肯定期望获得更多实际的收获。如果老师的授课并不能起到这种效果,那么我为什么要去听课?其次,学校与学院提供的与职业规划相关的信息还是不够多,具体表现在与工业界的联系不够紧密。不过随着来到学院路校区,由于地理位置上面具有一定优势,我们自己可以去寻找这样的机会,因此这一点将得到较大的改观。最后,就是同学之间的关系不够紧密。无论是全系,还是小班,甚至是宿舍,有时相互间的关系都显得比较“冷”。事实上,我相信如果间的关系提升一些,每个人的个人成长都将受到正面的影响。例如博客C[4]的作者,他和李获鼎的友谊在他求学与工作期间都起到了相当明显的正面作用。
我理想中的大学教育,是在前期给学生展示尽可能多的成长方向,中期提升学生的核心专业技能,后期提供实践这些技能、探索对应方向的平台和机会。总的来说,北航计算机学院在这些环节做的还算不错了。毕竟,无论身处怎样的环境,起决定因素的还是个人的主观能动性。
一个多月前,我前往加拿大不列颠哥伦比亚大学(UBC)参加暑期学校,学习两门与网络与算法相关的课程。在这期间,老师与同学的关系,无论是课上还是课下,都与国内大同。不过,我认为国内做不到这样。首先,由于中国文化习惯的原因,无论老师还是学生,在活跃性上都难以达到国外课堂需要的那个程度。除外,国外学生的专业选择模式与国内大不同。我相信,国内像我这样“高考分数驱动型”填报志愿的同学不在少数,但是国外选择专业时,更大程度是在于个人的特长与兴趣。在这种前提下,才产生了对应的教学模式。
2.迄今为止,你写了多少代码,描述你做的最复杂的软件项目/作业。
目前,我掌握的语言有C、Java、Python、JS、HTML/CSS(如果算语言的话)、EViews、以及计组学的Verilog。我用它们写的东西加在一起超过两万行。但是,我写的代码对语言特性的利用、实现的质量等,都有着太多太多的需要提高的地方。
我写过的最复杂的作业基本上都产生于学校开设的几门实验课上,不论是计组、OO还是操作系统。除此以外,我参加各类比赛做的项目,比如奇葩的文本编辑器、面向网易云音乐的分布式爬虫等,也算我写过的相对复杂的项目。
3.学线性代数和概率论的时候,你是否有过这样的疑问“我们为什么要学这么多数学,这和我们的计算机有关系吗”,你现在是否还有这样的疑问?对这个问题,你有自己的解答了吗?那么其他学科呢?
随着上学期进入实验室实习,我开始阅读与数据挖掘、深度学习等内容相关的知识,其中大量用到线性代数与概率论的内容;不过,我倒是从未对学这么多数学的意义产生过怀疑。和室友交流我去旁听《信息安全数学基础》的原因时,我曾经提出过这个观点:在计算机专业,学再多的数学都不过分(可惜自己的旁听计划最终半途而废了。sign)。除此之外,数分的很多知识,尤其是思想,在我最近读的一些东西里面都有大量设计;而数理逻辑、组合数学等,本来就是经典的计算机知识体系的基础,其用途无需多言。
第三部分:未来规划
1.对于你未来在IT行业的发展,你有什么样的梦想或者未来想从事什么样的工作?你准备怎样来规划你技术道路,职业道路和社会道路?
就如同我当初选定计算机专业时所想的,我希望自己可以用计算机知识去“制造”出一些真正有趣的东西。为了实现这个梦想,我需要多多了解和学习前沿的知识与技术。现阶段来说,我对社交网络和与之相关的应用很有兴趣,尤其是在众包等思想下完成的数据挖掘与分析类的工作。
在大学剩下的一年多的时光里,我除了继续完成学校功课外,将重点学习前文已经提到的知识与技术,并通过各类竞赛与项目,动手实践,获得经验与信心。之后,我打算继续升学,以便站在更高的平台上,继续明确自己的专业方向选择,并进一步深挖。相对于学术界,我更愿意在工业界工作。希望可以进入跨国类型的大企业工作,或者如果有好的想法与合适的机缘,也愿意尝试创业。
2.你们马上就要面临实习了,你打算在企业内实习还是在实验室实习?
现阶段我在实验室实习,主要是在实验室老师和师兄的指导下,学习知识熟习技能,阅读文献写写论文,开展项目参加比赛。之所以选择实验室,第一是地理位置上更加方便,时间上更加灵活机动,同时是因为我认为自己现阶段的储备不足以使我在企业找到高质量的实习。不过,在大三年级结束时,我会尝试找一份企业实习。但是为此我需要在这一年格外珍惜实验室的实习机会,尽力提升个人的竞争力。
3.实习经验究竟有多重要?是否需要马上开始积累实习经验?
我认为实习经验还是非常重要的,尤其是企业实习。首先,在上个部分,我认为目前大学计算机专业的一个槽点,就是与工业界对接不足。实际的生产与大学里面我们的学习内容存在很多的差异,为了实现平稳过渡,我必须通过企业实习获得磨练,增长见识。博客B[5]中,作者在IBM“体会到了完全不一样的感觉”。其次,实习经历会让我重新明确方向选择。例如博客A[6]的作者,他正是通过在微软实习,才切身了解了IT产品经理的工作,确定了自己的选择。最后,一份高质量的实习简历将提高未来竞争力。
不过,正像我之前说的,在我能力还不够时,我选择先在学校修炼内功,待实力提升后,再去寻找适合自己的实习。
[1]http://www.cnblogs.com/unruledboy/p/DevCareer.html
[2]https://www.cnblogs.com/geniusvczh/archive/2011/12/16/2290808.html
[3]https://www.cnblogs.com/xiaozhi_5638/p/4485805.html
[4]https://book.douban.com/subject/4006425/discussion/22802960/
[5]https://book.douban.com/subject/4006425/discussion/22803961/
[6]https://book.douban.com/subject/4006425/discussion/22803733/