AI 编程时代,程序员该怎么应对?想用 AI 自己做软件的人又该了解什么?
AI 来临对软件开发行业的影响以及非程序员用 AI 开发软件需要掌握哪些基础最近这两年AI 的爆火和各种 AI 编辑器的问世比如 Trae、Cursor 等等让软件开发的门槛降了不少也对传统的开发岗位产生了一些冲击。不少人甚至开始担心程序员有一天会不会被 AI 替代我用 AI 编辑器开发也有一段时间了想聊聊自己的一些感受和体会。这篇文章主要想和两类朋友分享一类是咱们软件开发行业里的同行另一类是对编程感兴趣、想用 AI 自己动手做点东西的非程序员朋友。一、AI 对软件开发行业的影响1. 开发效率提升了但岗位也确实在减少我的感觉是AI 编辑器对于有编程基础的人来说确实能帮上很大的忙可以快速开发出软件、提高开发效率。这带来的直接影响就是——以前可能需要两个人完成的工作现在一个人借助 AI 也许就能搞定。所以岗位减少这个趋势我觉得是存在的。但要说程序员完全被 AI 替代至少近些年我觉得还不太可能。更准确地说AI 改变的是岗位的结构而不是直接消灭这个职业。2. 只有一项技能的人可能更容易受到冲击以前咱们这个行业你对某一项编程技能特别精通就会很值钱——比如你只做前端、只做 Java、只做 PHP深耕一个方向就能有不错的竞争力。但未来有了 AI 的辅助情况可能会有些变化。我觉得除了在一个方向上保持精通之外也需要适当拓宽自己的技术视野。不是说样样都精通而是至少要对整个技术链路有所了解这样才不容易被替代。只懂单点的兄弟确实相对会更容易被影响到。3. 关于 Agent 开发我的一些看法现在很多人在说要学 Agent 开发、要精通 Agent 开发什么的。我的看法是Agent 开发未来确实可能是一个方向我们做技术的可以去学习和尝试。但是——学习的重点可能要和以前不太一样了。以前我们学编程是学怎么写代码、学各种开发框架、对着官方文档敲代码。这些代码层面的东西说实话AI 现在已经做得很好了而且只会越来越好。如果我们还把精力花在这段代码怎么写上面可能很难比得过 AI。以前没有 AI 的时候我们是劳动力现在有了 AIAI 就是我们的劳动力。所以我觉得未来学习的重点应该放在 Agent 的设计思路、架构搭建、流程编排这些层面去理解 Agent 的核心思想和运作逻辑然后通过指挥 AI 来实现具体的应用开发。换句话说我们更像是架构师和指挥官的角色而不只是写代码的人。这个思路其实不只适用于我们这个行业别的行业可能也是类似的——学习的重点也许都需要发生变化。4. 码农该怎么办坦白说我觉得 AI 最先影响的可能就是像我这样偏纯执行的码农。因为我能做的AI 基本也都能做没有太多不可替代的核心价值。所以面对 AI 的来临我的感受是要么考虑转行要么就主动提高自己、拥抱 AI让 AI 成为自己有力的帮手。因为我也发现一个现象——同样是 AI 编辑器在不同的人手里产出的效果差别真的很大。工具是一样的关键看用工具的人。二、非程序员用 AI 开发软件需要掌握哪些计算机基础最近有不少客户找我说他们用 AI 编辑器做了一个项目能不能帮忙部署一下或者优化一下。通过和这些非程序员朋友的接触和交流我发现一个现象虽然软件开发的门槛确实降低了不少但对于完全没有编程基础的人来说想自己独立开发并运营一个软件还是需要学习不少基础知识的。并不是说现在有了 AI想开发一个软件或者运营一个软件就完全不需要专业人士的帮忙了。一个常见的误区所见即所得很多非程序员朋友用 AI 编辑器开发出来的项目给我的感觉是——他们觉得所见即所得。因为看到页面上已经呈现出了想要的效果就以为软件已经开发好了、可以用了。拿网站开发来说大部分非程序员通过 AI 编辑器做出来的网站往往是纯静态的页面。他们可能并不太了解一个真正能投入商用的软件需要哪些技术配合才能完整地实现所有功能。你是看到 AI 写出了你想要的效果但这个网站距离真正能用的程度可能还有不小的差距。一些值得了解的基础知识点接下来我整理了一些编程基础的知识点对于想自己开发软件的非程序员朋友希望会有帮助1. 什么是纯静态网页什么是动态网页简单来说纯静态网页就是写好的 HTML 文件内容是固定的所有人看到的都一样想改内容就得手动修改代码。动态网页则是内容会根据不同用户、不同情况动态变化的比如你登录后看到的是你的个人信息别人登录看到的是别人的。大部分 AI 编辑器默认帮你生成的往往是纯静态页面如果你需要用户登录、数据保存这些功能就需要动态网页的技术支持了。2. 什么是数据库它的作用是什么数据库你可以理解为一个有组织的数据仓库专门用来存储和管理数据。比如用户注册的账号密码、商品信息、订单记录等等都存在数据库里。它和普通文件的区别在于数据库可以高效地查询、增删、修改数据还能保证数据的一致性和安全性。常见的有 MySQL、PostgreSQL、MongoDB 等。3. 什么是缓存技术它的作用是什么缓存简单理解就是临时记忆。有些数据每次都从数据库里取会比较慢我们可以把常用的数据先放到一个读取速度更快的地方比如内存下次需要的时候直接从那里拿不用再跑一趟数据库这样能大大提升网站的响应速度。常见的比如 Redis、Memcached。不过缓存也不是万能的还需要考虑数据一致性的问题这也是实际开发中比较容易踩坑的地方。4. 什么是服务端什么是客户端客户端就是用户直接接触和操作的那一端比如你手机上的 App、电脑上的浏览器。服务端则是运行在远程服务器上的程序负责处理业务逻辑、存储数据。举个例子你在 App 上点了一个商品客户端把这个请求发送给服务端服务端去数据库查到商品信息再返回给客户端展示出来。两者之间通过网络进行通信。5. 什么是前端技术什么是后端技术前端技术主要负责用户能看到、能交互的界面部分比如页面的布局、按钮的样式、点击的效果等等常用的技术是 HTML、CSS、JavaScript。后端技术则负责背后的逻辑处理比如用户登录验证、数据查询、业务规则判断等常用的有 Java、Python、PHP、Node.js 等。简单来说前端解决的是用户看到什么后端解决的是背后怎么处理。6. 什么是域名什么是域名备案域名就是网站的地址比如baidu.com方便人们记住和访问。它的背后其实对应着一个 IP 地址域名相当于给 IP 起了个好记的名字。域名备案是指在中国大陆如果你的服务器部署在国内需要向相关部门提交备案信息通过审核后才能正常访问。备案主要是为了合规如果服务器在境外则不需要备案但访问速度可能会受到一些影响。7. 什么是 Web 服务它的作用是什么Web 服务你可以理解为一个接待员它运行在服务器上负责接收客户端发来的请求比如你在浏览器输入一个网址然后根据请求的内容去处理查数据库、执行逻辑等最后把结果返回给客户端。常见的 Web 服务有 Nginx、Apache 等。它的作用就是充当客户端和服务端程序之间的桥梁把用户的请求准确地送到对应的地方处理。8. 软件是怎么运行的我们写的代码本质上就是文本文件计算机没法直接执行。代码需要经过编译有些语言是解释执行变成计算机能理解的指令然后在某个运行环境中跑起来。对于 Web 应用来说代码需要部署到服务器上配合 Web 服务、数据库等一起运行用户才能通过网络访问到。所以代码写完只是第一步跑起来还需要一系列的部署和配置工作。9. 什么是开发环境什么是生产环境开发环境就是你在本地写代码、调试用的环境方便你反复修改和测试出了问题也无所谓。生产环境则是正式对外提供服务的环境也就是真实用户正在使用的那个。两者的配置可能不一样生产环境通常更注重稳定性、性能和安全性。不能直接拿开发版本上线因为开发环境可能开了调试模式、用了测试数据、没做安全配置等等直接上线容易出问题。10. 客户端 exe 程序和网站有什么区别exe 程序是安装在你电脑上的软件直接调用你电脑本地的资源运行不需要浏览器打开就能用。网站则是通过浏览器访问的代码运行在服务器上你看到的只是浏览器渲染出来的页面。exe 程序的优势是性能好、能调用本地硬件网站的优势是不用安装、跨平台、更新方便。现在还有一些混合模式比如 Electron 桌面应用、小程序等结合了两者的特点。11. 什么是服务器它的作用是什么哪里可以买到服务器本质上也是一台电脑但它的配置通常更高专门用来 24 小时不间断运行、对外提供服务。你的网站代码、数据库都要部署在服务器上用户才能随时访问。服务器可以在阿里云、腾讯云、华为云这些云服务商买到一般按月或按年付费有不同配置可选根据你的项目需求来决定买什么样的就行。12. 哪些是需要付费的成本做一个软件要上线运营通常有这些成本域名费用按年几十到几百不等、服务器费用按月或按年几十到几千不等看配置、数据库如果用云服务也要付费、SSL 证书有免费的也有付费的、如果是商用还可能涉及短信服务、对象存储存图片视频等、CDN 加速等等。具体花多少取决于你的项目规模和访问量小项目一年可能几百块就够了大项目就没上限了。以上只是列举了一些比较核心的知识点并不全面每个点展开来讲都有不少内容。但如果你是零基础的朋友我建议先花点时间了解一下这些编程基础知识再来让 AI 帮助你开发软件。这样不仅能大大提高开发效率也能让你更清楚地理解软件开发的原理少走一些弯路。总结AI 的到来对咱们这个行业确实是一次不小的变化。对于同行来说也许是一个转型和提升的契机对于非程序员朋友来说是一个降低门槛、亲手实现想法的机会。但不管站在哪个角度我觉得有一点是相通的——工具在变强但使用工具的人的理解力和判断力依然是最关键的那一环。以上只是我个人的一些感受和体会欢迎大家交流讨论。