学高数有什么屌用呢?本来就该是需要什么学什么,为什么为了凑全、凑整、过关去学呢?学了对我做项目有什么用呢?本来就是错误的学习方法,一代代延续,可悲至极。真正有用的是占山为王,逐个击破,滚雪球式地按需去学。
另外,可以迁移的技能就是好技能,除此之外,全是垃圾。最少且必要的知识,也是那部分为数不多的可以迁移运用的知识。
游牧人速通
前端(30min)
动机
互联网不缺大而全;所有教程都需要重构精简一遍
价值
- 建立对程序员的基本认识
- 借助AI开发软件
- 正确的编程价值观和品味
- 建立兴趣
- 找到未来的方向,事半功倍,避免浪费数百小时学不重要的东西
写代码的本质
遵循某种规则的文本(规则就是编程语言)
人 —(概念化)—> 解决方案 —(编程语言)—> 代码
真正重要的是把一个任务拆解成不同模块,每个模块需要写哪些代码 - 有了这个能力,AI就可以写
人都会中文,并不都能写成书。
实操
- 下载VScode
- 创建
index.html文件 - 模块化排版
网络上有html教程,可以自行搜索学一下
问题
为什么双击html文件打开会被浏览器渲染?当你输入网址的时候发生了什么?
客户端(client) -> 网络 -> server
请求 - 响应
CSS & JavaScript
这些本身都是可以跟HTML写到一个文件中的。但为了模块化开发,可以分成三个文件。
Network这样就会收到相关联的三个文件,下载下来,然后做出响应。
js请求b站api,获取数据 - 直接前端去调用b站数据会被拒绝;可以用node.js做一个自己的后端,前端去调用自己的后端,然后后端再去偷偷调用b站的后端数据。
更复杂的是可以自己建立一个数据库,有用户注册、发动态都会更新到数据库中,然后前端会从后端调用数据。
后端(30min)
前端后端数据库是怎么联动的
后端:软件真的只是手机上运行的代码吗?为什么手机端、电脑端的购物车数据可以同步?软件背后的一整套服务(服务端)也在通过网络请求为客户端提供支持。
后端不是代码,是一段数据。
以数据为中心的角度:
- 前端:数据的展示和数据的交互
- 后端:数据的存储、处理,以及给前端数据点提供访问接口(API)
客户端 - request - 网络 - response - 服务端
常见的后端编程语言:Java,C#,js
常见的后端开发框架:Java(Spring Boot), JavaScript(ExpressJS), Python(Django), C#(ASP.NET)
框架:在开发过程中有一些通用的模式,有人做了一些工具可以重复使用(软件库 - 别人写好的代码)
常见的数据库:MySQL, PostgreSQL, MongoDB
实操
- 语言:JavaScript
- 运行环境:NodeJS(需要下载)
- 库(library):ExpressJS
NodeJS运行环境:在其出现之前,JavaScript只能在浏览器上运行,能不能在后端脱离浏览器也用这个语言?
完成以上之后,在terminal中运行npm install express来安装express框架。npm是nodejs的包的管理器(package manager),帮你管理第三方的依赖。
做一个todo list app
增删改查:
- 获取所有TODO
- 获取单个TODO
- 创建TODO
- 删除TODO
API设计模式
这个是用来设计前后端沟通的规则 - 前端服务员报菜谱上的菜名,后端厨师才能出对应的餐
- RESTful
- GraphQL
- RPC
- SOAP
RESTful API
- Resource
- HTTP Methods
- GET
- POST
- DELETE
资源就是你要管理的数据实体。它们在 URL(路径)中用名词表示。
HTTP 方法 = 你想对资源做的动作。
常见的有:
- GET → 读取(查)
- POST → 新建(增)
- PUT / PATCH → 更新(改)
- DELETE → 删除
举例:
GET /todos → 获取所有 TODO
GET /todos/1 → 获取 ID=1 的 TODO
POST /todos → 新建一个 TODO
PUT /todos/1 → 更新 ID=1 的 TODO
DELETE /todos/1 → 删除 ID=1 的 TODO 这就是 增查改删 (CRUD) 对应的四种操作。(Create、Read、Update、Delete)
获取所有 TODO: GET /todos
获取单个 TODO: GET /todos/{id}
创建 TODO: POST /todos
删除 TODO: DELETE /todos/{id}
可以按F12 inspect - Network刷新页面去看,headers下面有requestURL(resources)和requestMethod(HTTP method)
本地json文件存储前端请求
用浏览器的console进行代码实验 -> 本地文件存储前端请求(todos)-> postgreSQL
总结
- 前端(Frontend):浏览器里写
fetch请求,或者将来做一个 HTML/React 界面。 - 后端(Backend):Node.js + Express,负责“接收前端请求 → 处理 → 跟数据库打交道”。
- 数据库(Database):PostgreSQL,负责“持久化保存数据”。
1. 前端 → 后端
- 前端发起 HTTP 请求,比如:
fetch('http://localhost:8989/todos')
- 浏览器会通过 HTTP 协议把这个请求发送到 8989 端口的服务器。
- 服务器(Express)收到请求,根据路由匹配,比如
/todos对应到app.get('/todos', ...),执行里面的代码。
! 前端就像餐厅里的 顾客,把点单(请求)交给服务员(后端)。
2. 后端 → 数据库
- 后端代码里用
pg驱动,把 SQL 发给 PostgreSQL。 - 比如
pool.query('SELECT * FROM todos')。 - 数据库查询到结果后,返回给后端。
! 后端就像餐厅的 服务员,把点单交给 厨房(数据库),等厨师做好菜(查询结果)。
3. 数据库 → 后端 → 前端
- 数据库返回查询结果,Node.js 拿到数据后,用
res.json(data)把数据转成 JSON。 - 浏览器收到 JSON 后,再渲染出来(比如在 Console 里看到
[ { id: 1, title: '1st todo', completed: false } ])。
! 整个过程就像:顾客点菜 → 服务员传菜 → 厨房做菜 → 服务员端菜 → 顾客吃到菜。
技术栈梳理
- 语言:JavaScript(你写的代码)。
- 运行环境:Node.js(跑后端)、浏览器(跑前端)。
- 框架:Express.js(帮你快速写 Web 服务器)。
- 数据库:PostgreSQL(存数据)。
- 驱动:pg(Node.js ↔ PostgreSQL 的桥梁)。
- 工具:VS Code(写代码)、pgAdmin(看数据库)、浏览器 DevTools(调试 API)。
- 协议:HTTP(前后端通信)、SQL(数据库语言)。
想象你开了一家外卖餐厅
顾客点单 → 前端
- 顾客在手机 App / 网页上下单。
- 这就好比浏览器里你写的
fetch请求。 - 前端的任务:收集用户输入,把它打包成请求发给服务员。
服务员接单 → 后端 (Express + Node.js)
- 服务员听懂顾客点的是什么菜(路由
/todos)。 - 然后把需求转给厨房(数据库)。
- 这里的服务员就是 后端代码,跑在 Node.js 上,主要逻辑框架是 Express。
- 服务员听懂顾客点的是什么菜(路由
👉 后端不等于数据库,后端是“中间人”,负责沟通前端和数据库。
- 厨房 → 数据库 (PostgreSQL)
- 厨师(数据库)真正掌握原材料(数据)。
- 你点了“加一条 todo”,服务员就去告诉厨师:
INSERT INTO todos ...。 - 厨房做好菜(查询结果/新数据),再交给服务员。
👉 数据库是 存储层,后端必须通过 SQL 才能和它交流。
- 服务员端菜 → JSON → 前端展示
- 服务员把厨房做好的菜(数据),用一个托盘(JSON 格式)端给顾客。
- 前端拿到 JSON,再决定要不要放在网页上显示。