惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
The GitHub Blog
The GitHub Blog
Hugging Face - Blog
Hugging Face - Blog
阮一峰的网络日志
阮一峰的网络日志
爱范儿
爱范儿
量子位
宝玉的分享
宝玉的分享
人人都是产品经理
人人都是产品经理
博客园_首页
博客园 - 【当耐特】
Last Week in AI
Last Week in AI
Martin Fowler
Martin Fowler
Microsoft Azure Blog
Microsoft Azure Blog
美团技术团队
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
aimingoo的专栏
aimingoo的专栏
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
GbyAI
GbyAI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
腾讯CDC

DEV Community

Membangun Kompetensi dan Relasi: Mengapa Ekosistem Kampus Itu Penting I Built an AI That Decides Which AI to Talk To — Running 24/7 From My Living Room Codex Team Usage SOP Building a Production-Style Multi-Tool AI Agent with Python, Flask, React & Gemini AI The Caretaker Sandbox: An Offline-First Visual Playground & Template Engine powered by Gemma 4 # Building Instagram OSINT Projects with HikerAPI Your AI can read. Gemma 4 can see The Battle of the Senior Dev: Why AI Gives You Wings But Only If You're Ready to Pilot HiDream Raw Output Failed Tried Dev-2604 VRAM Math Killed It Won with a Prompt Enhancer Instead I Finally Finished a Project I Abandoned — And GitHub Copilot Helped Me Ship It SafeSMS: On-Device Threat Detection with Gemma 4 E4B, no internet required I Built OpenKap — A Loom Alternative for Small Teams Who Just Want to Ship Gemma 4 is Here: The Dawn of Local Multimodal Reasoning Offline-First Flutter: How We Built a CRM That Manages 100K+ Leads With No Internet Memory for Agents: When Vectors Meet Graphs, Bugs Drop 4 The Rise of Production-Grade AI Infrastructure I ran my idea-validation product through its own validator. The verdict was PIVOT. We Built an Agent Commerce API. Google I/O 2026 Changed Our 3-Month Roadmap in 24 Hours. "My Partner's Memory Was Full. I Didn't Know — Until We Tried to Talk." I’m a Front End Web Developer Learning Machine Learning From Scratch Laravel Waiting Request I Built a Chrome Extension to Track How Long You Actually Spend on Each Tab Why Google Can't See Your React Breadcrumbs (And the 4-Line Fix) AI Travel Assistant Powered by Gemma 4; With Streaming, Image Input, and Visual Recommendation Cards Microsoft tried to kill the printer driver. Healthcare said no. The Blueprint Beneath the Blueprint: Designing Data Model and Choosing Its Database REST APIs vs Webhooks in Telecom Billing - Which One Actually Makes Sense? Accounting Made Simple: AI-Powered Financial Insights of Japanese Companies with Gemma 4 The append-only AST trick that makes Flutter AI chat actually smooth Designing the Future of Payments — Why XML Still Matters in the Age of APIs From Legacy to Live — Reviving XMLPayments with GitHub Copilot Two Weeks Into Learning Solana XMLPayments — The Hidden Backbone of Modern Financial Orchestration AI Agents in Practice — Read from the beginning Reviving My Gemma Agentic Framework: From Prototype to Polished Repo Smart Contracts Demand Better Infrastructure: Building on contract.dev Self-Hosted LLM Tool Calling: Forge and the Build-vs-Buy Decision ORA-00072 오류 원인과 해결 방법 완벽 가이드 OpenWA for CTOs: Self-Hosted WhatsApp Gateway Trade-Offs NotebookLM Automation With notebooklm-py: Useful, But Classify Data First Docker v29.5.x Operator Upgrade Checklist Coding-Agent Instruction Design: The CLAUDE.md File That Prevents Rework When I Finally Realized My Runtime Was Holding Me Back GnokeOps: Host Your Own AI House Party The Death of Static Rate Limiters: Why Your Java Virtual Threads Need BBR-Style Adaptive Concurrency AI Agents in Practice — Part 2: What Makes Something an Agent Stop scattering LLM SDK/API calls across your codebase. Here is the 2-file rule that fixed mine Beyond Prompts: Structuring AI Workflows for Real Frontend Engineering From an Abandoned Hackathon Project to an AI Study Workspace 🚀 Terraform with AI: Build AWS Infra (Cursor + MCP)
如何真正成为一名程序员:没有人愿意解释的困难部分
Alex Vakulov · 2026-05-23 · via DEV Community

周围有一个舒适的神话成为程序员它说你可以看一些课程,复制一些教程,构建一个作品集应用,学习一个现代框架,并在几个月内变得有就业能力。有时情况确实如此。更常见的是,它创造了那些知道如何重复步骤,但还没有真正理解自己在做什么的人。

编程并不仅仅在于掌握语法。它也不在于收集证书。它甚至不在于选择完美的第一门语言。程序员通过将模糊的想法转化为可工作的系统来解决问题。这需要一项非常特定的技能:用代码思考的能力。

这种技能需要通过长期专注的练习来建立。没有礼貌的捷径可走。

编程不是看别人编程

许多初学者在准备学习上花费了太多时间。他们观看关于学习路线的视频。他们比较不同的编程语言。他们加入社区。他们阅读关于哪种语言(Java、Python、Go、C#、JavaScript、Rust 或 C++)最适合作为第一门语言的争论。

其中一些研究是有用的。但太多则变成了拖延。

总会有那么一刻,你必须写代码。然后你必须打破它,修复它,扩展它,阅读他人的代码,感到困惑,寻找答案,重建项目,并重复这个过程,直到困惑变得更有条理。

这就是许多初学者程序隐藏的部分。当你开始将三件事联系起来时,真正的编程技能才会显现出来。

  1. 这个任务意味着什么
  2. 程序应该如何运行
  3. 如何用代码表达这种行为

直到你习惯这种连接,每个问题都感觉像是一堵墙。经过足够的练习,墙并不会消失,但你开始看到它出现裂缝

专注比动力更重要

一个残酷但有用的事实是,成为一名程序员需要一段专注的时期。不是一年处于隔离状态,也不是每天十个小时,而是足够的不间断时间让你的大脑适应。

编程在认知上是耗费巨大的。你在脑海中保持状态。你追踪逻辑。你记住假设。你比较程序应该做什么与它实际上做了什么。持续的打扰会破坏这个过程。

一个每天只专注写代码两小时的人,可能比一个分心学习了八小时的新手学到的东西更多。真正的需求不是忍受痛苦,而是持续性。

你需要足够的常规练习来让工作在脑海中保持热度。如果你每周只回到同一个项目一次,你大部分时间都在回忆你在做什么。如果你每天都工作,即使只是短暂地,项目就开始在你的脑海中活起来。那就是学习加速的时候。

但请记住,精神疲惫 不是纪律。如果你筋疲力尽,停止睡眠,停止活动,把学习变成惩罚,你的代码长期内不会进步。编程需要专注、记忆、耐心和情绪稳定。摧毁这些事情不是英雄行为。

更好的规则是这样的:创造一个能够进行深度工作的环境,但要保护好需要完成这项工作的大脑和身体。散步。睡觉。锻炼。卡壳时暂时离开。许多编程问题在你的大脑与它们保持距离后就能得到解决.

选择第一门语言,但不要崇拜它.

有些人强烈主张将Java作为第一门语言。其他人则提出合理的理由表示反对。

Java 是一门合理的入门语言,因为它拥有成熟的工具链、强类型系统、丰富的书籍、大量的示例以及庞大的生态系统。它还迫使初学者处理结构问题。你会学习类、方法、类型、编译、包、构建工具,以及通常足够明确以至于能教会你一些东西的错误。

但 Java 不是唯一的可行路径。

  • C# 不再仅仅是“仅限 Windows。”现代 .NET 在 Linux 上运行良好,并且广泛用于后端开发.
  • Go 已经成熟到足以用于实际生产系统,并且比许多语言更简单.
  • Python 非常适合学习基础知识并构建实用脚本,尽管它可能会隐藏一些概念.
  • 如果你对 Web 开发感兴趣,JavaScript 是不可避免的。
  • C 教授了关于记忆和机器的宝贵课程,但它作为第一门语言可能会让人感到痛苦。

更好的建议是:选择一种让你能够构建你关心的事物,同时还能教你真正编程概念的语言。

如果你需要后端系统,Java、C#、Go 或 Python 都可以工作。如果你需要网页界面,JavaScript 或 TypeScript 将变得必要。如果你需要系统工作,C、C++ 或 Rust 最终可能很重要。如果你需要移动端,Swift 或 Kotlin 可能更相关。第一门语言不是终身契约。它是一个训练环境。重要的是你不会在不同的语言每两周一次,因为下一个看起来更容易。

从练习开始,但不要停留在那里

教科书练习是有用的,因为它们能隔离概念。你应该编写小的程序来教变量、循环、函数、集合、文件、错误、数据结构和基本算法。

但仅靠练习是不够的。一个人可以完成100个小任务,但在面对真实的代码库时仍然会卡壳。实际项目是混乱的。它们有命名规范、构建文件、依赖关系、旧决策、奇怪抽象以及由已不在场的人编写的代码。

这就是为什么修改现有的开源软件是最佳学习方法之一。不要立即贡献,也不要试图给维护者留下深刻印象。只是学习如何在一个真实的项目中工作。

克隆一个项目。在本地构建它。更改一个标签。删除一个按钮。添加日志记录。禁用逻辑的一部分。找到配置值读取的位置。破坏构建并修复它。从入口点跟踪请求到输出。

这教授了技能教程很少教授的技能:

  • 项目是如何组织的
  • 构建系统是如何工作的
  • 错误如何在实际代码中出现
  • 抽象是如何被使用和滥用的
  • 如何阅读他人编写的代码

最后这项技能至关重要。专业开发者花费大量时间阅读和修改现有代码。Greenfield 的工作是例外,而不是常态。

建立一些个人有用的东西

最好的见解之一很简单:编写对你有用的程序。教科书任务可能教授一个概念,但一个个人有用的项目能让你情感上投入。这很重要。好奇心让困难的工作变得可以忍受。

为自己构建一个小工具。一个笔记应用。一个文件组织器。一个文本解析器。一个个人仪表盘。一个小游戏。一个命令行工具。一个自动化某个无聊事情的脚本。一个小型编辑器。一个本地搜索工具。一个预算追踪器。任何你实际上会使用的东西.

重点不在于原创性。重点在于摩擦。一个有用的项目会引发真正的问题:

  • 数据应该存储在哪里?
  • 输入错误时会发生什么?
  • 错误应该如何显示?
  • 我如何打包并再次运行这个明天?
  • 哪个部分变得难以更改?
  • 为什么这个简单的功能让代码变得丑陋?

这些问题是编程开始成为工程学的起点。

使用搜索和人工智能,但不要外包你的大脑

关于程序员是否应该依赖搜索引擎或人工智能,存在一场激烈的争论。明智的答案介于两者之间。一个无法搜索的开发者是无能的。文档、示例、问题追踪器、源代码、规范和社区讨论都是工作的一部分。但是,一个初学者如果在不理解答案的情况下搜索每一个基本步骤,也会遇到麻烦.

搜索之间存在着巨大的差异:

“我如何在Go中解析命令行参数?”

以及搜索:

“我如何编写一个程序?”

第一个是正常的。第二个意味着基础不牢固。

人工智能助手使这种区别更加重要。它们可以生成示例、解释错误、创建小型脚本,并提出方法。它们还可以虚构API、生成不安全的代码,并将学习过程隐藏在自信的输出背后。

像使用初级助理一样使用 AI,而不是像替换大脑一样使用。让它解释。让它提供替代方案。让它审查你的代码。问为什么一个解决方案有效。然后对照文档验证答案,并自己运行代码。目标是保持对理解的责任。

课程和导师有帮助,但他们不能替你完成工作

课程可以提供结构。导师可以让你避免在错误的道路上浪费几周时间。一位好的老师可以解释那些文档使得原本就不必要的痛苦的概念。

但没有任何导师能将编程技能安装到你的大脑里。你仍然需要那些小时。你仍然需要那些挫败感。你仍然需要调试你自己的误解。

最好的导师使用方式不是让他们解决所有问题,而是提出更好的问题:

  • “我尝试了这种方法,但在这里状态变得不一致。我错过了什么?”
  • “我这样解决了。有没有更简单的设计?”
  • “这段代码可以工作,但感觉修改起来很困难。为什么?”

被动观看无法建立来自真实对话的判断。

“准备好工作”到底是什么意思

你不需要知道所有事情才能找到第一份开发工作。没有人需要知道所有事情。但你应该能够在没有恐慌的情况下完成某些事情:

  • 设置开发环境
  • 构建和运行项目
  • 阅读错误并调查它们
  • 使用 Git 进行基本工作流
  • 编写简单功能
  • 编写基本测试
  • 阅读不熟悉的代码
  • 提出精确的技术问题
  • 有效搜索文档
  • 解释你所做的更改以及原因
  • 在代码评审时保持情绪稳定

这已经远远超出了“我看过一个课程。”的范围。差距求职者期望与雇主实际寻求之间的差距,比大多数初学者意识到的要大——而弥合这一差距需要上述所描述的实践工作。

最后思考

成为程序员并非关于进入IT行业。它关乎学会足够清晰地思考,以便机器能够执行你的想法。这需要时间。这需要重复。这需要好奇心。这需要谦逊,在程序最终运行之前,能够错误20次。

好消息是这条路并不神秘。写代码。读代码。改代码。破代码。排代码。构建你关心的事物。研究工具背后的概念。谨慎使用搜索和人工智能,但不要让它们取代你的理解。

总有一天,你会注意到自己不再仅仅是复制解决方案。你开始用代码思考。那时,你就开始成为一个程序员了。