The rise of large language models and AI coding assistants has fundamentally altered the economics of software development. In a professional setting, where the primary goal is to produce business value efficiently, the necessity of writing every line of code by hand is diminishing. This shift has sparked a debate over the role of the programmer: some see it as a loss of craft, while others view it as a transition toward higher-level problem solving. However, for many, the core appeal of programming lies in the process of exploration rather than the final output.

For many developers, the act of programming remains a hobby driven by curiosity and the satisfaction of overcoming technical hurdles. This includes exploring niche topics—such as pushing type safety in Java using concepts from dependently typed languages like Agda—or studying complex mathematical structures like monoids to better understand program correctness. Even when these efforts do not result in immediate commercial value or even a finished product, the process of 'baking' these ideas in the mind provides a sense of reward. This perspective suggests that while AI can 'one-shot' a simple game clone or a basic script, it cannot replace the personal growth and intellectual fulfillment derived from manually navigating a difficult problem.

Despite this personal joy, the shift toward 'vibe-coding'—using AI to generate entire applications without ever looking at the underlying source code—presents a new set of trade-offs. While this method allows for rapid prototyping and the realization of ideas that might otherwise remain unbuilt, it can lead to a lack of polish or craftsmanship in the final product. Furthermore, there is a growing concern regarding the next generation of engineers. As junior developers increasingly rely on AI to generate design proposals and implementation details, there is a risk that the fundamental skills of building, designing, and debugging systems by hand may be lost, potentially turning the role of the programmer into a middle-man between the user and the AI's output.