Just for Survive:一个普通程序员的Linux梦
我是一个普通程序员,每天敲代码不是为了改变世界,只是为了活下去。今天下班后,我在出租屋里翻完了《Just for Fun》——Linus Torvalds的自传。书里他说,人生有三个阶段:survival(生存)、social order(社会秩序)、entertainment(娱乐)。Linux就是他“just for fun”搞出来的。可我读着读着,眼泪差点掉下来。因为在我们这儿,从来没有“just for fun”这回事,只有“just for survive”。 早上六点半闹钟响,我爬起来挤地铁。车厢里全是和我一样黑眼圈的码农。九点打卡,打开电脑,先看老板昨晚十一点发来的消息: 老板: 这个功能今天必须上线,不然KPI扣分,奖金没了。 我不敢回「今天做不完」,只能埋头敲代码。午饭是外卖十块钱的盒饭,边吃边改Bug。晚上十点半,产品经理又发来微信: 产品经理: 用户反馈卡顿,再优化一下。 我: 好。 其实心里在骂娘。回到家已经十一点半,房贷、车贷、父母养老、孩子上学……每行代码后面都是“just for survive”四个大字。 Linus小时候呢?爷爷给他买...
AI时代,程序员的软技能发展:从敲代码到指挥AI、经营自己
2026年4月,晚上十一点多,我坐在北京租的这间小一居里,空调嗡嗡响着,屏幕上又是Claude甩出来的一堆代码。我盯着看了二十多分钟,叹了口气:逻辑看着还行,但业务那边上次说的几个关键点又对不上,边缘case还漏了好几个。以前我自己从零敲一个功能,跑通了还能在心里小小得意一下,现在呢?大部分时间都花在给AI擦屁股、修bug、然后跟产品解释为什么这个方案不能直接上。 说实话,心里挺不是滋味的。翻出那本《软技能:代码之外的生存指南》的旧笔记,本来想找点方向,结果里面的话一句句戳得我更清醒了。作者说要把自己当成一家一人企业,别只当打工仔;要专业化,要学会跟人打交道,生产力得管好,最重要的——身体才是本钱。这些在AI时代,读起来像在说我这种35岁左右的普通程序员。 这两年国内互联网行业变化太快了。AI把基础代码、CRUD、套框架这些活儿干得飞快,很多公司已经默认一大半代码是AI生成的。以前招应届生干基础开发,现在好多部门直接不招了。35岁这个坎儿也越来越明显,上有老下有小,房贷车贷压着,薪资要求又高,企业一降本增效,就容易被优化。我有个朋友去年刚过35,被大厂“优化”了,投了几个月简历,...
我们这里技术真有好的 Leader 吗,还是企业的「黑手套」?
读完陈皓老师的这些笔记,我坐在出租屋里,电脑屏幕还亮着,眼睛干涩得发疼,好半天都没法往下滚动页面。心里像被什么东西堵住了,又酸又闷。 我就是一个最普通的打工人,在国内一家不算大的互联网公司干了七年多。从入职那天起,我就天天写CRUD、修线上bug、接产品临时改的需求、赶半夜上线。从来没带过团队,连个小组长都没混上。每天早上9点半打卡,晚上10点多才能走,周末经常一个电话就被叫回去“救火”。我早就认命了——“码农”嘛,不就是干体力活的吗?技术再好又怎样,升职加薪靠的是业务和销售,我只要把代码跑通、别出大事故就行了。加班、996、凌晨三点还在调试,我都习惯了,以为这就是普通程序员的命。 可今天读完《何为技术领导力》《如何拥有技术领导力》《如何成为一个大家愿意追随的Leader》这几篇,我突然觉得自己这些年活得特别可悲,也特别可笑。 最戳我心窝子的,是他那张Boss和Leader的对比表。Boss是“给我上”,Leader是“跟我上”;Boss制造畏惧,Leader制造热情;Boss收割成绩,Leader给予成绩……我遇到的那些上级,几乎全是前者。他们在周会上拍桌子吼“这个需求明天必须...
前端打包技术发展:Webpack、Vite、Rspack 与 Turbopack 流程对比(2026)
前端打包(bundling / building)在不同工具里的核心流程差异很大,主要体现在**开发环境(Dev)与生产环境(Prod)**如何处理模块。下面按 2026 年常见栈(Webpack、Vite(含 Rolldown)、Rspack、Turbopack 等)做流程对比,便于你按项目阶段选型。 Webpack / Rspack:传统 Bundle-First两者架构最接近:Rspack 是用 Rust 重写的 Webpack 兼容实现,流程几乎一致,整体更快。 核心流程(Dev 与 Prod 类似,偏全量打包) 入口扫描(Entry):从 entry 出发,解析 import / require。 依赖图(Dependency Graph):静态分析全项目,形成模块树(含子依赖)。 模块转换(Loaders / Rules):按文件类型走 loader(如 ts-loader、css-loader、babel-loader);Rspack 侧常用内置 SWC 并行加速。 优化(Optimization):Tree Shaking、...
前端包管理机制笔记:npm、Yarn、pnpm、PnP 与 Bun 的技术权衡(2026)
选包管理器时,表面是「谁更快」,底层其实是 Node 怎样解析模块、依赖怎样落到磁盘。这篇把几条主流路线串成一条脉络:各自解决什么、留下什么坑,以及和「模块解析」这条硬约束怎么博弈。读完你能快速对齐术语,并在新仓库里做出有理由的默认选择。 若你还关心锁文件、可复现安装在另一条语言里怎么落地,可与站内 2026 年 Python 包管理与依赖选择 对照;CI 里「装依赖再构建」的套路则与 GitHub Actions + Hexo 博客自动部署、全栈开发技术选型:Nuxt Nitro 与 Python 后端如何取舍 同属一类工程习惯。 读完你能带走: Hoisting(依赖提升) 与 幻影依赖 为什么总是一起被提起。 pnpm 的内容寻址、node_modules/.pnpm 与「严格依赖」在行为上差在哪。 Yarn PnP 与 Bun 各自换掉的是哪一层,迁移成本大致有多高。 npm(2010–至今):最早的「简单粗暴」设计带来的系统性问题核心技术架构 node_modules 扁平结构 + Hoisting(依赖提升):安装时,npm 会把依赖(含子依赖)尽量「提升」到根 ...
前端是什么(2026 年最新版笔记)
图:前端技能树 / Roadmap 示意(个人笔记整理) 我们每天都在上网,我们上网上的是什么?最简单的就是看图片、视频、文字,这些在计算机中统称为超文本(Hypertext)。访问一个网页,其实可以分为两个部分:前端(用户可见的交互前台)和后端(服务器逻辑)。 本笔记专注前端部分,帮助新手从零建立完整认知。 浏览网页到底做了什么? 图:在浏览器中输入网址后的完整流程(手绘) 当你在浏览器地址栏输入一个网址并回车后,到底发生了什么? 这张手绘大图(非常适合新手)完整展示了整个流程:DNS 解析 → TCP 连接 → HTTP 请求 → 服务器响应 → 浏览器内部解析(HTML/CSS/JS)→ DOM/CSSOM → Render Tree → Layout → Painting → 最终显示。 浏览器内核(Rendering Engine)负责把网页代码转化为可见页面。2026 年主流内核: Blink(Chromium):Chrome、Edge(新版)、Opera 等(占据 70%+ 市场) Gecko:Firefox WebKit...
后端是什么:2026 学习笔记(HTTP · I/O · API · WSGI · 数据库)
面向初学与回顾的一份结构化笔记:从前后端分工、HTTP 与 I/O,到 REST / GraphQL / RPC 等接口设计风格,再到 Python 的 WSGI/ASGI、多语言「应用—服务器」边界,以及数据库访问方式与工程实践。 学习路径可参考 roadmap.sh/backend(语言 → Git → 数据库 → API → 测试 → 容器化 → 微服务 → Observability)。 前端与后端:为什么底层更「稳」?典型 前后端分离 架构下:浏览器或 App 中的 Frontend 负责界面与交互;运行在服务器侧的 Backend 负责业务规则、数据与安全。双方通过 HTTP(S) 交换数据(常见为 JSON),形态仍是 请求—响应。 图:Frontend / Backend 职责划分 维度 Frontend(前端) Backend(后端) 关注点 界面、交互、渲染与客户端状态 业务规则、持久化、安全、性能与伸缩 运行环境 浏览器、移动端宿主(WebView 等) 服务器、容器或 Serve...
软件工程师 30 岁之后才能读懂的书:《人月神话》读书笔记
三十岁以前,我第一次读弗雷德里克·布鲁克斯(Frederick P. Brooks, Jr.)的《人月神话》,只觉得 1975 年写下的例子有些遥远。什么「向进度落后的项目中增加人手,只会使进度更加落后」、什么「没有银弹」、什么「概念完整性只能来自极少数人的头脑」……那时我在香港的初创公司,每天敲代码到深夜,靠着新框架和搜索就能快速堆功能。项目总延期,但最后往往还能勉强上线。我心想:这些老一辈的「神话」,早就被现代工具打破了吧? 现在我 34 岁,在一家中型科技公司带一个小团队。头发里多了白丝,肩膀也因久坐开始隐隐作痛。2025 年底到 2026 年初,我亲手跟了几个真实项目,才像被当头棒喝一样读懂这本书。它不是在恐吓年轻人,而是在提醒:软件开发的本质,往往不是和机器搏斗,而是和人类自身的局限性搏斗——乐观主义、沟通成本、概念的脆弱,以及对「再完美一点」的执着。 亲手验证「人月神话」的那一次2019 年,我负责一个企业级后台系统。客户催得急,原本估算要 6 个月,我们乐观地压到 4 个月。两个月过去,第一个里程碑彻底卡住:接口定义模糊、需求反复变动、几个核心模块互相踩脚。我的本能...
2026 年 Python 包管理与依赖选择:从「依赖乱象」到 pyproject、pylock 与 uv
2024 年前后,英文技术圈里常把 Python 依赖生态戏称为 dumpster fire(垃圾桶大火)。Niels Cautaerts 在 Python dependency management is a dumpster fire 里用「露营篝火失控」的叙事把问题讲透:脚本长成项目、别人机器上复现不了、一次 innocuous 的升级整锅端掉——默认工作流容易「随手 pip install」、锁文件与构建元数据各说各话,传递依赖又像开盲盒。到了 2026 年,规范面(pyproject.toml、依赖分组、标准化锁文件)和 工具面(以 Rust 实现的高性能解析/安装器)已经能把「可重现」从口号变成日常操作。我按「原则 → 工具地图 → 工作流 → 选型」整理这篇笔记,并穿插两篇写得极好的英文原文里的分层与分类图(已下载到本站、保留署名),方便和站内其它 Python 与工程化文章对照:全栈开发技术选型、FastAPI 学习笔记、GitHub Actions 部署。 读完你可以带走这些结论: 可重现 = 声明(direct deps)+ 锁定(全依赖...
FastAPI 登录与认证:OAuth2、SSO 与常见方式
上一篇 FastAPI 学习笔记:从 ASGI 到异步 API 的生态梳理 把协议栈和迷你案例跑通之后,很自然会遇到下一层问题:用户是谁、能不能访问这条接口、凭证存哪。这篇把「常见登录与认证」放在一张表里对照,再单独说清楚 OAuth2、SSO(单点登录) 在工程里各自指什么;仍以官方文档为锚,代码只写到能指导你拆模块的程度。 与 浏览器里 Cookie、Token、Session 的载体辨析,可配合 cookie、token、session、JWT 你们是不是在讨论同一件事。 Python 侧依赖锁定与 CI 可复现见 2026 年 Python 包管理与依赖选择。全栈里接口层与身份对接可与 全栈开发技术选型 对照;前端包管理与锁文件可与 前端包管理机制笔记 对照——运行时不同,「声明依赖 + 锁文件 + CI 装包」 仍是同一条习惯。 读完你能带走: 401 / 403、认证与授权 在接口设计里怎么区分最省事。 Bearer、JWT、OAuth2、OIDC、SSO 各解决哪一段,避免把「OAuth2 密码流教程代码」直接当生产方案。 fastapi-sso...