⌨️ 编程原理 · 目录

⌨️ 编程原理

照着《完全图解编程原理》做的自学笔记 —— 「编程」这两个字背后到底是什么?语言只是工具,这门课讲编程的全貌:软硬件环境与行业职业、编程语言的门派与比较、二进制与数据结构、流程图与算法(排序/查找/大 O)、从设计到测试与面向对象、Web 技术与安全。学了三门语言之后回头看,正合适。Demo 多为动手观察不用装软件,第三章代码示例用 Python 3.13 现场验证。大白话、不跳步骤、必带生活比喻、常见误区、可折叠自测题。
前置课程:C++ 基础(第一门编译语言)、Java 基础(第二门语言)、树莓派(Python 实操)。

内容来自我的 Obsidian 自学笔记 · 全 6 章 103 节完结 ✅

第一章 编程的基础知识

1-1

硬件、五大设备、操作系统、应用程序、软件、程序-编程的软硬件环境

六词解剖图=硬件(五大设备:输入/输出/…

⭐⭐阅读全文 →
1-2

桌面应用、网页应用、手机App-程序的执行环境

三大执行环境=桌面(装在本机)/网页(装…

⭐阅读全文 →
1-3

职业程序员、业余程序员、RPA-程序是谁编写的

三类作者=职业(吃饭的)/业余(解决问题…

⭐阅读全文 →
1-4

系统集成商、互联网公司、嵌入式系统商、软件开发商-编程相关行业的区别

四类公司=系统集成商(总包施工方)/互联…

⭐阅读全文 →
1-5

系统工程师、程序员、项目经理、产品经理、测试员-编程相关职业的区别

五种职业一张表=SE(设计图纸)/程序员…

⭐阅读全文 →
1-6

软件工程服务、准委托开发、派遣、承包-程序员的雇佣形式

四种形式(日本特色)=SES/准委托/派…

⭐⭐阅读全文 →
1-7

需求分析、需求定义、设计、开发、测试-软件开发工程

五步流水线=需求分析(问明白)→需求定义…

⭐⭐阅读全文 →
1-8

瀑布式开发、敏捷式开发、螺旋式开发-软件开发的流程

三种流程=瀑布(一级一级下·稳但僵)/敏…

⭐⭐阅读全文 →
1-9

写代码、环境的构建-开发工程中的工作

两种工作=写代码(10%)与环境构建(装…

⭐阅读全文 →
1-10

结对编程、Mob编程、一对一编程-团队开发中使用的方法

三种一起写码的方式=结对(两人一机:司机…

⭐阅读全文 →
1-11

自由软件、免费软件、共享软件、软件商店-发布开发好的程序

四种发布形态=自由软件(四自由·开源)/…

⭐⭐阅读全文 →
1-12

书籍、视频、学校、学习小组-编程该怎么学

四条学习路径=书籍(系统)/视频(跟做)…

⭐阅读全文 →

第二章 编程语言都有什么不同

2-1

源代码、执行文件、编译器、解释器-转换成计算机能处理的格式

CPU 只认机器码;编译器一次翻译到位…

⭐⭐阅读全文 →
2-2

低级编程语言、高级编程语言、跨平台-人和计算机都容易理解的格式

机器码与汇编贴着硬件走;高级语言贴着人走…

⭐阅读全文 →
2-3

编程范式、面向过程型、面向对象型-编程语言的分类

范式是【组织代码的世界观】不是能力高低…

⭐⭐阅读全文 →
2-4

函数型、逻辑型-声明式编程语言

命令式说【怎么做】、声明式说【要什么】…

⭐⭐阅读全文 →
2-5

脚本语言、宏、标记语言-使用简便的编程语言

脚本=宿主程序里的自动化小弟;宏=展开期…

⭐阅读全文 →
2-6

C语言、C++、Java、C#-编程语言的比较1

编译目标四条路=机器码/机器码+面向对象…

⭐⭐阅读全文 →
2-7

Ruby、Python、PHP-编程语言的比较2

三种脚本语言的兴衰对照:Ruby 错失窗…

⭐阅读全文 →
2-8

JavaScript、TypeScript、VBScript、VBA-编程语言的比较3

JavaScript 是唯一被浏览器钦定…

⭐⭐阅读全文 →
2-9

JIT方式、字节码-实现随处运行的能力

字节码=【一次编译、到处运行】的中间形态…

⭐⭐⭐阅读全文 →
2-10

执行环境、开发规模-编程语言的选择方法

选语言四问=跑在哪、多大规模、团队会什么…

⭐阅读全文 →
2-11

标准输入、标准输出、错误输出-输入与输出

三兄弟各走各的管道;stdin/stdo…

⭐⭐阅读全文 →
2-12

编辑器、IDE、RAD-编程开发的环境

记事本到 IDE 到 RAD 的三级台阶…

⭐阅读全文 →

第三章 数值和数据的处理方法

3-1

十进制数、二进制数、十六进制数-了解计算机处理数据的方式

三种进制的换算与由来;十六进制一位顶四位…

⭐阅读全文 →
3-2

逻辑运算、位运算、移位运算-理解二进制数的处理

与或非真值表;按位与或异或取反;左移右移…

⭐⭐⭐阅读全文 →
3-3

四则运算、运算符-理解计算的基础

加减乘除取余;整除与真除两种除法;运算符…

⭐阅读全文 →
3-4

变量、常量-计算机保持记忆

变量是贴了名字的内存盒子;常量是约定不可…

⭐阅读全文 →
3-5

值、代入、比较运算符-与数学中的=的区别

程序里的等号是赋值不是相等;x 等于 x…

⭐阅读全文 →
3-6

保留字、文字、魔法数字-方便读代码的人理解的名字

保留字不能当变量名(Python 35…

⭐阅读全文 →
3-7

整数、整数类型、浮点数、实数类型-用计算机处理数字

整数类型按位宽分档;浮点是 IEEE 7…

⭐⭐⭐阅读全文 →
3-8

数组、静态数组、动态数组、多维数组-集中处理相同类型的数据

同类型数据集中存放;静态定长与动态伸缩…

⭐⭐阅读全文 →
3-9

字符编码、字符串、NULL字符-用计算机处理文字

字符编码是字到数字的字典;ASCII 七…

⭐⭐阅读全文 →
3-10

BIG5、GBK、JIS编码、乱码、Unicode-用计算机处理日文时的注意点

编码割据时代五种方言;乱码的根源;Uni…

⭐⭐阅读全文 →
3-11

结构体、枚举类型-表现复杂的数据结构

结构体把不同类型捆成一包当一张记录卡;枚…

⭐⭐阅读全文 →
3-12

类型转换、自动类型转换、强制类型转换、溢出-实现不同数据类型的处理

自动转换往高精度走;强制转换可能截断;溢…

⭐⭐⭐阅读全文 →
3-13

关联数组、哈希函数-使用名字而不是索引访问数组

字典用键不用下标;哈希函数把键变成桶号…

⭐⭐阅读全文 →
3-14

地址、指针-理解内存结构处理数据

内存是按字节编号的宿舍楼;指针是存地址的…

⭐⭐⭐阅读全文 →
3-15

链表、双向列表、环形列表-理解顺序访问数据的结构

节点加指针串成串、内存不连续;单向双向环…

⭐⭐阅读全文 →
3-16

堆栈(后进先出)、队列(先进先出)-依次处理数据

栈像摞盘子后进先出(函数调用栈);队列像…

⭐⭐阅读全文 →
3-17

树形结构、二叉树、完全二叉树、平衡树-用层次结构处理数据

树是分层的一对多;二叉树每节点最多两个孩…

⭐⭐⭐阅读全文 →

第四章 流程图与算法

4-1

流程图、程序处理的基础-画图理解处理流程

流程图三符号=椭圆起终点、菱形判断、矩形…

⭐阅读全文 →
4-2

条件分支、if、三元运算符-比较数据的大小

if 与 else 分岔路口;三元运算符…

⭐阅读全文 →
4-3

循环-反复执行相同的处理

while 与 for 两种循环;初值条…

⭐阅读全文 →
4-4

函数、步骤、参数、返回值-集中执行一系列的处理

函数=打包的处理机器;参数进、返回值出…

⭐⭐阅读全文 →
4-5

值传递、引用传递、不可变、可变-向函数中传递参数

传复印件还是传房号;Python 可变对…

⭐⭐⭐阅读全文 →
4-6

作用域、全局变量、局部变量-决定变量的有效范围

全局与局部两个世界;局部优先;少用全局变…

⭐⭐阅读全文 →
4-7

递归、尾递归-修改参数的同时反复执行相同的处理

函数调用自己;基线条件与递归条件;栈溢出…

⭐⭐⭐阅读全文 →
4-8

异常、异常处理、除零运算-应对预料之外的问题

try 与 except 的保险机制;除…

⭐⭐阅读全文 →
4-9

迭代器-使用迭代处理

迭代器=按需逐个吐数据的对象;for 的…

⭐⭐阅读全文 →
4-10

内存泄露、垃圾回收-释放无用的内存

内存泄露=房子不还;垃圾回收=自动收房…

⭐⭐阅读全文 →
4-11

排序、选择排序、插入排序-学习基本的排序

选择排序每轮挑最小;插入排序像理扑克牌…

⭐⭐⭐阅读全文 →
4-12

冒泡排序、摇晃排序-了解容易实现的排序方法

冒泡相邻交换大数沉底;摇晃排序(鸡尾酒/…

⭐⭐阅读全文 →
4-13

合并排序、快速排序-排序的高速化实现

分治思想;归并稳定 O(n log n)…

⭐⭐⭐阅读全文 →
4-14

时间复杂度、大O表示法-估算完成处理所需的时间

大 O 只看量级不看常数;常见档位一张表…

⭐⭐⭐阅读全文 →
4-15

线性查找、二分查找-从数组和列表中查找需要的值

线性 O(n) 什么都行;二分 O(lo…

⭐⭐阅读全文 →
4-16

广度优先查找、深度优先查找、剪枝-在遍历树形结构中查找

BFS 层层扩散用队列找最短;DFS 一…

⭐⭐⭐阅读全文 →
4-17

字符串查找、蛮力法、BM算法-在字符串中查找其他字符串

蛮力逐位比 O(n 乘 m);BM 坏字…

⭐⭐⭐阅读全文 →

第五章 从设计到测试

5-1

注释、缩进、嵌套-编写可读性高的代码

代码是写给人看的;注释说为什么不说是什么…

⭐阅读全文 →
5-2

命名规则、代码编写规范-确定编写代码的规则

命名规范 snake_case came…

⭐阅读全文 →
5-3

单元测试、集成测试-排除程序实现中的问题

单元测零件集成测组装;pytest;测试…

⭐⭐阅读全文 →
5-4

系统测试、验收测试-确认程序实现是否满足需求

系统测整体验收测需求;V 模型左右对应…

⭐阅读全文 →
5-5

黑盒测试、白盒测试、覆盖率-了解测试的方法

黑盒看输入输出白盒看内部路径;行覆盖分支…

⭐⭐阅读全文 →
5-6

等价划分、边值分析-学习黑盒测试的技巧

等价类每档取一个代表;边界最易错取点在…

⭐⭐阅读全文 →
5-7

Bug、调试、调试器、BTS-发现问题并进行管理

复现最小化定位;print 断点调试器三…

⭐⭐阅读全文 →
5-8

检查、静态分析、软件指标-在不执行程序的情况下验证

评审走查;静态分析不跑代码找毛病;圈复杂…

⭐⭐阅读全文 →
5-9

软件生命周期、DevOps-思考从软件规划到结束使用的问题

瀑布迭代螺旋敏捷;DevOps 打破开发…

⭐⭐阅读全文 →
5-10

CI、CD-自动化软件的开发流程

持续集成每日合并自动构建测试;持续交付与…

⭐⭐阅读全文 →
5-11

重构-在不改变程序行为的前提下整理代码

重构有测试保平安;小步快走;坏味道与常用…

⭐⭐阅读全文 →
5-12

测试驱动开发、测试优先、XP-以自动测试为前提推进开发

红绿重构三拍子;测试先行倒逼设计;XP…

⭐⭐阅读全文 →
5-13

E-R图、DFD图-将数据结构和流程可视化

E-R 图画数据关系;DFD 画数据流向…

⭐⭐阅读全文 →
5-14

构建、make、Ant-编译自动化

构建不只编译;make 依赖时间戳;现代…

⭐⭐阅读全文 →
5-15

类、实例、对象-了解面向对象的基本概念

类是图纸对象是产品;属性加方法;三大特性…

⭐⭐阅读全文 →
5-16

继承、子类、多重继承-继承类的属性

继承复用扩展;重写;多重继承 MRO;组…

⭐⭐阅读全文 →
5-17

字段、方法、属性-处理组成类的数据和操作

字段存状态方法做动作;property…

⭐⭐阅读全文 →
5-18

封装化、访问修饰符-只对外公开必要的信息和步骤

封装藏细节公开接口;public pri…

⭐⭐阅读全文 →
5-19

多态、接口-创建相同名字的方法

同一接口不同实现;鸭子类型;接口是契约

⭐⭐⭐阅读全文 →
5-20

UML、设计模式-面向对象开发中使用的建模方法

UML 常用图;GoF 23 模式三分类…

⭐⭐⭐阅读全文 →
5-21

相关性、泛化、聚合、组合-考虑多个对象之间的关系

依赖关联聚合组合由弱到强;is-a 与…

⭐⭐⭐阅读全文 →
5-22

命名空间、模块、软件包-将相关的类集中在一起

命名空间防重名;模块是文件包是目录;im…

⭐⭐阅读全文 →
5-23

AOP面向切面编程、DI依赖注入-解决面向对象中难以解决的问题

横切关注点分离日志事务;DI 反转控制解…

⭐⭐⭐阅读全文 →
5-24

DDD、值对象-使用客户和开发者的通用语言

通用语言统一说话;限界上下文;值对象不可…

⭐⭐⭐阅读全文 →
5-25

构造函数、析构函数-对象的初始化和释放

__init__ 初始化 __del__…

⭐⭐阅读全文 →
5-26

WBS、EVM-管理开发进度

WBS 拆到可交付可估计;EVM 三值四…

⭐⭐阅读全文 →

第六章 Web技术与安全

6-1

HTML、HTTP-了解Web基础知识

HTML 是骨架 HTTP 是搬运工;请…

⭐阅读全文 →
6-2

库、DLL、SDK、框架-软件开发中所需功能的集合体

库是工具箱框架是毛坯房;静态动态链接;控…

⭐⭐阅读全文 →
6-3

CSS、CSS框架-更改Web网站的设计

内容与样式分离;选择器三件套;Boots…

⭐阅读全文 →
6-4

Cookie、会话-识别同一个用户

HTTP 无状态;Cookie 存浏览器…

⭐⭐阅读全文 →
6-5

静态Web网站、动态Web网站、CGI-在互联网上提供服务

静态照本宣科动态见人下菜;CGI 开进程…

⭐⭐阅读全文 →
6-6

MVC、MVVM-划分GUI应用的功能

MVC 三权分立;MVVM 数据绑定;前…

⭐⭐阅读全文 →
6-7

DOM、Ajax-操作HTML的元素

DOM 是树;Ajax 局部刷新不换页…

⭐⭐阅读全文 →
6-8

jQuery、虚拟DOM-在Web浏览器中轻松实现动态控制

jQuery 66.5% 仍在役;虚拟…

⭐⭐阅读全文 →
6-9

CSV、XML、JSON、YAML-Web中常用的数据格式

四种格式一张表;JSON 成 Web 标…

⭐阅读全文 →
6-10

SQL、DBMS-用统一的方式处理数据

SQL 声明式;DBMS 管数据;SQL…

⭐阅读全文 →
6-11

并发控制、独占控制、事务、死锁-确保数据一致性的技术

锁与事务两路防线;死锁四条件;统一加锁顺…

⭐⭐⭐阅读全文 →
6-12

租赁服务器、VPS-租用服务器提供服务

自管共用专有三级;VPS 虚拟化切分;树…

⭐阅读全文 →
6-13

SaaS、PaaS、IaaS-云计算服务

披萨比喻三层责任;管到哪一层是分界

⭐阅读全文 →
6-14

虚拟机、Docker、Vagrant-用软件实现的硬件

虚拟机带内核重;容器共享内核轻;镜像分层

⭐⭐阅读全文 →
6-15

API、系统调用、混搭-调用操作系统和其他应用软件的功能

API 是窗口;系统调用是大门;混搭拼服…

⭐⭐阅读全文 →
6-16

Git、GitHub、Subversion-了解版本管理系统

集中式 vs 分布式;快照非差异;分支便…

⭐⭐阅读全文 →
6-17

开源软件、许可协议-免费公开的源代码

自由不等于免费;copyleft 与宽松…

⭐⭐阅读全文 →
6-18

逆向工程、反汇编器、反编译器-还原其他人的软件

编译单向不可逆;汇编级还原;边界在许可证

⭐⭐阅读全文 →
6-19

漏洞、安全漏洞、缓冲区溢出-了解安全漏洞

漏洞三类;栈溢出覆盖返回地址;供应链事件

⭐⭐⭐阅读全文 →