
最近刚做完一个小程序上线心血来潮写了一篇总结发到 CSDN 上顺手翻了下历史文章才猛然发现——我已经五年没在这发过东西了。一篇篇往回看那些文章全是读书时遇到问题后、翻遍资料咬牙记下的笔记。文笔稚嫩排版粗糙但那股“非要搞懂”的劲儿隔着屏幕都能感受到。毕业后参加工作遇到的问题更杂、更怪笔记也记了不少却再没有心性把知识点整理成文章发出来。为什么说实话是因为怕——感觉要学的东西太多了知识铺天盖地涌过来总觉得“等我把这块吃透了再写”、“等我把体系搭好了再整理”结果一等就是五年。现在我想明白了没有完美的时机只有此刻。所以从这篇开始我会坐下来把这些年摸爬滚打的经验一点点写下来。要是时光能倒流我就把这系列文章送给刚毕业时的自己要是不能那就送给刚毕业的你们。我毕业这五年都干了什么五年前我进了一家电商公司的大数据部门做后端相关的工作。这些年经手的项目不少主线大概有三条电商运营 BI 平台——后端服务开发与维护卖家平台数据体系——实时 离线大数据计算任务开发数据分析 Agent 系统——探索 AI 辅助数据分析回首这五年说是“摸爬滚打”一点也不夸张。从被一个 NullPointerException 搞到半夜到后来能在生产环境宕机时一边安抚运营一边从容查日志我不敢说自己多厉害但至少变得遇事不慌了。而让我“不慌”的底气正是下面这套技术栈——它是我这几年一点点啃下来的武器库。这个系列要写什么也是我的技术栈全景接下来的文章我会按照下面这个目录一条条展开。每一篇不讲虚的只讲我踩过的坑、我理解的原理、我拿来解决过实际问题的方案。一、编程语言——吃饭的家伙Java我的主力语言从并发到 JVM 调优该趟的浑水都趟过了Golang后来入坑协程和通道的思维转换让我重新理解了“并发”Python脚本粘合剂 AI 应用的主力写得快比写得优雅更重要这一块我会重点讲语言只是工具但工具的边界决定了你的效率。二、数据存储——不同场景选不同刀服务存储在线业务MySQL事务、索引、锁、分库分表该背的八股我全在线上验证过Redis缓存击穿、雪崩、穿透还有那些“用缓存扛了 QPS 翻十倍”的爽事大数据存储分析 海量数据ClickhouseOLAP 列式存储千亿级数据查询秒级响应是怎么做到的Druid时序聚合场景下的老牌选手HBase海量 KV 场景下的 RowKey 设计一个没设计好就等着 Region 热点了这一块我会重点讲存储没有银弹选错存储比写烂代码更致命。三、网络通信——服务之间的语言HTTP从 RESTful 到连接池配置那些被超时坑过的日子RPC内部服务调用的效率之选序列化、超时、熔断一个都不能少这一块我会重点讲本地调用可以任性远程调用必须带敬畏心。四、大数据计算——离线 实时两把刷子Flink实时计算的状态、窗口、Exactly-Once我拿数据一致性换过教训Spark离线批处理 一些 SQL 优化百万级任务调度的那些事这一块我会重点讲数据量一大复杂度就藏在 shuffle 和倾斜里。五、大模型应用开发——新战场老经验LLM大模型的基础能力和调用范式RAG检索增强生成让大模型“长”出私有数据的手脚MCP/Agentic从“一问一答”到“自主执行任务”的演进这一块我会重点讲AI 没有取代我但会用 AI 的人会。为什么我要把这些写下来原因有两个都很自私第一检验自己。有些知识你说学过吧确实学过。但如果没有系统整理过很多细节是漏掉的——以为自己会了其实还差得远。写作是对抗“学会幻觉”最好的方式。第二如果能帮到一个人就值了。哪怕你面试时刚好回答上一个相关问题或者工作中用这些知识解决了一个实际 bug那这篇文章就没白写。开篇正文这篇文章作为开篇我不想这是一篇口水文章下面就上干货先讲讲大学里哪些课程比较重要为什么它们比较重要以下纯属个人站在后端开发角度的观点一、计算机组成原理很多人第一反应可能是哪门编程课大学时候计算机组成原理可能也只是随便学学也没怎么当回事但我却想要把这门课放在首位。因为作为程序员计算机可以说是我们工作中的亲密合作伙伴如果你对它都不了解有什么脸面说自己是计算机专业的。你要知道计算机里都有哪些组件分别在工作中承担着什么样的角色。比如 CPU它是我们程序中计算的核心组件CPU 不够会导致你的程序无法正常地处理来自用户的请求同样的只有知道内存和外存的性能差异你才知道在写程序中哪些数据应该放在内存哪些可以用的时候再加载以及遇到程序 OOM 了你要怎么处理。可以说计算机组成原理是计算机专业的基石它是你理解一切问题的根源。二、计算机网络在大学中我知道很多学校的这个计算机网络课都是教一堆的概念很多人也很烦这些要记的概念感觉又多又没用。只有当你的服务请求突然 502 的时候你才会知道计算机网络是互联网应用的基石这个网络崩了你写再多的代码也都白费因为请求根本到不了你的程序。三、数据库以前天真的我一直没意识到数据的重要性一直专注于写逻辑代码因为在大学中很多程序的数据都是我们自己造出来的要多少有多少根本不理解大佬们说的数据是昂贵的。直到进了大数据部门看着各种业务数据经过数据分析师的分析之后形成一条条转化成金钱的运营决策再进一步转化成销售额的时候我才意识到数据简直就是程序的灵魂如果没有数据你的系统就是一堆空跑的代码没有任何意义。甚至有时候数据的及时性和正确性都可能影响数据分析师对现在局势的判断导致做出错误决策给公司带来损失。而数据库课程教什么呢教你数据模型、如何设计数据库、事务、SQL 设计等。但这其实远远不够关于数据库你还要知道索引、数据备份与同步等甚至进了公司你还会发现在设计数据库的时候有时候甚至需要反范式主要是为了换取性能比如公司一般会要求不能使用外键。四、数据结构与算法这一步才终于到了我们工作的主要内容写代码。这是最后但并不是最不重要的课程这是我们日常工作必备的技能虽然说现在有了 AI 辅助编程但是代码这块硬实力还是不能丢因为上了真实项目之后你肯定会发现AI 辅助编程工具有时候真的很智障它就像游艇的动力马达而你才是那个导航的总舵手它可以让你不用手动去摇桨但你必须把握前进的方向。这也就是为什么现在面试还是没有取消手撕算法题的原因你只有自己会写你才知道 AI 写的对不对有没有什么潜在的问题。同时数据结构与算法可以帮助我们更好地理解其他的知识比如栈、队列、哈希表等在很多计算机系统中都有广泛的应用算法更不用说了好的算法有时候可以用最少的资源来实现承载更多业务的服务在这个行行都在追求降本增效的时代简直就是老板梦寐以求的梦中员工啊。写在最后以上列出的只是大学里有教的课程中对于计算机专业比较重要的内容并不代表其他课就不重要也不代表着学了这些就够了路漫漫其修远兮知道了这些只能算是入门了后面还有分布式系统、大数据、高并发、虚拟机调优、sql 调优等等要学的但是不要慌还记得高中时学过一篇文章其实就是要“走一步再走一步”最后回头就会发现原来自己已经走了这么远而那一个个看似巍峨的小山峰不过是托举你前行的垫脚石下一篇我想讲讲电商平台的系统架构或者你想先听哪个评论区告诉我。