I'm fairly young and have about a year before starting at a university in Denmark, where I'm considering studying Computer Science. I've been programming for more than eight years and can switch between languages and frameworks fairly comfortably, although I don't have much professional experience yet.
I've mostly used AI as a conversational substitute for searching programming questions. I haven't tried vibe-coding or agentic programming, and I'm unsure whether I should. I'm currently working with an artist friend on a game, and I'm designing many of the classes and structures that will form the project's foundation. I'm hesitant to let an AI agent work on that code because I want the architecture to remain coherent and understandable.
At the same time, I'm worried that avoiding these tools could leave me behind when I eventually enter the job market. I genuinely enjoy solving problems, writing the solutions myself, and understanding exactly what my code does. I don't want to give up the parts of programming I find meaningful, but I also don't want to ignore useful skills.
Should I start experimenting with an AI coding agent on smaller projects, or continue developing traditionally and use AI mainly for questions and occasional assistance? How do experienced developers decide which work is appropriate to delegate to AI?
4 Answers
Don’t hand the game’s core framework over to an autonomous agent. Designing the architecture, choosing interfaces, and keeping multiple classes coherent are exactly the kinds of activities that help you improve, and agents can easily introduce inconsistencies across a larger codebase. Your current question-and-answer style of AI use is already useful. You won’t automatically be behind just because you aren’t letting an agent generate your entire project.
You should do both, but don’t make AI responsible for your learning. Keep designing, writing, and debugging substantial parts of projects yourself so you build strong fundamentals. At the same time, experiment with AI tools on smaller or lower-risk tasks so you learn their strengths and weaknesses. Future developers will probably need to understand both conventional programming and how to use these tools effectively.
AI-generated code is most useful when you already understand the domain and can quickly recognize bad assumptions, awkward designs, or subtle bugs. It can save time on repetitive code, small adapters, tests, or work in a temporary legacy system. But if you use it to create something you don’t understand, you end up with code that looks plausible while being impossible to explain or maintain. Treat generated code as a draft that requires careful review and tests, not as an authority.
Reviewing generated code can take as long as writing a clear solution yourself, especially when the code affects many parts of a system. The time saved is real only when the task is well-bounded and you can verify the result efficiently.
A practical approach is to vary your level of AI use by project. Keep some projects completely manual so you continue practicing fundamentals, use AI heavily for disposable experiments or tedious tasks, and use a balanced approach for most real work. You can also use it like an enhanced search tool when you would otherwise look up documentation. The important thing is not to adopt an absolute position either for or against it.

That seems like a reasonable middle ground. I have some small projects where I’d be more comfortable testing AI assistance than on the game framework, so I’ll probably start there.