查看原文
其他

附中棒棒学长告诉你『计算机专业』是啥

亮仔牛奶 西北野战军 2021-01-22


对“计算机科学与技术”专业的一些介绍。我自己也是大一的学生,对这方面了解自然不如各位学长学姐们深入。

现在“大类招生”成为趋势,因此我打算先谈选择这个大类的理由,以及,更重要的,不选择这个大类的理由,即why and why not。

(提一句计算机类和电子信息类的区别,在大多数大学,计算机类偏软件,电子信息类偏硬件,二者差别很大,但是很多招生办喜欢拿这个忽悠大家)

 

 WHY 


  1. 对计算机相关科技感兴趣,想在这一领域为人类文明做一点微小的贡献

  2. 不满足于玩玩游戏、鼓捣鼓捣机器,想深入了解这个体系

  3. 喜欢数理,渴望利用计算机技术解决问题(AlphaGo的设计者就是这样)

  4. 人工智能等新兴领域大有前景,希望能投身这一浪潮,共同见证人类科技的飞跃

  5. 就业前景好,工作环境好,收入可观


 WHY NOT 


  1. 对计算机科技不感兴趣,XX大学信息学院每年都有几十个人因为兴趣不足等原因转走,无论多有前景,兴趣不足也坚持不下来啊

  2. 体验体验最新版的手机和各种智能科技就好啊,为什么要我去创造呢

  3. 数理基础不够扎实,尤其是“数学恐惧症”,不想这辈子被数学支配

  4. 国内人工智能、互联网泡沫极大,几年内泡沫将破裂几乎已成确定事实(2018图灵奖得主、来过中国多次的杨立昆也这么指出),最近有一股互联网公司倒闭潮

  5. 希望追求相对稳定的工作和生活,不希望冒着公司倒闭的风险(小型科技公司倒闭极为常见,导致员工一夜之间从中产陷入贫困,房贷甚至还不上,不过,大多数人就业之初会选择大公司,这样风险就小得多)

  6. 不想大学学习和日后工作太辛苦,心理压力太大

  7. 不想以后日常读各种各样的英文paper

  8. 只想敲敲代码,做个安逸的程序员,但是又不希望新科技的出现夺去码农的饭碗

  9. 想靠高校文凭混碗饭吃(这一行拼的是能力,文凭并不重要)

 

计算机类专业的方向其实非常丰富,未来也有很多去向可以选择,我打算就这一“大类”的几个分类方式,逐一做一个介绍。

 

 分类方式一:专业方向 


当下国内大学的计算机类专业几乎都包含“计算机科学与技术”、“软件工程”两个;同时,越来越多的大学,开始加入“人工智能”、“大数据”等新兴专业。不同大学的同一个专业可能有不同的名字,同一个名字的专业培养方案可能也千差万别,如果想获知某所大学的具体情况,请具体咨询学长学姐。


先说明一下,计算机类很多专业内部并无太大区别,而且学院内部选课往往并无任何限制,很多时候要考虑的不是这个专业能上哪些课,而是这个专业有没有很无聊的课程占用我选其他课程的时间。


先从“计算机科学与技术”和“软件工程”谈起。这两个专业,虽然设置时间较长,但是并不落伍,XX大学的计算机科学方向甚至在大一就要求选修“人工智能引论”。至于这两个专业有什么区别,这也是曾经困扰我的一个问题。当然,问题的答案因学校而异,但总体来说,“计算机科学与技术”更强调对计算机体系(例如操作系统)的理解,而“软件工程”偏重工业中软件的开发(例如如何组织编写大型软件,并减少错误,提升鲁棒性)。一般而言,“计算机科学与技术“是计算机类专业中最适合打基础的,当然学习难度也最大。


再谈“人工智能“这样的新兴专业。我知道很多同学对”人工智能“很感兴趣,但是请允许我提醒一点,据我对AI浅薄的了解,本科生阶段,若非参加科研(参加科研是自由选组,和分流到哪个专业没什么关系),大部分课程上很难深入学习。不得不说,AI门槛极高,光是数学就需要多年的修炼。这里提一个个人的观点:越了解越觉得AI是”人工智障“,现阶段AI其实大部分是在以概率统计为代表的各种数学和飞速发展的计算机科学的基础上建立的。本科打好基础,研究生方向细化后研究AI的大有人在,完全没有兼容困难。此外,新兴专业在很多大学并不成熟,培养方案并不合理。有的大学会给“人工智能”专业开设关于脑科学的课,然而出于各种原因,这门课并不特别受欢迎。


最后谈谈“大数据“这样的”交叉学科,这在XX大学是数学学院、信息学院、经济学院都有的专业。在这所大学,信息学院选择“大数据”专业的同学可以申请和经济学院联合培养,因为两个学院在这里达成了合作。


其实有些学校还有“网络工程”、“数据库”这样的专业,由于我所在的学校没有,因此没有涉及。


“信息与计算科学”属于数学类专业,“信息管理”(百度那个李彦宏的专业)属于管理类专业,它们都不是计算机类专业。

 

 分类方式二:科研or就业 


所谓“科学与技术”,就是既有科学,也有技术,前者对应科研,后者对应就业。


当下“取消学术硕士”的背景下,科研倾向于直博,就业倾向于两年的“专业硕士”。


科研做什么呢?科研人员会为各种各样的任务设计新的算法,优秀的算法可以发到顶级学术会议上(topconference),甚至可能得到图灵奖哦!科研人员更多地从理论层面去研究这个体系,并寻找新的突破。举个例子,也许大家会觉得现在的翻译软件很垃圾,这是因为“自然语言处理”(NLP)还很不成熟,那么如果你是科研人员,你就可以探索一下,如何提高翻译的准确性呢?训练新的神经网络?引入新的算法?还是说原有的对语义的分析方式太low了,你要自己提出一个新的东西?科研出成果的乐趣,据说是,人间最大的乐趣之一。但也要做好心理准备,尽管有本科期间发了6篇顶会的高手,但是大部分人的本科生科研主要就是去学学知识、见见世面。顶会毕竟是含金量与难度正相关的。


就业要做什么呢?以计算机视觉(CV)为例,比如说你去了“无人驾驶”公司,那么你要基于现有的科研成果,将它们应用与实际生产。不要小看应用的难度哦!实验室到现实场景,常常是最漫长的一条路。针对现实世界的复杂性,工程师们要开大脑洞,提出新的解决方法。具体而言,无人驾驶汽车上会安装各种各样的摄像头、传感器,工程师们要基于这些从外界捕获到的信息,分析处理,筛选出有用信息。这一步就需要很强的创造性,毕竟,外界得来的信息噪声、干扰极多,而且很多时候数据量过大,超过了车载计算机系统的运算能力,因此既要降噪,也需要降采样,但是又需要保证足够的精度。同时,像精度这些就涉及到大量参数,如何调参(俗称“炼丹“),也是产业界的一个极为重要的问题。做完这些工作,才能利用科学家们开发出的算法,指挥无人驾驶汽车采取行动。


其实计算机是一个很特殊的行业,科研与就业二者很多时候并无太大区别。很多科学家出成果以后直接创业(例如Google公司),很多企业的工程师的主要任务也是科研,该领域的高科技公司对科研人员的需求量极大(可以看看五月份任正非接受采访时所讲的话)。上一段提到的无人驾驶公司,他们的研究人员也每年都发表定会论文。


 分类方式二:科研or就业 

 

事实上,计算机类专业一直有一个很有争议的话题:要不要学大量的数学呢?XX大学的计算机类“强数学“方向的学生,必修数学分析(3学期),高等代数(2学期),离散数学(3学期,最后一学期选修),概率统计(1学期),很多同学还会选修初等数论(1学期),而且,他们的高等代数课上,时常出现抽象代数的内容……


有没有必要呢?这取决于以后选择以应用为主还是创造为主。简言之,当下软件工程高度发展,XX大学所有学生,包括文科生,都需要学编程,基础的编程对数学并无太高要求。


然而,我问过很多前辈,很多老师也常说,想接触一些高深、前沿的内容,必须学好数学。还记得前面对AI的介绍吗?没有强大的数学功底,AI是玩不转的。XX大学多年前曾取消数学分析、高等代数,代之以更简单的高等数学、线性代数,结果几年后发现弊大于利,又改回来了。当然,在这所大学,你也可以选择“宽口径“方向,换言之,数学分析、高等代数并非必修。


“强数学”、“宽口径”二者并无优劣之分。根据自己的能力和发展方向,选择适合自己的方向就好,数学基础不扎实但硬啃数分高代的后果可能很惨重。


分类方式二所举的例子中就是一些极富创造性的工作。实际上,完全也可以当个码农单纯敲敲代码呀!这种情况下,就不仅不必学习如此之多的数学,对计算机系统的了解也不需要那么深了,多练习练习,少出bug倒是比较实在的。



鸣谢:

在此特地感谢为本文提出过宝贵建议的校友们,老师们!




本文作者@棒棒学长(化名)


- 往期文章 -


🔗:如此爱国,他们是当代沙雕,不是当代义和团!给污名化的义和团正名

🔗:逃犯条例受阻,冤死的香港姑娘何时能得到正义?

🔗:明星公然侮辱边检民警,网友齐喊:拘留她!


-End-

微博@西野_Northwest,转载请后台留言

投稿邮箱:Northwest_Corp@qq.com



    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存