这是一个非常好的科普文章切入点。你可以通过以下几个步骤构建文章:

  1. 操作系统和硬件的关系

    • 简单介绍操作系统(OS)的作用,解释它如何帮助人类与硬件互动。你可以用一个常见的例子,比如键盘和显示器,来说明操作系统如何处理我们输入的指令并将结果显示出来。
    • 解释为什么直接与硬件打交道会很复杂,需要操作系统作为中间层。
  2. 编程语言的角色

    • 介绍编程语言是如何作用于操作系统的。它们并不是直接给机器看的,而是给人类看的。编程语言将复杂的机器指令(0 和 1)转化为人类可以理解和编写的语句。
    • 举例一些高层语言(如 Python)和低层语言(如 C)的对比,说明越高层的语言越接近人类的思维方式,而低层语言则需要更多了解硬件细节。
  3. 编程语言是为方便人类设计的

    • 强调编程语言是为人类设计的,是帮助我们用更少的时间和精力解决问题的工具。你可以提到语言的语法结构如何使得人类更容易理解和维护代码,而不是直接编写复杂的机器指令。
    • 通过类比,比如说编程语言就像是一本字典或工具书,帮助我们表达对计算机的指令。
  4. 消除对编程的恐惧

    • 阐述学习编程并不需要一开始就掌握所有的细节,它更像是学习一门新语言。开始时只需要了解基本语法和常用工具。
    • 强调编程语言背后有一个强大的社区和生态系统,初学者可以依靠这些资源,不需要从零开始发明一切。
  5. 实际例子

    • 用一个简单的程序来展示如何将复杂的任务简化,比如用 Python 写一个“Hello, World”程序,展示它如何利用操作系统和硬件输出结果。这样可以让读者感受到编程其实没那么难。
  6. 总结和鼓励

    • 最后,鼓励读者不要被编程吓到,编程语言是为他们设计的。通过学习编程,他们可以更加高效地与机器互动,并且编程本身是一项可以逐步掌握的技能。

通过这种方式,你不仅可以帮助读者理解操作系统和编程语言的关系,还能有效降低他们对编程的恐惧感。

#提示工程师# 麻省理工公开课:“在计算机教学中一直忘了教的知识”。
强烈推荐一下MIT的这个系列教程,英文是“The Missing Semester of Your CS Education”,直译是“在计算机教育中缺失的学期”。
这门课讲得是,在编码工作中,除了编码本身之外的所有必要的技能。课是22年的,但是即使现在有了比较成熟的AI编码工具,比如Cursor,课上教的这些技能对开发者依然非常关键,因为都是AI在很长一段时间内,比较难替开发者干的事儿。

比如,版本控制(Git)。AI可以写代码,但如果需要精准定位代码变更引发的Bug,或在多个分支之间管理冲突,AI目前不好处理。再比如远程服务器管理,AI可以调试代码,但如果服务器断掉、进程挂掉,AI也不好介入。更不用说配置网络环境和虚拟机啥得了。未来如果AI编码真进一步升级了,这些技能也是让代码真正跑起来的粘合剂(或者说是蓝领技能)。

以下是课程给的官方示例(前五个有视频,如下)。具体课程链接:网页链接


1、 命令外壳
如何利用别名、脚本和构建系统自动执行常见的重复性任务。不再从文本文档中复制粘贴命令。不再 “一个接一个地运行这 15 个命令”。再也不用 “你忘了运行这个命令 “或 “你忘了传递这个参数”。
例如,快速搜索历史记录可以节省大量时间。在下面的示例中,我们展示了几种与浏览 shell 历史记录中的 convert 命令相关的技巧。

2、版本控制
如何正确使用版本控制,并利用它来避免灾难、与他人协作,以及快速查找和隔离有问题的更改。不再有rm -rf; git clone。不再有合并冲突(至少减少了)。不再有大量的注释代码块。不用再为如何找到破坏代码的原因而焦头烂额。再也不用担心 “哦,不,我们删除了工作代码!”。我们甚至还会教你如何通过拉取请求为他人的项目做出贡献!
在下面的示例中,我们使用 git bisect 查找哪个提交破坏了单元测试,然后使用 git revert 进行修复。

3、文本编辑
如何从本地和远程命令行高效编辑文件,并利用高级编辑器功能。不再来回复制文件。不再重复编辑文件
Vim 宏是其最佳功能之一,在下面的示例中,我们使用嵌套的 vim 宏将 html 表格快速转换为 csv 格式。

4、远程机器
如何使用 SSH 密钥和终端多路复用功能,在使用远程机器时保持清醒。不再为了同时运行两个命令而打开多个终端。不再每次连接都要输入密码。再也不会因为断网或重启笔记本电脑而丢失一切。
在下面的示例中,我们使用 tmux 在远程服务器中保持会话存活,并使用 mosh 支持网络漫游和断开连接。

5、查找文件
如何快速找到要找的文件。无需再点击项目中的文件,直到找到包含所需代码的文件。
在下面的示例中,我们使用 fd 快速查找文件,并使用 rg 快速查找代码片段。我们还使用 cd 和 vim 快速查找最近/经常访问的文件/文件夹。

6、数据处理
如何直接从命令行对数据和文件进行快速轻松的修改、查看、解析、绘图和计算。不再需要从日志文件中复制粘贴。不再需要手动计算数据统计。不再使用电子表格绘图。

7、虚拟机
如何使用虚拟机试用新操作系统、隔离无关项目并保持主机干净整洁。再也不会在做安全实验室时不小心损坏电脑。不再随意安装数百万个版本各异的软件包。

8、安全
如何在上网时不立即向全世界泄露你的所有秘密。不再自己想出符合疯狂标准的密码。不再使用不安全的开放式 WiFi 网络。不再使用未加密的信息。

https://missing-semester-cn.github.io/