Hey there 👋! If you've been anywhere near a keyboard lately, you've probably witnessed the rapid evolution of AI tools and noticed AI is reshaping how we build software. But here's what I've learned so far — in this brave new world, it isn't about which shiny AI tool you're using, it's about your approach in the right order of priority and understanding of the fundamentals that help you become skilled at using AI. Let me share my thoughts on effectively partnering with AI as a software engineer.
Priority #1: Mindset - The Foundation
- Having realistic expectations of what AI can and cannot do is essential. They have impressive capabilities in text processing and information handling, but they also have significant limitations - they hallucinate, lack true comprehension, and don't have real-time knowledge.
- Though thankfully, some of these issues are being addressed by web searching capabilities in platforms like ChatGPT and code IDEs like Cursor, as well as MCP (Model Context Protocol) that enables tool calls to external systems. These enhancements are specifically designed to overcome LLMs' inherent limitations, giving them a window to the current world.
- Maintain an engineering mindset - develop iteratively with AI as it will often not get things right in just one single shot. Don't expect the perfect output at the first attempt, as you can easily be disappointed.
- Avoid overreliance - ensure you can perform the task yourself before asking AI to perform it. This way you can validate AI output and properly engineer with it. Use AI for augmentation, not delegation.
Priority #2: Skillset - The Enabler
- Prompt engineering skills. Sure, AI can spit out code faster than I can drink my morning coffee (and that's saying something), debug with impressive precision, and help with documentation. But — and this is the crucial part — these tools are only as good as our ability to guide them. Hence, learning how to guide them effectively is a must. Prompt engineering isn't just for the AI experts. It's like learning how to ask your GPS for directions properly — if you say "somewhere with food" instead of "nearest Thai restaurant", don't be shocked when you end up at a pet food store.
- Software engineering skills (your domain-specific fundamentals). In software development, juniors might not realize that coding is not just about writing code. Code generation is just one piece of the puzzle — planning, testing, documenting, and examining are where the real magic happens. You aren't going anywhere without those software engineering skills, even with or without an AI assistant.
This became painfully obvious to me last week when I tried using Cursor MCP tools to create the Gravity Global logo object in 3D in Blender from a 2D image. Despite my technical background and precise instructions (or so I thought), I ended up with something that looked more like "alien angry fruit" than the simple green apple I wanted.
The problem wasn't with the AI – it was with me. I lacked the fundamental understanding of Blender's core concepts and terminologies: mesh topology, materials, modifier stacks, 3D modeling workflow, etc. It was like trying to edit a document in a language I don't speak. I don't know how to speak "Blender-ese", that's why I couldn't effectively guide the AI or even properly evaluate its output. Was the object it created actually good? I couldn't tell! And when the object failed in unexpected ways, I had no idea how to troubleshoot or fix the issues.
This Blender disaster was a perfect metaphor for coding with AI. Without solid engineering fundamentals, we can't effectively direct AI tools, evaluate their outputs, or fix their inevitable mistakes. It was a humbling reminder that no matter how powerful the AI assistant, the quality of its output is bounded by our ability to provide proper guidance and validation.
This reminds me of what Andrew Ng described in his recent LinkedIn post. He shares a similar experience.
Have you heard about "vibe coding"? It's a term coined by AI expert Andrej Karpathy that refers to coding with AI assistance where developers describe what they want in natural language and let the AI handle the actual code writing. But there's a dangerous variant emerging - where developers barely glance at AI-generated code before pushing it. "Feels right, ship it!" 🚢 While tempting (oh so tempting), this approach is particularly risky for junior developers.
I've mentored several juniors who thought AI would let them skip the "boring fundamentals". And they end up with code they can't debug or extend because they don't understand why it works in the first place.
As Andrew Ng wisely points out:
"Similarly, people who understand the language of software through their knowledge of coding can tell an LLM or an AI-enabled IDE what they want much more precisely, and get much better results." - Andrew Ng
Understanding the fundamentals is what separates those who can effectively leverage AI from those who are merely dependent on it. It's like the difference between a chef and me using the same high-end kitchen equipment. Same tools, wildly different results!
Priority #3: Toolset - The Accelerator
The AI tool landscape is vast and rapidly evolving. New solutions emerge daily while others become obsolete just as quickly. Rather than chasing the latest tools, first master the priorities above, and you will see my point: tools only become true accelerators when built upon the right foundation. Master your mindset first, develop your skillset second, and only then will tools deliver their full potential. With this sequence in place, you'll transform how you work: evaluating new tools becomes intuitive, adoption becomes seamless, and your productivity multiplies. The right tool in untrained hands is merely a distraction, but in the hands of someone with proper mindset and skills? It becomes a force multiplier that dramatically accelerates development. This is why the sequence matters — mindset → skillset → toolset.
Conclusion
As AI transforms the software development landscape, this mindset → skillset → toolset hierarchy becomes not just helpful but essential. Those who speak the language of software will always get more from AI tools than those who don't. The most effective engineers aren't those racing to adopt every new AI solution, but those who approach these tools with both foundational knowledge and strategic intent.
This prioritization approach isn't just for software engineers. Whether you're in marketing, design, education, or any field being transformed by AI — the same principals apply. The tools change (have you seen how many AI tools launched just this week?!), but understanding your domain deeply never goes out of style.
Walking the Talk: This Article's Creation
Here's a confession: I've shared this approach in webinars before, but never articulated it this clearly. This marks my first serious professional article, and I've never considered myself a writer — not even in my first language! With AI as my writing copilot, I've turned messy thoughts into something worth sharing. The process required its own careful planning and engineering — using the very principles I'm advocating.
And let's be honest — this article is not perfect. Just like my Blender experiment, its quality is bounded by my ability to write and guide the AI effectively. As a first-time article writer, I'm still developing those skills. This imperfection perfectly demonstrates my central point: even with powerful AI assistance, the output quality remains limited by our own expertise and guidance abilities.
But I do hope these insights serve our fellow code warriors well.
What's next for you in this AI-enhanced world?
- Dedicate time each week to deepen your domain-specific fundamentals (which is software engineering if you are a software engineer)
- Practice prompt engineering deliberately - document effective patterns
- Establish a personal workflow that balances AI assistance with your expertise
- Share your experiences and learn from others' AI successes and failures
I'd love to hear your stories in the comments. How are you balancing AI tools with your core expertise?
Top comments (0)