跳到主要内容

建立领域 Overview

注:入门专题仍在持续施工中,可以在 这个帖子 关注最新进展 😊

当你在心态上有所认识、方法与工具上有所准备,意味着你的 CS 学习之路也走向了稳步起航,可以不用太着急切入某个领域,打好一个基础再出发。就如一个人来到一座新的城市,首先先找个地方落住脚,解决了最基本的生存问题,才有机会再去探索其中各个角落,攀上一座又一座的山峰。

在落脚的阶段,除了开发环境和工具的准备,有一个大体的认知把握和方向,也是学习中重要的一环。就如前文 面向入门的开发环境打造 所提到,前人已经挖好了许多好走的山路,要怎么走,需要对这座山的构成有一个大体的把握(Overview),进一步再界定合适的目标、规划等。

导论类课程

对于 Overview 的建立,CS 相关的导论课程可以帮到我们很多,这个过程也类似于坐上城市观光巴士,在计算机的各个领域走马观花,大致有一个基本印象。从最基本的香农信息论、二进制思维出发,到基本的编程、数据结构、算法再到更具体的应用开发领域有个基础的认识。

当然这里的课程不限于课内还是课外还是 B站博主的视频等,可以结合自己的实际情况去选择合适的材料。针对这个领域,哈佛大学有一个非常优秀的导论课程,从计算思维到 Web 开发都有一些覆盖,根据 CS50x 2024 的规划,大概会涉及到这些内容:

  1. 计算思维以及 Scratch 编程语言
  2. C语言、编译、数组、简单的算法、内存和指针的概念
  3. 基础的数据结构
  4. Python 语言、人工智能
  5. Web 开发、数据库和 SQL 语言
  6. 网络安全

0xFFFF 此前有做过一些尝试,尝试就 CS50 出发去拉起一些线上讨论,虽然当时更多还是站长为主的单口相声,期待未来有更多有时间有动力的朋友尝试发起与组织类似的活动。

  1. 2021.6.26 - 2021.9.4 哈佛 CS50 课程共同学习计划
  2. 2022.5.28 - 2022.9.12 CS50 Summer 2022 Study Program

除了 CS50 外,根据 0xFFFF 坛友的测评Crash Course Computer Science 也是不错的选择。

工具的进阶

工具使用的学习,同样也是入门阶段一个很重要的话题,配置一个开发环境仅仅是一个开始。工具也是一些各个领域思想、方法的现实落地,我们在熟悉工具的过程中,也同时在熟悉对应领域的一系列的设计思想。

麻省理工的 Missing Semester 系列讲座 也关注到了这方面的缺失,比较建议从这门课程开始。

Missing Semester,顾名思义,“计算机学习中消失的一个学期”,一门介绍在大学的课堂不常见,但又是各种生产力工具的系列讲座课程,包括终端、命令行、各种 Unix 工具脚本、Vim、Git、Tmux 等等等等。

课程定位:

  1. 对计算机领域中的足够稳定的知识体系建立整体认知
  2. 熟练使用领域通行工具,练成足以防身的功夫

它主要涉及到这些方面的内容:

  1. 环境适应:CLI、终端、Shell
  2. 核心技能:Vim、数据处理、CLI 高级用法、Git 的使用
  3. 进阶话题:代码调试、性能分析、构建、测试、依赖管理、安全与密码学等等

一些坛友的沉淀,以及可以参考的链接:

学习建议

根据之前的实践,记录一些在这个阶段,可能需要注意的点:

  1. 从自身出发,从中慢慢找到学计算机的感觉,尤其是编程的直觉、习惯的培养
  2. 接纳自己不懂的状态,这只是一个 Overview,真正学通还需要带着疑问各个击破
  3. 在过程中,对 Unix 体系下的工具有一个初步认识与掌握