网站实现功能,网页游戏代理平台,为公司做网站要做什么准备,wordpress 网站换域名计算机科学(Computer Science)到底学什么#xff1f;
很多在校的CS学生入学一两年了#xff0c;还不知道CS到底是什么#xff0c;也很疑惑CS到底能学到什么#xff1f; 看到身边很多读专科或者三本院校的学生#xff0c;已经会很多的技术——比如用PHP做个网页、写个Andr…计算机科学(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第一卷、第一章的第一道例题。
所以说学习不可浮躁无论是搞技术还是搞研究。