知乎live:高效学习计算机专业课程 笔记

前言

计算机专业各种骨干核心课程中包容了计算机科学中最基础的知识,计算机专业课程难度较大,可锻炼自身思维能力。计算机专业的学习与实用应用型知识的学习相互促进。

计算机专业课程:

  • 必修课:计算机专业的核心课程,代表着一名计算机专业学生应该具备的计算机科学理论和基础(最重要的四门):

    1. 数据结构与算法
      知乎live:高效学习计算机专业课程 笔记_第1张图片

      课程大致分为两大块:

      • 数据结构与算法的理论基础:弄明白概念和术语,掌握如何设计算法,如何评价一个算法的优劣
      • 具体的数据结构和算法的介绍:通常只需要掌握最常用的几种,没有必要每个都去深究,每种数据结构和算法往往都有特定的应用场景,用来解决特定的问题。
      • 学算法之前建议先掌握离散数学
      • 对于算法,能够体会它的思想,知道应用场景和优缺点就足够,具体应用中需要自己设计算法的场景并不多
      • 各种编程语言或者开发框架中都给出了算法的组件,大多能理解用途,会调用就可以
    2. 计算机组成原理
      知乎live:高效学习计算机专业课程 笔记_第2张图片

      介绍了计算机系统是由哪些部件组成的,这些部件之间是如何相互协作完成数据处理功能,同时又能满足成本、功耗等指标的。

      学习这门课前通常需要学习数字电路基础,建议先学习《编码》(强烈推荐),学完这门课后可进一步学习操作系统和编译原理

      学习内容:

      • 计算机系统的概述
      • 指令集设计
      • 处理器结构
      • I/O与存储系统与设计
      • 并行计算(硕士)
      • 云计算(硕士)
    3. 操作系统
      知乎live:高效学习计算机专业课程 笔记_第3张图片

      位于多数软件开发工作的第"N-1"层,必须很好地掌握.

      学习之前必须学号数据结构与算法,也需要掌握计算机组成原理的基础,还要掌握C语言

      学习关键:
      知乎live:高效学习计算机专业课程 笔记_第4张图片

      必须要将其与软件开发以及动手实验结合起来

      Linux:在互联网和嵌入式开发占主导地位
      Windows:桌面应用与行业应用

    4. 计算机网络
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d5PYdg18-1571192739415)(Pictures/1564310760424.jpeg)]
      掌握相应的网络协议是掌握各种上层应用软件开发技术的关键。最大的特点就是分层:

    《计算机网络:自顶向下方法》就是从上层协议介绍到下层协议

    《计算机网络》Andrew S.Tanebaum:自下而上来介绍

    《计算机网络:系统方法》则以横切的方式,针对一个特定的网络问题来展开介绍

    弄清楚三个问题:
    1. 计算机是如何连接的
    2. 数据是怎样在计算机网路中传输的
    3. 网络应用软件系统是怎样构建起来的

    学习建议:
    * 理解分层的概念,清楚每一层所解决的主要问题是什么,面临的主要问题是什么,设计者针对这一问题的解决方案是什么,应用了哪些基本原理,有哪些常用的算法
    * 阅读科普书籍入门计算机网络
    * 动手用编程语言结合计算机网络协议来完成一些简单的任务
    * 应用层次的学习:重点学习HTTP协议并掌握面向对象知识
    * 学习网络抓包工具巩固计算机网络的基础

  • ACM总结的18个计算机科学关键领域:

知乎live:高效学习计算机专业课程 笔记_第5张图片
知乎live:高效学习计算机专业课程 笔记_第6张图片

  • 对知识的掌握程度(三级):
  1. Familiarity(了解):What do you know about this? (你对它了解多少?)
  2. Usage(会用):What do you know how to do?(关于怎样做,你知道多少?)
  3. Assessment(评估与决断):Why would you do that?(为什么要这么做?)
  • 针对特定的场景和特定的问题能找到多种解决方案,并能够对这些方案进行评估从中选出合适的来应用
  • ACM报告:软件工程知识领域中有关软件过程的知识集合,衡量对这些知识的掌握程度。
  • 自学的核心任务:这18个核心领域之间有着紧密的联系,形成一个知识网络,构建这个知识网络就是自学的核心任务

知乎live:高效学习计算机专业课程 笔记_第7张图片

  • 对计算机专业有了一定认识后要做两件事
  1. 掌握一门编程语言:
    这4种编程语言基本上是从事计算机行业所必须会掌握的语言,从哪一门入手都可以。

    C、Java、Java Script、 Python

  2. 学好数学

学习方法:

  • 知乎live:高效学习计算机专业课程 笔记_第8张图片

  • 知识组块:根据知识的内在逻辑和意义吧相关联的信息碎片理解和重组而建立

  • 人类的学习过程,就是把吸收的知识转换为知识组块存入人的长期记忆中的过程

  • 知乎live:高效学习计算机专业课程 笔记_第9张图片

  • 知乎live:高效学习计算机专业课程 笔记_第10张图片

    • 根据特定场景分析特定的需求,确定学习的目的,有选择地读特定的书,读书中特定的部分,进行特定的实践,形成特定的知识组块,组合这些组块去解决特定的问题
    1. 针对具体的场景,根据场景需求,搜集各种资源,构建知识框架
    2. 通过学习,不断向原本的框架补充内容
    3. 建立好知识框架,解决问题所需要的知识组块全部准备就位就可以着手解决实际问题
  • 知乎live:高效学习计算机专业课程 笔记_第11张图片

  • 学习需要循序渐进:

    • 请教高人指导学习路线
    • 对于经典的书籍,看不懂时候不要硬着头皮看,效率会很低,要记录下看不懂的地方,停下来弄明白看不懂的原因,是否是没有掌握某些基础的东西,若是则先放一放,掌握基础后再来。
  • 将学习划分为各个阶段,给每个阶段制定一个明确的目标和任务,生成学习的进度条,有助于增强学习动力

  • 真正有效的学习:
    知乎live:高效学习计算机专业课程 笔记_第12张图片

    最初学到的只是些孤立的知识点,通过消化吸收和实践,知识点连接起来形成知识组块,组块之间再连接就形成知识之网

计算机专业的学习要落实在理论与实践的统一上

  • 先实践再理论的学习效果更佳

新知识的学习:

  • 将新学来的知识附着到已经形成的知识网络上、
  • 学习的误区:将各个知识点当做一个个孤立的点去攻克,而忽视新旧知识之间的联系
  • 特定的知识往往要与特定的知识网络相结合后才能真正的学会

计算机专业学习的"N+1"与"N-1"

知乎live:高效学习计算机专业课程 笔记_第13张图片
清楚自己的需求,掌握和自己的需求关系最紧密的上一层和下一层知识就够了,不需要每方面都做到精通,那是不现实的

从硬件到软件,计算机系统分为多层,每层都分为特定的知识和技术,都对应着特定的工作岗位,要依据期望从事的工作岗位,确定工作的层次,从而清楚自己需要精通的知识集合以及对其他知识集合需要了解和把握的程度

选择书籍的基本原则和方法

对于经典书籍,在不具备相关的基础和技术经验的前提下,经典对自己是没有意义的

选择一本自己已针对其经拥有一定的实施储备,可以读懂的书来读,书籍作者一般都会在前言假设读者应该具备的基础,若大多陌生,则可以先扫清障碍,留来以后再看。或者如果作者没有在前言明示基础,则可以先读一部分,若开头就读不懂,则仍应先搞基础,暂时放弃这本书

知乎live:高效学习计算机专业课程 笔记_第14张图片

通过浅显易懂的科普书籍入门,通过专业教材来掌握基础并深入学习,再读专业技术书籍

建议多阅读英文书籍,或中英文书籍

读书时多注意专业术语的中英文翻译的对照,可做成一个表格。

多遍阅读法
知乎live:高效学习计算机专业课程 笔记_第15张图片

  • 认真读书的前言,目录和序言。
  • 快速浏览开头和结尾,掌握哪些部分细读,哪些部分略读
  • 第一遍重点看章节中的特定的应用场景和要解决的问题、结论和观点,不要深究细节
  • 第二遍多在干货上下功夫
  • 读第四遍之前要查找资料,学习完基础后再开始
  • 大部分书籍只需要读第一遍和第二遍即可

攻克难懂的经典书籍

  • 读科普书籍或文章,通过亲手练习来获取特定领域的背景知识
  • 对于数学公式较多的书籍,先弄明白作者所用的知识是哪方面的数学,先学习相应的数学基础再来参照着读这类书籍
  • 有些系列的书是建立在另一本书看完的基础上,必须先读基础的书
    知乎live:高效学习计算机专业课程 笔记_第16张图片

计算机与数学

知乎live:高效学习计算机专业课程 笔记_第17张图片
线性代数是数字图像处理的基础

概率论与数理统计是大数据和人工智能的基础

计算机全局观的建立

读计算机专业概论,粗略的知道这个领域所涵盖的知识面,并了解自己当前所学的知识在整个计算机领域中的地位

选择最新版本的专业概论书籍

书籍推荐:

  • 《浪潮之巅》吴军: 主要讲述IT产业发展的脉络和硅谷明星公司的兴衰沉浮

  • 《数学之美》吴军: 介绍数学在计算机领域的具体应用

  • 《学习之道》:针对学习的研究成果,用来改进学习方法

  • 《微积分读本》普林斯顿:采用内心独白的方式介绍微积分,能够比较顺利的读懂

  • 《离散数学及其应用》(机械工业出版社)

  • 《线性代数及其应用》:展示线性代数在应用中的案例,更容易了解这门课的用途

  • 《计算机科学概论》Nell Dale:采用剥洋葱方式从内向外介绍计算机科学

  • 《计算机科学概论》J.Glenn Brookshear:由每个主题自然而然地引导出下一个主题,由具体到抽象

  • 《算法图解》

  • 《算法导论》:针对特定算法的数学分析与证明

  • 《Linux》内核

  • 《编码》Charies Petzold

  • 《计算机网络:自顶向下方法》

  • 《深入理解计算机系统》:从使用者而不是从计算机系统设计者的角度来组织材料
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aDwwMPQV-1571192739432)(Pictures/1564308330214.jpeg)]
    并不适合零基础入门,阅读者至少应该学过计算机科学的导论,并有一些C语言和Linux的开发经验

    这本书能够帮助读者将零散的知识组块化,在建立组块之间的联系,可以通过这本书了解计算机系统的整体设计,明白这些设计因素对于应用软件开发和运行的影响,建立一个完整的计算机专业知识体系和整体的知识框架,在这个框架之上再选择有针对性的书籍钻研特定的子领域

你可能感兴趣的:(计算机专业课程,高效学习,课程笔记)