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

计算机科学(Computer Science)到底学什么?计算机科学 ComputerScie 到底学什么 很多在校的 CS 学生入学一两年了 还不知道 CS 到底是什么 也很疑惑 CS 到底能学到什么 看到身边很多读专科或者三本院校的学生 已经会很多的技术 比如用 PHP 做个网页 写个 AndroidApp 等等 再加上各种 IT 培训机构 网站铺天盖地的洗脑 一个月学会 年薪 16K 自己连个简单的 MFC 小管理系统都写不出来 于是疯狂的在网上

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

什么是计算机科学

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

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,连签名都是“只盼TAOCP出第五卷”。然后问这对前端有何帮助,他说这是内功。后来考查写代码,他写不出来,说这个不是内功,而他擅长内功。然后向他提问 证明一下辗转相除法,他又强调他擅长的是计算机内功,而不是数学。但其实这个证明,就是TAOCP第一卷、第一章的第一道例题。

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/178965.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月26日 下午4:07
下一篇 2026年3月26日 下午4:07


相关推荐

  • 灰度测试

    灰度测试灰度测试是什么意思呢 如果对互联网软件研发行业不太了解的话 可能对这个词还是很陌生的 其实灰度测试就是指如果软件要在不久的将来推出一个全新的功能 或者做一次比较重大的改版的话 要先进行一个小范围的尝试工作 然后再慢慢放量 直到这个全新的功能覆盖到所有的系统用户 也就是说在新功能上线的黑白之间有一个灰 所以这种方法也通常被称为灰度测试 从目前来看 灰度测试存在两种方式 一种是软件系统内自带灰

    2026年3月19日
    2
  • 四阶行列式计算_通过考试01 / 行列式的计算

    四阶行列式计算_通过考试01 / 行列式的计算本文非原创 资料来自 强烈推荐 猴博士爱讲课平台 中国大学 Moocapp 第一课 行列式的计算各位学渣 你们好 接下来我大约 2 小时的时间带领大家从零基础到完全掌握这门 线性代数 我们直接开始第一课 第一课只教大家一种知识 行列式的计算 所谓行列式 就是长这个模样的东西 它有相同的行数与相同的列数 外面加两条竖线 2 行 2 列 二阶行列式 3 行 3 列 三阶行列式 4 行 4 列 四阶行列式

    2026年3月18日
    3
  • access 注入

    0x00前言现在access的站,比较少,有的话也是小型网站在用,因为access的性能比较差,多人访问都能卡死,所以很多网站都很少会采用access的数据库搭建。但是该学的我们还是得学。0x0

    2021年12月11日
    59
  • 精进Quartz源码—scheduler.start()启动源码分析(二)「建议收藏」

    scheduler.start()是Quartz的启动方式!下面进行分析,方便自己查看! 我都是分析的jobStore 方式为jdbc的SimpleTrigger!RAM的方式类似分析方式!

    2022年2月25日
    56
  • IT该忍者神龟Jquery小工具easyUI物业摘要召回

    IT该忍者神龟Jquery小工具easyUI物业摘要召回

    2022年1月6日
    51
  • idea注释模板

    idea注释模板idea 注释模板软件版本文件模板方法模板软件版本 IntelliJIDEA 3 5 文件模板 File gt Settings 搜索 FileandCode 找到自己需要注释的文件类型 添加自己注释如我需要添加 class interface enum 三种文件 修改好点击 apply 说明 TODO author USER date DATE TIME version1 0 publicenum NAME 如果

    2026年3月18日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号