计算机科学(Computer Science)到底学什么?

很多在校的CS学生入学一两年了,还不知道CS到底是什么,也很疑惑CS到底能学到什么?
看到身边很多读专科或者三本院校的学生,已经会很多的技术——比如用PHP做个网页、写个Android App等等,再加上各种IT培训机构、网站铺天盖地的洗脑——“一个月学会××,16K”……
自己连个简单的MFC小管理系统都写不出来,于是疯狂的在网上下载教学视频,学习各种牛逼的技术;认为学校教授的知识没有什么用处,出来什么也不会,甚至翘课。

什么是计算机科学

我们系统地看看,计算机科学到底是干什么的。

CS大体可以分成以下几个大领域:硬件、系统、软件、网络、计算理论、计算方法

  • 硬件 —— 数字电路、集成电路、存储器、各种硬件设计和验证方法等。
  • 系统 —— 计算机架构(指令集、串/并行、网格、云端之类)、嵌入式、实时系统等。
  • 软件 —— 操作系统、虚拟机、编程语言、软件设计/开发/验证的工具和方法论等。
  • 网络 —— 计算机网络的架构、协议、组件、路径算法、性能分析等。
  • 计算理论 —— 可计算性、形式语言和自动机、密码、逻辑、算法分析等。
  • 计算方法 —— 数值计算、符号计算、并行计算、计算机图形学、人工智能、机器学习等。

你可以按这个提纲,回忆你大学学习的课程,逐个了解一下CS是干什么的。但是有的学生认为:大学学的太杂,又不深入,出来能有什么用。这恰恰是中国大学教育与美国教育的不同。美国教育大多是先让学生发现自己的兴趣所在,再选择自己的倾向方向;而国内教育多是每个学生学习一样的课程,研究生再选择自己的方向,深入研究。

学校教的是什么

然而很多的大学生醉心于炫酷的Web界面、功能齐全的手机App,那么这些算哪个领域呢?

答案是,哪个也不属于。你看整个计算机科学,研究的都是非常底层或基础的东西,与你说的“现实中的产品开发”,基本上是没有关系的。即使有些名称看着和开发有关,其实也不是一回事。比如这里所说的“编程语言”,就好比语言学,是研究各种语言结构的,而不是教你用语言写作的。就像天文学不是教你制造望远镜的,机械动力学不是教你开挖掘机的。

实际上,国内大学极少有独立的CS专业,都是加个“与技术”,全称叫“计算机科学与技术”。顾名思义,这就包括计算机科学、计算机技术两部分。你想学的这些,就属于那个“与技术”。你想学的是技术方向,学校教授的是科学方向的知识,仅仅只涉及简单的计算机技术,远远达不到工作的要求,这个就是你困惑的根本原因。另外,大学精英教育的目的是:发掘人才、培养人才、提高科学与文化素养。而你所醉心的——是技能,这不是本科院校所给你的,那是职业学校或者培训机构所给你的。

写到这里,我想您应该已经理解了:计算机科学是干什么的,以及为什么在学校学完了还是做不出来网站和APP。

CS大学生应该怎么办

当然,每个人的发展目标不同,人生道路也不同,世界上没有那么多科学家,也培养不出那么多科学家。大学生可以选择走技术路线,也可以选择继续研究真正的科学。

接下来,你可能会有这样的问题:

1、 如果我想搞技术,那么学习科学部分还有没有必要?

我的观点是:这不是有没有必要的问题。

这两者之间的区别,是追求的目标不同:科学追求尽量深入,探索原理;而技术追求尽量封装,提高效率。各种高级技术都是力求隐藏细节,以提高效率。
而你选择学习内容的标准,就看它能否显著提高你的生产力。有些技术高度依赖底层细节或原理,造成了效率瓶颈,就应该学,并且学这些底层原理(基础知识)更有利于你对技术的理解,所谓知其然知其所以然。

具体到Web、APP开发,最能提高你生产力的,就是那些前/后端框架和脚本,学完了你马上就能做产品,而不是《计算机程序的构造和解释》什么的。

当然,可能会有人告诉你,你要学挖掘机,一定要先学机械动力学,否则你就没有内功,永远不可能成为挖掘机高手,机械动力学才是真正的知识,只是现在社会太浮躁,没人愿意花时间学。然而,我并没否认机械动力学的价值,它能让你把挖掘机分析得头头是道,甚至设计制造挖掘机。但是,如果你的目标是开挖掘机,那你就不该这样入门,因为这是两回事。我曾经看过一个培训机构老师的故事,人家高中没毕业,就去网吧当网管了,结果不满足现状,决定自学软件开发,人家用了不到一年的时间,就把.NET搞的很牛逼。可这一年人家的付出是常人难以坚持的,人家为了控制自己出门,把眉毛剃了,等技术学会了,眉毛也长出来了。你说他科学底蕴很深厚?

还是那句话:追求不同,方法不同;努力不同,结果不同

2、 如果我想搞科学研究,那么我还需要特别牛的技术吗?

这要看你的精力和兴趣了。有的人醉心于科学研究,人家仍然对炫酷的技术感兴趣,享受做出产品的乐趣,并且人家努力、专心,两样搞的都很牛。如果你没有那么多的精力把两样都搞的很牛。你可以选择其中一样,然而你又能力不够,又想两手抓,那我劝你——量力而为。

3、 我现在应该如何提高技术水平?

学技术的关键思路是两点:一个是模仿,一个是边实践边学。比如说学挖掘机,首先你要知道基本操作,然后看别人是怎么开的,最后自己上去开。遇到问题,比如跑偏了,你研究一下,挖掘无力,你再研究一下,弄明白了就继续开。具体到你说的做网站为例,首先你可以看看《Head First HTML5》和《Head First PHP & MySQL》,学会基本操作。然后找一些作品,比如WordPress,和它的一些经典模板,去看别人是怎么做的。然后,你就可以自己设计一个小网站,尝试把它做出来。千万不要等什么都学会了再开始做。做的过程中,你遇到什么障碍,再有针对性地去学习和解决。这种边实践边学习的模式,才是学技术的正确思路,这跟搞理论研究的思路是不一样的。

如果你是大学生,不想考研,想以后毕业更有竞争力,那么你不必过分在意学习成绩,可以选择在成绩良好的基础之上,精钻技术,成为技术牛人。如果你想上研究生,专心搞研究,以后想读博士,那么你需要成绩优异,但是你又对技术感兴趣,那么你可以选择在学校的时候,主攻计算机科学部分,而在假期努力学习计算机技术部分。我就是这么做的,上次暑假我一天7、8个小时在网上看视频,读文档学习Web,不到一个月,便可以独立的开发小型的Web程序了。如果你想上研究生,只是为了日后找个更好的工作,那么我认为你应该专心于学习,等到研究生的时候,多增加自己实习的机会,这样才能找到更好的工作,由于我仍然是个本科生,还没有读研,没有切身的体会,不好多谈。

学习切记浮躁

我在知乎上看见别人说过这样的经历:面试一个前端,问他最喜欢什么书,他说TAOCP,连QQ签名都是“只盼TAOCP出第五卷”。然后问这对前端有何帮助,他说这是内功。后来考查写代码,他写不出来,说这个不是内功,而他擅长内功。然后向他提问 证明一下辗转相除法,他又强调他擅长的是计算机内功,而不是数学。但其实这个证明,就是TAOCP第一卷、第一章的第一道例题。

所以说学习不可浮躁,无论是搞技术,还是搞研究。

计算机科学(Computer Science)到底学什么?相关推荐

  1. 香港城市大学计算机科学世界排名,香港城市大学CityU计算机科学Computer Science专业排名第84位(2021年THE世界大学商科排名)...

    2021年THE泰晤士高等教育计算机科学Computer Science专业世界大学排名公布,香港城市大学CityU计算机科学世界排名第84位,香港城市大学CityU计算机科学专业实力怎么样呢?下面美 ...

  2. 美国计算机科学排,美国大学计算机科学computer science专业排名

    美国计算机科学Computer Science专业 计算机科学是近些年来随着计算机的广泛应用发展起来的,国际互联网Internet的发展,网络时代的到来,使计算机的功能不仅仅只是替代人脑的一些脑力运算 ...

  3. 2021澳洲大学计算机专业排名,澳洲纽卡斯尔大学UoN计算机科学Computer Science专业排名第201-250位(2021年THE世界大学商科排名)...

    2021年THE泰晤士高等教育计算机科学Computer Science专业世界大学排名公布,澳洲纽卡斯尔大学UoN计算机科学世界排名第201-250位,澳洲纽卡斯尔大学UoN计算机科学专业实力怎么样 ...

  4. 我主修计算机科学英文,计算机科学,computer science英语短句,例句大全

    计算机科学,computer science 1)computer science计算机科学 1.Application of computer science in bioinformatics;计 ...

  5. 澳洲纽卡斯尓大学计算机排名,澳洲纽卡斯尔大学计算机科学computer science专业排名第251~300名(2020THE泰晤士高等教育世界大学排名)...

    2020年THE泰晤士高等教育世界大学计算机科学computer science专业排名公布,澳洲纽卡斯尔大学计算机科学专业排名第251~300位,澳洲纽卡斯尔大学计算机科学专业实力怎么样呢?下面美英 ...

  6. 加州大学河滨分校计算机科学专业,加州大学河滨分校UCR计算机科学Computer Science专业排名第176-200位(2021年THE世界大学商科排名)...

    2021年THE泰晤士高等教育计算机科学Computer Science专业世界大学排名公布,加州大学河滨分校UCR计算机科学世界排名第176-200位,加州大学河滨分校UCR计算机科学专业实力怎么样 ...

  7. 达特茅斯计算机专业师资力量如何,达特茅斯学院计算机科学computer science专业排名第126~150名(2020THE泰晤士高等教育世界大学排名)...

    2020年THE泰晤士高等教育世界大学计算机科学computer science专业排名公布,达特茅斯学院计算机科学专业排名第126~150位,达特茅斯学院计算机科学专业实力怎么样呢?下面美英港新留学 ...

  8. am大学计算机科学,德克萨斯AM大学TAMU(Texas AM University )计算机科学Computer Science专业排名第201-250位(2021年THE世界大学商科排名)...

    2021年THE泰晤士高等教育计算机科学Computer Science专业世界大学排名公布,德克萨斯A&M大学TAMU 计算机科学世界排名第201-250位,德克萨斯A&M大学TAM ...

  9. 克莱姆森大学计算机排名,克莱姆森大学计算机科学computer science专业排名第401~500名(2020THE泰晤士高等教育世界大学排名)...

    2020年THE泰晤士高等教育世界大学计算机科学computer science专业排名公布,克莱姆森大学计算机科学专业排名第401~500位,克莱姆森大学计算机科学专业实力怎么样呢?下面美英港新留学 ...

最新文章

  1. 谷歌学术公布2021年最有影响力工作,CV顶会论文“夹缝求生”!凯明 YYDS!
  2. 怎么把写好的python代码打包成exe-【Python之点到为止】如何优雅的将你的代码打包成EXE...
  3. topcoder srm 490 div1
  4. java数据跑不出来,6000条数据,java下跑了20多分钟了还没跑完,求教怎么改进
  5. P4336-[SHOI2016]黑暗前的幻想乡【矩阵树定理,容斥】
  6. postgres+socket.io+nodejs实时地图应用实践
  7. PostgreSQL环境变量
  8. 拓端tecdat荣获腾讯云+社区年度最佳作者奖
  9. do_fork实现--上
  10. jumpserver 账户被锁定30分钟后_175斤女孩嫌腰粗,每天坚持跳绳30分钟,3个月后令丈夫刮目相看...
  11. cydia无法加载未能连接服务器,cydia无法加载_Cydia无法加载如何办?Cydia加载失败故障的解决方...
  12. Ubuntu22 超nice的QQ(Icalingua++)安装步骤,拒绝走弯路!!
  13. 产品经理的进阶——需求的成长史
  14. 抖音数据统计_抖音账号数据分析
  15. 慧荣SM2263XT量产开卡成功,附SM2263XT量产工具、开卡软件(一个512G固态硬盘不认盘修复教程)
  16. 河大计算机学院足球队,“河大杯”我院足球队两连胜提前晋级淘汰赛
  17. 统计英文中单词的个数
  18. LCD1602液晶显示屏用51单片机怎么驱动?(详细笔记附设计源码)
  19. 微信小程序入门开发教程(详解)
  20. 英语不好可以学mysql吗_请你不要坚持自学一直很烂的英语了,好吗?

热门文章

  1. 设置 IntelliJ IDEA 主题和字体的方法
  2. 与智能汽车相见恨晚的SOA到底是什么?
  3. 母羊奶粉的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  4. 关于erf()与erfc()
  5. 配色工具Material Design
  6. 《精力管理》读书笔记——第二部分
  7. 实验四: IPv6路由选择协议配置
  8. 已解决IndexError: list index out of range
  9. 微信好友头像全家福详细教程
  10. 怎么找回手机相册里删除的照片?这些技巧不知道太亏了!