百科问答小站 logo
百科问答小站 font logo



计算机科学与技术是什么专业是不是很杂很广泛很难学精? 第1页

  

user avatar   huo-hua-de-41 网友的相关建议: 
      

恰恰相反,计算机专业的范畴虽然广泛,但并不算很杂。相比,某些内容组织的乱七八糟的专业,更容易学精。而且大学课程的设置就已经为学生学精指了一条明路,不像某些专业如何学精简直就是一门玄学。

计算机专业的主干课程,就是如何写代码及代码如何在计算机上运行的这件事。

计算机专业的大学课程就已经指出了学习的方向:

1. 一般大一学C语言,大概掌握面向过程的程序设计思路。大多数非科班工科专业的计算机课程基本都停留在这阶段,无论用多少年MATLAB也不会改观(我用了8年matlab,我现在依然黑)。大多数脚本语言也都是这样,按着顺序把思路写下来,让计算机一步一步执行。

2. 理解OOP(面向对象编程)是水平提升的一大飞跃。掌握继承、多态、封装之后是一个aha moment,原来代码还能这么写,真牛X!现在大多数的大型系统基本都是基于OOP思想设计的,OOP是你掌握编程和控制系统复杂度的一个利器。

3. 学会算法与数据结构,也是代码提升的一大步。当你像洋葱一样拨开数据结构的层层外壳时,你对编程的理解就进入了一个新的阶段。什么时候用链表、什么时候用顺序表、什么时候用图、什么时候用树。什么是B数、B+树、红黑树?为什么数据库要用B+树,为什么有些场景要用红黑树。

4. 学会操作系统原理,也是代码提升的一大步。当程序设计到一定阶段,想要继续提升和优化,你就必须要深挖程序所在的平台 - 操作系统了。明白操作系统底层的运作机理,你才会明白,如何调度程序能够让代码更高效,如何并行、如何多进程,如何多线程。

5. 再往下深挖编译器,深刻理解编程语言是如何转化为机器语言的,其中涉及到深刻的语言学知识(乔姆斯基那套,牛逼的飞起来)。这并不是杂,而是在面对真正的问题时,即语言之间的转化,该如何解决?这也体现出计算机领域的博采众长,是人类知识的宝库。

6. 然后是计算机组成原理,更近一步深入挖掘计算机代码与硬件之间的关系,理解代码是如何在硬件上运行的,提供给学生压榨CPU性能、压榨GPU性能的能力。这不叫学精,什么叫学精?

7. 还有很多很多分支,计算机网络,分布式系统,并行计算,计算机图形学,密码学,生物信息学,计算机视觉,语音识别,自然语言处理等等,这可能让学生觉得有点杂。这恰恰是计算机丰富性的体现。而这些分支,也从来不要求学生全部掌握,学生只需要选择其中一个领域深入进去,学深学精即可。

说这么多,cs核心技术栈(算法与数据结构、操作系统、计算机网络、计算机组成原理四大基础) + 深入某子方向才是计算机的正确学习方法。




  

相关话题

  计算机图形学中物理模拟和渲染是距离较远的方向还是互相交织? 
  Node.js是用来做什么的? 
  985选择医学还是计算机? 
  CPython有GIL是因为当年设计CPython的人偷懒吗? 
  打字速度对编程的影响大吗? 
  如何看待 IBM 宣布成功研制 50 量子比特量子计算机原型机? 
  如何看待Windows系统性能不及国产麒麟操作系统? 
  2019 年你读了哪些觉得比较好的计算机书籍? 
  如何看待明尼苏达大学因插入实验性漏洞,被禁止贡献 Linux 内核代码? 
  为什么机器人研究了几十年,还是给人感觉没有太大进展? 

前一个讨论
视频中的目标检测与图像中的目标检测具体有什么区别?
下一个讨论
如何通俗易懂地介绍 Gaussian Process?





© 2024-11-21 - tinynew.org. All Rights Reserved.
© 2024-11-21 - tinynew.org. 保留所有权利