Q1
学长为什么选择CS?以及认为怎样的学生适合CS?
一开始选择CS是大一选课,刚好选了一门CS入门课。然后觉得很有趣,就一直这样学下来了。而学着学着学到后面发现,自己学的东西可以探索一些电脑里面的奥秘、一些平常都不太会注意的东西。CS这个东西,它不仅仅适用于电脑上,更是教一种解决问题的方法。于是就觉得越学越有用越学越有趣,就一直发展下去了。
我觉得什么样的人都适合学习,因为CS的覆盖面实在是太广了,从那种非常基础的应用层面到开发层面,每一个方面都适宜各种各样的人。但最重要的还是一颗想要去寻找解决问题方法的心吧,要是没有这个东西,没有这种想要去努力解决解决方法的这种好奇心,那我觉得学习CS可能会觉得非常累,但只要有这个特点,我觉得什么人都可以学好。
Q2
学长本科和研究生都学习了cs课程,两种级别的cs学习差异在哪里?是否需要本科学习cs才能适应研究生的课程,转专业是否可行?
就我个人经历而言,本科的CS基础课程更多一些,会教编程语言的使用方法之类的。我所在学校本科的课程,更多是偏向于一些讨论的形式,实际上自己动手做的professional的训练是比较少的。
到了研究生级别的时候几乎就已经没有上课了,基本上一节课就是大家聚在一起,做一个或两个project,每个星期见一次面这样。相当于是把以前学的东西和以前没有学的东西全都用上来非常实用性的一种方式。
如果本科没有学过CS的话那一般来说研究生的CS项目会要求你先去学一些。就像本科学的那种编程的基础课程吧。转专业是很可行的,我认识很多人从别的专业转到CS最后还找到了很好的工作,比如google,facebook这样的。
但一个弊端的话就是相对于本科直接开始学习的那些学生来说,这些转专业的学生就少了那几年的经历,虽然说本科的时候大部分时间处于讨论中,但也是有一些的编程经验的,这些对于研究生做项目还是很有用的。
Q3
学长能不能举个例子详细描述一下做project的过程?
因为我现在是做游戏专业的,所以我就拿我上学期的一个项目做个例子好了。第一节课大家随机选一下队友,组成一个team,后面每个星期都是大家一起开会了。开始的三四个星期主要都还是在构思要做什么。然后决定要做什么的过程可能是很一波三折的,这个在做project的时候,其实也挺常见的,不过基本上在第一个月之前就肯定要把具体目标定下来。
之后就一直是大家不停地每天coing,做完了就汇报,不停地发现问题并修改。整个project的后半段就基本上是向着那个定下来的目标不断前进,然后把之前的一些有瑕疵的地方不断修改。