[BUAA_SE_2017]第零次博客

结缘计算机

你为什么选择计算机专业?你认为条件如何?
计算机是你喜欢的领域吗?是你擅长的领域吗?

说来也巧,高考选择专业时并不知道自己会这般喜欢计算机这个专业,却将其填在了北航的第一志愿。
第一次接触编程是在高一的信息科技课上,学Visual Basic,学冒泡排序算法。当时感觉对我而言这是一个充满未知及其有趣的学科,以至于会考编程题满分,高考前还在疑惑为什么高考理科不加入信息科技?
选择计算机专业是一次阴差阳错的美丽邂逅,市场上对计算机人才需求非常之大,近年来大数据挖掘、机器学习深度学习、量子通信概念等突飞猛进,对计算机研究者、从业者来说,无疑是一个充满契机的时代。然而,最好的时代也可以是最坏的时代。鼎盛与蓬勃发展在带来机遇的同时也带来了前所未有的竞争与挑战,无论是学生还是已经进入社会的从业人员,想要具备占据一席之地的能力,学习与努力是万万不可懈怠的。
其次,对于国内的学生、从业人员来说,在充分认识并认可自身实力的基础上,更应该走出国门去看看其它国家的计算机理念与认识。引用邹欣老师于软件工程资料 - UCSD 怎么教软件工程发布的经历:

所以真正的课堂就比较奇葩,一般上来他就讲他工作时的一些故事,讲他身边的奇葩工程师,特别二逼的manager,特别照顾他的mentor等等,然后就开始讲Head First Design Pattern,用了三周时间过完了一本书,有用了两周时间过完了Head First Software Development,上课基本没有讲义,直接维基百科,无比飘逸,quiz和midterm都很简单,甚至允许你自己出题,如果题目出的好还给你加分,但真正学东西的是当你做project的时候,和所有队友沟通,交流,分配任务。

美国的大学教育和中国的区别很大,就计算机科学专业来说,来了以后能强烈的感受到这边对实践的重视,比如我这学期的java课,总共有180多学生,编程作业占了40%的分数,每天机房都会有好几个tutor和 Teaching Assistant 帮忙答疑解惑,可别小瞧这些 TA 和tutor,很多都是 Google 或者 Facebook的实习生,在 UCSD, TA 和tutor的制度非常完善,在全美也是数一数二的,前段时间有机会和老师聊了聊天,他说他们花了很多时间和精力在 tutor和 TA 计划上,每年都有大量的优秀高年级本科生被招募作为低年级学生的 TA 和tutor,他们每周有一定的work time,每个quarter会拿到computer science and engineering department给他们的工资,而且加州的这些大公司比如Facebook,Google,倾向于要UCSD有 TA 或者tutor经历的同学,因为他们了解UCSD的这个传统,tutor和 TA都是优秀的同学,而且在tutoring的过程中,他们也学到了很多如何和人打交道,如何换位思考,这些都是在大公司的团队工作时必不可少的。另外这边的美国学生都很勤奋,努力,我的软件工程课是一个团队项目,我们的团队有8名同学,绝大部分是美国学生,和他们做project的这三个月来感触也很多,他们会为了一个界面的细节和你争论到脸红耳赤,也会因为自己的一个错误一再向你道歉,会为了赶进度在周末主动熬夜,有太多的细节和难忘的回忆。

邹老师这篇博文我反复看了很多遍,第一,它让我开始期待接下来一学期的软件工程课是不是也会让我们全身心投入其中;第二,国外计算机专业注重自主实践,与“引导实践”相比,任务量重、学习量大,但是除了学到技术,还能培养吃苦、执著的精神;最后一点在于,我认可大学中的学习(尤其是计算机专业)是一种量变到质变的过程,某些技术的熟练掌握是一方面,更重要的是积累、沉淀了对这门学科乃至这个领域的理解与内涵。

在计算机系里学习

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

实践,实践,还是实践。这两年课程中要求的代码量实在太小了,不由得自主报名很多比赛来做中学。从这些竞赛中,认识了一些模型与技术,学会了如何和队友更高效地沟通,想必在软件工程课程中会有所作用吧。
软工这门课在开学之前就让我们从“读”开始,学习前车之鉴,思考未来之匙。如果国内许多大学的教授老师能够对自己的学生进行这么多的理念培养,或许,国内外大学之间的差距会开始逐渐缩小。事实上,国内大学没有任何必要做到国外那样,取其精华,去其糟粕。国内拥有国外大学没有的优点,不是一味地像国外靠拢,而是执着地追求优秀。不然,英国也不会向中国寻求定制版“一课一练”了。

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

迄今为止,我写过的有效代码还是非常少的。一,代码的复用度非常低;二,代码的复杂度通常都没有认真优化过;三,代码所实现的功能,以及工程的复杂性比较低;四,代码只实现了单一的功能,没有进行正确性论证等。上述四个问题导致了有效代码的数量极低。最复杂的作业是面向对象课程中的多线程出租车,重点在于多线程对象的共享与互斥访问,同时应用了广度优先搜索算法来进行寻路;最复杂的项目或为编程之美大赛的初级自然语言处理,通过分词、词性、句法分析从多个备选答案中找出最优答案。还运用了隐马模型对词性转移进行了二次修改,最后通过Google的word2vec模型加上统计方法计算出各项答案的概率值,正确率可达到60-70%。

科班出身和北大青鸟有什么区别?
速成的培训班和打基础的大学教育还有mooc之间有区别吗?

各位老师以及助教推荐阅读的博客中不乏仅通过速成培训班获得高薪的例子,我也未曾参加过俗称班,不知其究竟传授何物,但我认为,大学与速成班二者缺一不可。
微信上订阅了许多计算机相关公众号,其中一篇推送(找不到链接了),其题目大致意思为:为什么深度学习这么好用,而还有人在学习它的实现原理?没错,我想说的是,从速成班出来的人学习的是如何使用技术,而从大学计算机专业出来的学生不仅知其然,还知其所以然。
了解计算机组成原理、体系结构,你就会知道i++到底比i=i+1快多少;了解操作系统原理,你就会知道x86、x64在计算机内部到底是什么含义……计算机这个整体是从底层硬件一层层向上抽象至系统应用、用户应用层面,速成班或许看到的只是浮在海面上的冰山。
(个人见解,不喜勿喷)

未来规划

对于你未来在IT行业的发展,你有什么样的梦想或者未来想从事什么样的工作?你准备怎样来规划你的技术道路、职业道路和社会道路?
你对于实现自己的梦想已经做了或者计划做什么样的准备?

梦想很简单但也很难:脑子里有想法,身边有共同奋斗的朋友。对于未来的工作内容、工资其实我没有很大的要求,刚毕业的头几年,干一行爱一行,虚心学习、脚踏实地。待到对自身、对行业有了清晰透彻的认识了再去盘算更大的计划。
就个人喜好而言,更倾向于大数据挖掘这一领域,因为时间不停止,数据就不停止产生。因此开始上手一些大数据分布式处理引擎,准备学习数据清洗、数据分析相关的理论和算法。

你们马上就要面临实习了,你打算在企业内实习还是在实验室实习?
实习经验究竟有多重要?是否需要马上开始积累实习经验?

已经趁着暑假在实验室打了个杂,实了个习,主要做数据爬取、清晰、分类等工作,下一步会进行数据建模与分析。借此机会简短总结一下本次实习:一,有deadline在敦促着你不能偷懒;二,实习中需要用到的技术(对于大二来说)大部分都需要现学现用,所以还是能学到一些技术的;三,实习不同于交作业等待老师打分,必须在各个方面做好优化、说明等。曾经犯了一个较大的错误,导致后期花了大量时间来弥补。所以,实习会让你发现无论是技术上还是个人习惯上的漏洞,这些都是在日常学习中很难发觉的。

喵,第一次博客大概就说这么多,望新学期顺利。 😄

posted on 2017-09-15 10:58  RWOKC  阅读(211)  评论(2编辑  收藏  举报

导航