夯实基础原理,勿只追新框架

内容管家 编程开发评论2字数 3712阅读12分22秒阅读模式

夯实基础原理,勿只追新框架

导语

作为开发者,我们天然喜欢追逐新技术——每当有新技术出现,往往会迫不及待地去尝试。但问题在于,业内大多数知识的生命周期都很短,大多数框架在 2 到 5 年内就会达到峰值并开始衰退。随着 AI 代码生成器的兴起,这个更迭速度比以往更快了。很多人在"Vibe Coding"(直觉式编程),即用自己从未真正掌握的技术来写代码。

相反,专注于基础知识的人能够更快地适应新技术,因为他们理解的是底层原理。所以,与其每月都在追新框架,不如把时间花在那些「不会过时」的东西上。

框架更迭速度惊人

如果你在这个行业待得够久,应该亲眼见证过许多框架的兴衰。GWT、Apache Tapestry、Backbone.js、Knockout.js——这些都曾红极一时,如今已少有人问津。

Stack Overflow 的一项 JavaScript 框架流量分析 清晰展示了这一趋势:框架的崛起、登顶和衰退,整个周期往往只有几年。2011 年前后,Backbone、Knockout、Ember 是"当红炸子鸡";到 2015 年,Angular 1.x 已停止维护,Angular 2.0 甚至要求开发者重写整个应用。

甚至存在一个技术「寿命层级」:

  • 编程语言:10 年以上
  • 数据库:7–10 年
  • 后端框架:3–5 年
  • 前端框架:约 18 个月

如果你在所有这些层级上投入同等精力去纠结选型,那纯粹是在浪费时间。

代码「半衰期」数据也印证了这一点。Erik Bernhardsson 分析了 26 个以上开源项目,计算出代码的中位半衰期为 3.33 年。Angular 这样的前端框架处于最短端,仅 0.32 年,而 Linux 则达到 6.6 年。结论很清楚:越往技术栈上层走,寿命越短。

为什么基础知识更重要

当你真正理解基础知识时,你掌握的是各种框架和编程语言背后的原理与概念。这让你在编程中更具适应性和灵活性——无论是在切换技术栈,还是在现有框架无法满足需求时。

不同编程语言写法不同,但「代码异味」(code smell)却相似。烂命名在什么语言里都是烂的。框架千变万化,但设计模式是相通的。技术栈各有不同,可并发原理、数据结构、分布式系统、整洁架构的原则却殊途同归。

理解这些底层知识,能让你更高效地使用框架——因为你不仅知道怎么用,还知道怎么让框架适配你的需求。你不是在机械地照着教程敲代码,而是真正理解底层发生了什么。

举一个例子:假设你用 Rails 快速构建了一个图片分享应用,一开始运行良好,但随着用户量增长,性能问题开始出现。这时候该怎么办?

缺乏基础知识的人可能一头雾水。而懂基础的人能够定位瓶颈,提出有针对性的解决方案:用 CDN、压缩图片、合理设计缓存、换用更适合的存储方式——这些都不是从文档或 AI 助手里能直接找到的答案。

问题的答案不在文档里,而在对原理的深刻理解里。

基础知识能通过学框架来获得吗?

值得说明的是,框架确实可以是学习基础概念的好途径。比如通过 Rails 学 Ruby,能接触到 ACID、ORM 等概念;通过 React 能了解函数式编程的基础;通过 Bootstrap 能学 CSS 布局。框架是入口,但不应是终点。

AI 时代,基础知识反而更重要

代码是 AI 写的,但责任是你的

随着 AI 工具生成的代码已占据约 41%的总量,有一种声音开始出现:既然 AI 能写代码,我们还需要理解底层原理吗?

答案是:AI 写代码,但责任仍在你肩上。 AI 编码助手擅长处理语法、样板代码和模式建议,但它们不擅长理解业务上下文。它们不会参加高管会议来理解成本与性能的权衡。它们不知道客服系统需要"五个九"的可用性,而内部仪表盘可以容忍停机。它们无法读懂弦外之音——当有人说"应用要快"时,实际意思是"要省钱"。它们无法将这些点连接起来。

数据也揭示了风险:48% 的 AI 生成代码存在高危安全漏洞,且未经适当审核&查验时,AI 代码的缺陷率是人工代码的 1.7 倍。仅有 33% 的开发者完全信任 AI 生成的代码。这意味着大多数 AI 代码需要与初级开发者代码同等程度的审核&查验——必须有人真正理解代码,才能发现其中的问题。

因此,调试、审核&查验和验证 AI 代码已成为关键技能,而没有扎实的基础,这些根本无法完成。

没有基础,调试 AI 代码几乎不可能

想象一下:你用 AI 生成了一段代码,但它运行时出了问题。没有基础知识,你甚至无法解释程序为什么在运行、什么时候会失败,或者如何调整程序以适应未知场景。AI 助手可能会帮忙,但它也可能把你带到错误的方向——届时修复的代价会高得离谱。

所以,AI 时代最有价值的开发者,不是那些能生成最佳提示词的人,而是那些知道幕后发生了什么的人——知道如何改进 AI 输出,如何让它长期安全运行的人。

没有基础支撑的 AI,是一种负担。

专家型通才:AI 时代的理想人设

技术变革从未消灭技能需求

程序开发的每一次重大进步都遵循同样的规律。早期的汇编程序员被告知,编译器的出现会让他们失业——结果恰恰相反,它让开发者能在更高的抽象层级工作。运维工程师被告知,云计算会让这个职业消失——结果它带来了新项目、新公司和新工程岗位的爆发。

AI 也是一样。降低门槛从不意味着技能需求减少,反而意味着需求增加。 当 AI 承担越来越多的代码工作时,不可避免地,人类剩下的工作越来越少,但这些剩下的才是核心:"理解系统、做出架构决策、权衡取舍、表达意图"。

这可以用朱可效应的逆转来解释。1865 年,经济学家威廉·斯坦利·杰文斯观察到:当蒸汽引擎的燃煤效率提高时,煤炭消耗却上升而非下降。原因在于:效率解锁了新的使用场景,让原本负担不起煤炭的行业也开始使用它。

这一效应如今正在科技行业显现。AI token 成本下降了 10 倍,消耗量却上升了 100 倍。企业现在为每个任务使用更多 token,因为更高的准确率变得经济可行。

文艺复兴式开发者

正如文艺复兴时期的学者们融合了艺术、科学与工程,在 AI 增强的世界中表现出色的开发者也必须将自己重塑为通才。正如 Werner Vogels 在文章《The Dawn of the Renaissance Developer》中所指出的:他们意识到系统是一个动态的、不断变化的环境,影响着服务、API、数据库、基础设施和人类交互。他们是自己产品的质量、安全和意图的主人。他们也在 AI 无法协助的领域拥有知识。

为此,我们需要通过提升好奇心、系统思维、系统设计、架构能力、沟通能力、主人翁意识和商业洞察力,成为专家型通才。同时,我们还需要精通代码验证和审核&查验——因为当 AI 犯错时,我们必须知道如何应对。

专家型通才可以理解为这样一种工程师:面对一个混乱的新问题,能快速理解系统、找到关键杠杆、解决问题,不需要手把手指导、数周后交付。不是样样通样样松,而是在所有重要领域都有深度的高行动力连接者

学习时间分配:80/20 法则

那么,如何安排学习时间来实现这一目标?

有一个强大的启发式原则:80% 的学习时间用于基础主题,20% 用于框架、库和工具。 原因在于:框架这类东西,你很可能在实际工作中就学会了——面对真实问题,实践中自然会掌握。但没有人会在工作中教你分布式计算模式、整洁代码和良好的系统设计——这些都需要你自行投入。

基础知识是时间的过滤器

学习新东西之前,不妨先想想"林迪效应"会如何影响它。这条原则说的是:一样东西存在的时间越久,继续存在的可能性就越高。C、SQL、HTTP、REST 都已历经数十年,至今仍是基础设施的主角。而那些炙手可热的新框架,两年后很可能就销声匿迹了。所以,不必急着把每个新工具都学一遍。

时间是你最好的过滤器。把精力投入到那些可以跨工作、跨团队、跨领域复用的基础知识上。让炒作沉淀下来,真正有生命力的东西才值得学习。

值得投入的八大核心领域

以下是你值得长期投入的基础知识方向:

  • 算法:解决问题的基本功。无论你是否在写排序算法,都需要时刻关注时间复杂度和空间复杂度,在权衡取舍时做到心中有数。
  • 数据结构:理解何时该用哈希表、树或队列,决定了代码是从"能跑"到"跑得好"的区别。
  • 软件设计与架构:MVC、微服务与单体架构、 SOLID 原则、模块化清晰代码——这些知识决定了如何组织一个系统。真正掌握了设计逻辑的人,能够快速适应任何框架。
  • 设计模式:框架来来去去,但观察者、策略、工厂这些模式几乎无处不在。一旦真正理解它们,就会发现几乎所有框架里都有它们的身影。
  • 分布式计算模式:在微服务和云原生时代,CAP 定理、最终一致性、容错机制等知识至关重要。
  • 测试:搞清楚如何写好测试、理解测试金字塔的概念、掌握 TDD,能让你在重构和修改代码时不再畏手畏脚。
  • 系统设计:这个技能的价值怎么强调都不为过,从高级工程师开始尤其明显。
  • 整洁代码:写出让别人(以及未来的自己)能看懂的代码。这种能力会在整个职业生涯中持续产生复利效应。

经得起时间检验的经典书籍

如果认真想投入基础知识,以下几本书经过了时间的验证,值得反复研读:

  • 《程序员修炼之道》(The Pragmatic Programmer)—— David Thomas & Andrew Hunt 著,软件工艺的经典指南,讲的是如何思考软件的构建,而不仅仅是写代码本身。
  • 《代码大全 2》(Code Complete 2)—— Steve McConnell 著,软件构建的"圣经",内容密度大但极其实用,适用于任何语言和技术栈。
  • 《数据密集型应用设计》(Designing Data-Intensive Applications)—— Martin Kleppmann 著,讲解分布式系统的工作原理,涵盖存储引擎、复制、分区、事务和一致性模型,能让你真正理解数据库为什么这样运行,以及如何构建可扩展的系统。
  • 《设计模式:可复用面向对象软件的基础》—— GoF 著,模式领域的开山之作。虽然部分模式已不再流行,但理解它们能让你在任何团队和技术栈中都有共同的设计语言。
  • 《算法导论》(Introduction to Algorithms)—— Cormen, Leiserson, Rivest, Stein(CLRS)著,算法领域的"圣经"。不需要从头到尾读完,但值得放在书架上随时查阅。
  • 《整洁代码》(Clean Code)—— Robert C. Martin 著,观点鲜明、有时存在争议,但其核心观点——写出可读、可维护的代码——是普遍适用的真理。

额外福利:MIT"计算机教育的缺失学期"

MIT 有一门免费的课程 The Missing Semester of Your CS Education,涵盖了没人教过你、但天天都在用的技能:Shell、Git、调试、性能分析、持续集成、开发环境配置等。

全套课程录像都有,目前已被翻译成 14 种语言。无论你是初级开发者还是想补齐短板的高级工程师,都值得收藏。

技术简历服务与个人品牌咨询

高级简历包

由超过 300 场合面经验提炼而成的简历系统,提供 ATS 友好模板(含总结型、项目型等格式)、求职信、AI 写作提示,以及 LinkedIn 优化指南。适合需要快速打磨求职材料的技术从业者。

简历 reality check(现实核查)

由 CTO 级别专家对简历和 LinkedIn 个人主页进行逐项拆解:指出哪些内容真正抓人眼球、哪些部分在拖后腿,并演示招聘经理如何在 30 秒内完成初筛判断。适合对自身定位不清晰、投递效率低下的候选人。

一对一教练辅导

针对工程或技术管理路线上的具体卡点,提供定制化 session,包括:路径规划、实战方法论传授以及进度追踪。适合有明确瓶颈(晋升、转岗、转型)但缺乏外部视角的高阶技术人员。

订阅社区

加入超过 2000 名成员的技术社群,持续解锁新推出的模板、指南和工具,并享有提前访问和优先反馈权。

广告合作

面向企业及服务方,精准触达创始人、高管和技术决策者。当前订阅规模接近 5 万人。支持通过推荐好友获取书籍及资源奖励。

延伸阅读

 
内容管家

发表评论