Do I use AI to create code, write scripts, and draft blog posts? Absolutely, and I encourage you to do the same - if you are ready to use AI as a learning companion rather than a shortcut.
In my post 5 reasons you should explore vibe coding, I introduced the concept of Vibe Coding and why it matters for IT professionals. Since then, I have noticed a recurring debate: some argue that using AI to generate code is “cheating,” that it diminishes the value of traditional coding skills, or that developers who rely on AI are taking shortcuts that undermine their credibility.
I disagree. Using AI to write code is not cheating. It is a superpower - but only if you approach it with the right mindset. The difference between a superpower and a crutch is simple: one makes you stronger, the other makes you weaker.
The cheating misconception
Let me address the elephant in the room. When people call AI-assisted coding “cheating,” they often imagine someone blindly copying and pasting generated code without understanding what it does. And yes, that approach is problematic - not because it is cheating, but because it is ineffective and potentially dangerous.
The misconception stems from comparing AI-assisted coding to academic dishonesty, where someone submits work they did not create or understand. But professional development is not an exam. The goal is not to prove you can write every line of code from memory. The goal is to solve problems, deliver value, and build solutions that work.
Cheating implies breaking rules or gaining an unfair advantage. Using available tools to be more effective at your job is neither.
When I use GitHub Copilot to help me write PowerShell scripts for Microsoft Intune or craft API calls to Microsoft Graph, I am not cheating. I am using a tool that helps me work more efficiently while still applying my knowledge, experience, and judgment.
What AI-assisted coding actually requires
Here is what critics often miss: using AI effectively to write code requires substantial skills and knowledge. It is not a magic button that produces perfect code from vague prompts.
Domain expertise
To use AI effectively, you need to understand the domain you are working in. When I ask GitHub Copilot to help me create a script for device compliance reporting in Microsoft Intune, I need to understand what compliance policies are, how they are evaluated, and what data I need to extract.
Without this domain knowledge, I would not know what to ask for, how to evaluate the generated code, or how to identify when the AI has made incorrect assumptions.
Critical evaluation skills
AI-generated code is not always correct. It can contain bugs, security vulnerabilities, inefficient patterns, or simply solutions that do not fit your specific context. You need the skills to:
- Read and understand the generated code
- Identify potential issues or improvements
- Validate that it does what you intended
- Test it thoroughly before deployment
This critical evaluation is where your expertise shines. The AI provides a starting point, but you provide the quality assurance.
Prompt engineering - the new dialect
Getting useful output from AI requires learning how to communicate effectively with it. This skill, often called prompt engineering, is becoming essential for every IT professional.
Generative AI mirrors the levels of professionalism, clarity, and detail in the prompts you provide. Vague prompts produce vague results. Specific, well-structured prompts produce remarkable results. A good prompt includes four key components:
- Goal - What specific response do you want?
- Context - Why do you need it and who is involved?
- Source - What information or examples should the AI use?
- Expectations - How should the AI format and tailor its response?
Think of prompting as a conversation rather than ordering a machine around. It is a skill that develops over time through practice and intentional learning. The IT professionals who master this new dialect will extract significantly more value from AI than those who do not.
The desire to learn
Perhaps most importantly, effective AI-assisted coding requires a genuine desire to learn. If you approach AI as a way to avoid learning, you will eventually hit a wall. The generated code will not work, you will not know how to fix it, and you will be stuck.
But if you approach AI as a learning companion, every interaction becomes educational. You see patterns, discover new approaches, and understand why certain solutions work better than others.
AI amplifies your expertise
A common misconception is that AI will replace experts. My experience over the past few years - first with Microsoft Copilot and now with GitHub Copilot for development - suggests the opposite. AI amplifies expertise rather than replacing it.
When I use GitHub Copilot to draft a PowerShell script for Microsoft Intune, it does not replace my knowledge of endpoint management. Instead, it accelerates my ability to apply that knowledge. I can focus on the substance - the logic, the edge cases, the security considerations - while Copilot handles the scaffolding. The result is not less expertise but more efficient application of expertise.
This is the superpower: AI takes what you already know and helps you do more with it, faster.
AI as a learning accelerator
One of the most valuable aspects of AI-assisted coding is how it accelerates learning. Instead of spending hours searching documentation and Stack Overflow, you can get working examples quickly and then study them to understand how they work.
When I started working more extensively with Microsoft Graph API, I used GitHub Copilot to generate example queries. But I did not just run them blindly. I studied each one:
- What endpoint was it calling?
- What permissions were required?
- How was the data structured in the response?
- Why did it use certain query parameters?
This approach taught me more about the Graph API in weeks than I might have learned in months of traditional study. The AI provided the examples; I provided the curiosity and effort to understand them.
A recent example: discovering bitmasks
Let me share a concrete example of AI as a learning companion. While developing a PowerShell script for Windows Autopilot device preparation - bridging the gaps, I faced a design challenge. The script needed to control multiple features - device renaming, OOBE settings, BitLocker validation, and location markers - but I wanted a clean interface without cluttering the parameter list with multiple switches.
I asked GitHub Copilot for suggestions on how to achieve this with a single parameter. The response introduced me to bitmasks - a technique I had never used or even known existed in PowerShell. Copilot explained how each bit represents a feature flag, showed me how to combine values, and demonstrated how to check individual bits using bitwise operators.
Within minutes, I had expanded my PowerShell knowledge and implemented an elegant solution:
| Bit | Value | Feature |
|---|---|---|
| 1 | 0001 | Device Renaming |
| 2 | 0010 | OOBE Registry Settings |
| 4 | 0100 | BitLocker Validation |
| 8 | 1000 | Location Marker |
Now I can enable any combination with a single integer: 15 enables all features, 7 enables the first three, 5 enables renaming and BitLocker only. It is examples like this that have taught me to use AI as a learning companion. I did not just copy the code - I understood it, validated it, and added a new technique to my toolkit.
The validation imperative
Here is my non-negotiable rule for AI-assisted coding: always validate.
Every piece of code that AI generates needs to go through your personal quality control process. This includes:
- Reading and understanding - Do not deploy code you cannot explain.
- Testing thoroughly - Verify it works as expected in your environment.
- Reviewing for security - Check for potential vulnerabilities or data exposure.
- Ensuring maintainability - Will you or a colleague understand this code in six months?
- Confirming compliance - Does it meet your organization’s standards and policies?
This validation process is where you add value that AI cannot provide. You understand your specific environment, your organization’s requirements, and the broader context in which the code will operate.
The validation dilemma
But here is a question I wrestled: if AI can help me create code in a language I have never used, or draft a blog post on a topic I am not deeply familiar with, how can I validate it? If I lack the expertise to evaluate the output, am I not just blindly trusting the AI?
The honest answer is: you cannot fully validate what you do not understand. But that does not mean AI becomes useless outside your expertise - it means you need to approach it differently.
When AI helps you venture into unfamiliar territory, treat the output as scaffolding, not a finished product. Use it as a starting point for learning. Study what the AI generated, research the concepts it introduced, and build your understanding piece by piece. Eventually, you will reach a point where you can validate - but that validation comes through learning, not blind acceptance.
Alternatively, use that first draft as a foundation for collaboration. Share it with more experienced peers who can evaluate the approach, point out issues, and help you develop the solution properly. The AI gives you something concrete to discuss rather than starting from nothing.
AI can open doors to areas outside your expertise, but walking through those doors still requires effort, learning, and sometimes guidance from others.
This is exactly how my knowledge of Go is slowly evolving. Building and expanding this blog using the Hugo framework has pushed me into Go template syntax and logic - a language I had never used before. AI helps me create shortcodes, customize layouts, and solve template challenges. I cannot fully validate Go code the way I can PowerShell, but each interaction teaches me something new. Over time, patterns become familiar, and what once felt like blind trust becomes informed judgment.
The reality of time investment
Here is something that might surprise you: do I spend less time developing code, writing scripts, or creating blog posts with AI? Not at all. I might even spend more time than before.
But here is the difference - I think the quality is higher. And along the way, I experience a tremendous amount of learning. Ideas and tangents come from left and right, leading me down paths I never expected to explore. Honestly, I think it is awesome.
A significant portion of my time now goes into validating and enhancing drafts and code concepts. I review, question, test, and refine. This is not wasted time - it is where the real value is created. I am the one who must maintain control. AI generates possibilities; I shape them into solutions that actually work in my environment.
If you expect AI to save you time by doing your work for you, you will be disappointed. If you expect AI to help you do better work while learning along the way, you will be rewarded.
This mindset shift is essential. Vibe Coding is not about efficiency in the traditional sense. It is about expanding what you can accomplish while deepening your understanding.
Building skills, not bypassing them
Some worry that relying on AI will prevent them from building fundamental skills. This concern is valid if you use AI passively, but it misses how AI can actually strengthen your skills when used actively.
Consider this analogy: a calculator does not prevent mathematicians from understanding mathematics. It frees them to focus on higher-level concepts while handling tedious arithmetic. Similarly, AI-assisted coding can free you to focus on architecture, design, and problem-solving while handling routine syntax and boilerplate.
The key is intentionality. When AI generates code for you:
- Take time to understand why it works
- Try modifying it to see what happens
- Ask the AI to explain its choices
- Compare different approaches
This intentional engagement builds skills rather than bypassing them.
The junior developer dilemma
I have heard that some companies are holding back AI access from junior developers. The reasoning is that foundational experience - the struggle of learning syntax, debugging errors, understanding why code works - is essential before AI can become a true companion rather than a crutch.
I am still debating this with myself. On one hand, I understand the concern. Maturing as a developer, building that instinct for what good code looks like, learning to validate and troubleshoot - these skills are hard to develop if AI does the heavy lifting from day one. The ability to recognize when AI-generated code is wrong requires having written enough code yourself to know what right looks like.
On the other hand, I am a self-taught IT professional with a long background in the industry. My learning journey looked very different from someone starting today. I learned by doing, by failing, by reading documentation and experimenting until things worked. Would AI have accelerated that journey, or would it have robbed me of the struggle that built my expertise?
I do not have a definitive answer. But I lean toward this: AI access should come with intentional mentorship and a culture that values understanding over output. The tool is not the problem - the mindset is. If junior developers are taught to use AI as a learning companion from the start, with emphasis on validation and curiosity, perhaps they can build expertise faster without losing the depth that comes from genuine understanding.
AI will not take your job, but someone who harvests its value might
Let me be direct: AI is not going to replace you. But someone who understands how to harvest the value from AI might.
The ability to learn quickly is a competitive advantage. AI tools can accelerate that learning dramatically - if you use them correctly. Those who embrace AI as a learning companion will:
- Explore new technologies faster
- Solve problems more creatively
- Stay current with evolving best practices
- Develop deeper understanding through intentional practice
But here is the distinction that matters: simply using AI is not enough. The professionals who will thrive are those who combine AI with effort, curiosity, and vision. Someone who uses AI passively, accepting output without understanding it, will eventually be outpaced by someone who uses AI intentionally - learning from every interaction, validating every result, and building genuine expertise along the way.
Those who avoid AI out of fear of “cheating” risk falling behind. The professionals who will thrive are not those with the most years of experience or the most certifications. They are the ones who never stop learning, who adapt to new tools, and who use every available resource to expand their capabilities.
The question is not whether to use AI, but whether you are willing to learn how to use it effectively.
This is not about taking shortcuts or letting AI do your job. It is about recognizing that the job itself is evolving, and you need to evolve with it.
My approach to AI-assisted development
Let me share how I approach AI-assisted coding in my daily work:
- Start with understanding - Before asking AI for help, I make sure I understand the problem I am trying to solve.
- Be specific in my requests - Vague prompts produce vague results.
- Review everything critically - I treat AI output as a draft, not a final product.
- Learn from the output - Each interaction is a learning opportunity.
- Validate thoroughly - Testing and verification are non-negotiable.
- Iterate and refine - Good solutions often emerge through multiple rounds of refinement.
This approach ensures that AI enhances my capabilities rather than replacing my judgment.
Unlock your superpower
Using AI to write code is not cheating. It is a superpower that requires adaptation, skills, and discipline to unlock. The developers and IT professionals who will thrive are those who learn to collaborate effectively with AI while maintaining their critical thinking and domain expertise.
If you have been hesitant to embrace AI-assisted coding because it feels like cheating, I encourage you to reconsider. Approach it as a learning opportunity. Be curious about the code it generates. Validate everything. Ask questions. Experiment. Let every interaction teach you something new.
The professionals who will shape the future are not the ones who resist change. They are the ones who embrace AI as a powerful learning companion while contributing their own expertise, judgment, and creativity.
Ultimately, your prompt skills are where effort meets value. That is not cheating - that is evolving, and how you unlock your superpower.
–Jesper
Header image attribution: Image created with help from Adobe Firefly

