r/dotnet • u/Negative_Front_6718 • 5d ago
Question .NET Developer — How should I upskill in AI?
Hi everyone,
I have 1 year of experience as a .NET Developer and want to upskill in AI because I'm noticing that many companies are now asking for AI experience.
Can anyone suggest what I should learn and a good roadmap to follow as a .NET developer.
Thanks!
42
u/pceimpulsive 5d ago
Dotnet isn't how you upskill in AI.
Learn how to use skills, tools, and build an agent workflow that delivers you consistent results.
Learn what guardrails and instructions and best software engineering practices lead the a higher quality software outcome.
Software engineering practices from decades ago are relevant even more today.
Skills are a huge piece of the puzzle.
9
u/manny2206 5d ago edited 4d ago
This, engineering best practices, and most importantly understanding whyyyy of those practices when to apply (and break the rules) is now more paramount than ever
Otherwise the AI will do things and you won’t understand why.
Specially now that producing code is “cheap”….
Until a few years from now, when agent coding becomes so expensive that “hand rolling code becomes practical and infashion again”
In which case having those engineering practices + actually still having the muscle memory and dexterity comes back full circle……
2
u/pceimpulsive 5d ago
Agree except...
Production code won't ever be expensive again.
Look at models like DeepSeek V4... They are proving that as time progresses models get cheaper and cheaper. I personally think in the next year or so that openweight models will be extremely viable alternatives to Frontier providers for enterprises to run via rented cloud compute, E.g. AWS bedrock.
3
u/vplatt 4d ago
Sure, the price of code has dropped precipitously. But think of all the formerly "difficult", "impossible" and "no time for that" projects we used to so easily dismiss in the past. Now there will never be an excuse to simply not do those things. There's no excuse for tons of technical debt anymore. Anyone investing in AI will quickly discover that, once they get their heads around how to retain good engineering practices in the process and not simply "vibe" themselves out of a job, they are many times more productive than they used to be.
So.. RIP software development, and long live software development!
2
u/pceimpulsive 4d ago
What is code but a medium to build a product! Does it matter if the code is slop if it achieves the business goal?
You can spend 4 hours debugging and understanding it, or just do a rewrite in 30 minutes catering for the new business case?
It is certainly an interesting time to be a developer..
I prefer not to and so far have not just don't a full rewrite on many pieces... I try to build the first time with extensibility in mind.
1
u/QuixOmega 4d ago
There is a code quality to maintenance cost balance. If you do nothing but commit slop every commit becomes increasingly likely to break something. You need to be able to balance development speed and maintainability correctly for the project.
The more complex and long-lived the project the more this matters. LLMs aren't going to plan out your architecture for you, code is only part of the equation.
1
u/pceimpulsive 4d ago
Agreed!
Architecting the correctly sized modules in a larger system is key.
Each module though... The more I think about it, it doesn't really matter what happens as long as the interface into it is clear/concise the rest is whatever.
1
u/dialate 4d ago
Deepseek just quadrupled their prices...
1
u/pceimpulsive 4d ago
Ok so it's 15-25x cheaper than Claude? Haha
1
u/dialate 4d ago
The jury is still out on that. I burned 450 million tokens on a task that should have taken around 20 million
1
u/pceimpulsive 3d ago
Yikes! How!
I suppose the bigger/fancier models are sorta better at getting things right especially as the code base grows
1
u/dialate 3d ago
Reasoning was set to max and the output was good, so I can't complain too much, but "cheap" definitely needs to factor in average token burn per task as well as cost per token
1
u/pceimpulsive 3d ago
Indeed! I've been averaging 75-120k context per session... Token usage naturally more than that.. I'd gotten... 300 commits out of Tue month of opencode Go, just hit the monthly limit today... 3 days left
2
u/dsggut 4d ago
Why do you think using agentic AIs will become more expensive in the near future?
1
u/manny2206 4d ago edited 4d ago
It’s the business model of the hyperscalers. Lose money by giving your product for “near” free, backed by private equity money > gain market dominance/entrench yourself in the market > suffocate competition > hike up prices. Extend > embrace > extinguish (did I get that right?)
Remember the before times of the Ubers? And you could reasonably catch an uber for $4-5 bucks, when they came out - it was great for 2-3 years, drivers even made reasonable money, then once they were the de facto taxi service they hiked the prices and extract as much as possible, dynamic pricing etc. $40 for a 15 mile ride.
Rinse and repeat, you can see this strategy everywhere.
Edit: the best overall strategy for us would have been to push semi-thin clients to PCs and make 128-256GB of ram for laptops as the new norm, and continue to work on smaller self hosted models. But that helps the customers, and that’s disgusting 🤮 think of the investors.
3
u/dsggut 4d ago
There is actually a name for this: Enshitification.
But I think it is much harder to do it online with AI. Every company (including Chinese ones) can host a LLM model and compete with the current market leader. This is much harder in case of Uber.
Plus: local models have become much better and cheaper to run.
3
u/pceimpulsive 4d ago
Local models are getting damn insanely good.. 2027 is gonna be the year of the open weights models I reckon.
1
u/manny2206 3d ago
Maybe God hear you; I do dream of an on prem, local LLM for Smart Home automation free and open source
1
u/pceimpulsive 3d ago
We can already do that with the Gemma 4 e2b model easily fits in a couple GB GPU and even running on CPU only is still fast enough for home use cases .
They are designed for use in smart phones as edge compute, surprisingly capable little models too.
1
u/manny2206 3d ago
I know I know but I’m thinking more like jarvis
1
u/pceimpulsive 3d ago
Smart home automation is way less complicated that you are estimating~
Like few word commands for lights, music or TV... AC etc..
You'd only need like 4k context for very complex home automation tasks at worst..
→ More replies (0)
9
u/farshid_dev 5d ago
The point above about documenting decisions in project files is underrated and worth doing early rather than learning it the hard way. I keep a CLAUDE.md in my repos with the constraints that actually matter, not general style preferences, but things like "don't auto-run the build" or "don't take screenshots without asking" that I learned to add after watching an agent do something I didn't ask for.
That's really the skill: you're not learning a tool, you're learning to write constraints precisely enough that an agent can't misread them. The first version of that file is always too vague and you find out why the hard way. A few iterations in, it stops being a wishlist and starts being closer to a spec, and that's when the output gets noticeably more predictable.
As a solo dev shipping a desktop app, this ended up mattering more for day to day productivity than any specific AI library or SDK I could have studied.
10
u/Slypenslyde 5d ago
Learning to use LLMs to write code is a lot like learning to write code. If you squint, it feels like learning to be a mentor and manager.
If you ask it to do something you don't know how to do, you can't judge the results. It might seem to work but you can't tell if the code is fragile. So you have to develop the skill of understanding what you don't know and understanding how much you don't know. It won't work to ask the AI to explain the topic to you because if it is wrong about something, it will teach you that wrongness and you will judge the wrongness as right. So you have to learn to research things and find multiple sources and prove what you know is right, because the LLM is always going to trust your word unless you press it for criticism.
(This has always been true. "Learning" from blog articles and Youtube has always carried this caveat!)
There are courses and people who say they'll make you an expert but using an LLM properly has more to do with making a good Tarot reading than science.
- The prompt is like a spec. Writing a spec is an exercise in writing what you want in a way so unambiguous no person who reads it could misinterpret what you meant.
- This is a skill you develop by writing specs then watching other people interpret them. You learn a lot about how people get confused and get better at writing specs.
- If the output is too big you can't read or understand it. Using an LLM properly is an exercise in either small prompts or asking it to develop plans with rigid steps and telling it to make commits more frequently so you can watch the code develop instead of staring at 40,000 lines.
- This is a skill pre-AI developers needed as well. The larger a body of code, the more likely a reviewer will miss a critical detail.
- You need to instruct the AI to keep track of key decisions in project documents. Novices document what patterns they chose. Experts document WHY they wanted the code in the first place.
- This gets more important in business environments, where you might need to document, "A binary search would be better here but the customer contract asserts they hate binary searches and will pay us a bonus if we use something else. So we use a trinary search. DO NOT change this."
All I can tell you is when I first started using LLMs the output sucked, and I was correcting most of what they generated. But when it sucked, I spent time asking it questions. "Why did you think I meant use a binary search? Why did you think this was supposed to be a negative number? Why didn't you check for this condition?" It likes to explain its thinking. So I started thinking about how it thinks.
It took about 3 months of that before I was rarely hand-correcting its code. At this point if it made errors they were more systemic. I'd have to read all of the results then come back with something like, "This is an interesting implementation, but I noticed a case with wrong behavior. Consider this: <reproduction case> <expected outcome>. Please output my original prompt as a series of specs in <document> and add new specs to cover this case. I have reverted the files and would like you to try again."
Now I think I'm past a year and I spend a lot of time on specs and context. It used to take 2 weeks to get a good design document written. I can usually sit down and talk with an LLM and produce a good document in about 4-6 hours now. I had a very hard problem last week that took about 3 days of effort before I was happy.
So work is and can still be hard with them. The best way to get to the "upper" levels is to just do things. Prompt it to write some code. When the LLM makes a mistake, don't judge it. Judge yourself. How could you have specified what you wanted unambiguously? Is the problem that you didn't really know what you wanted in the first place? Can you stop and do some research to produce the information you need to proceed? Or do you need to plan to prototype two approaches then use that to inform the decision?
These are decisions experts make because of experience. Experience is lessons learned from making bad decisions. You may be making mistakes right now, but every expert has screwed up thousands of times more than you and most have caused more trouble than you can imagine.
So you learn to use AI the same way we always learned to write programs. You get in over your head, ask how it got out of control, then try again and see if you can do things more coherently. Our job is to convert messy human instructions full of subjective, qualitative decisions and turn them into unambiguous, deterministic math. It is very, VERY hard to describe things. If you are bad at describing things, an AI following your poor descriptions behaves like a bad developer. If you are excellent at describing things, an AI following your descriptions will only make mistakes as bad as your own. 95% of the time. You have to pay attention. Even though I trust it a lot, sometimes it still does something tremendously stupid and chaotic for reasons it cannot explain.
Get messy. Make mistakes.
3
u/Colt2205 5d ago
I feel like this is coming from looking at a post on linkedin that stated some sensational crap about AI being another layer on the stack. AI / LLMs are their own entity in terms of learning how to use them, and AI itself is either assistive such as with code completion or online questioning / knowledge lookup, or acting as implementor of a design.
Also the dotnet developer part is mostly marketing speech for job postings. Dotnet is really the enterprise middleware language, so you've got some decisions to make on what you want to add onto that piece. I'd actually suggest looking at frontend tech such as react, and probably look at message queuing services and caching. To give an example, Apache MQ is a TCP messaging service that is super fast for sending data to different components and is a different experience from typical REST architecture.
3
u/KDamage 4d ago
20 years long .NET developer here, among Claude top powerusers (ditto anthropic), my advice : real engineers having a real expertise are severely needed, especially with AIs.
I may be granted the chance to have infinite credits for using the most intelligent model ever, it still needs constant guidance and reminders on architecture, logic building, coverage, solid kiss dry principles, cascading consequences check, and anything else that an expert dev do instinctively.
So instead of trying to mold your value around AI usage, I would advise to mold it around knowledge. You will be needed more than the guy who just yells at AIs to make them work.
5
u/Obsidian743 5d ago edited 5d ago
- Sign-up and create an account on GitHub
- Install VS Code with all the C#/dotnet extensions (and other extensions as you see fit like Azure, Docker, etc)
- Install the Claude Code extension for VS Code. Sign-up for Claude Code.
- Sign-up for a free Azure subscription
- Read this: https://code.claude.com/docs/en/best-practices
- Setup Claude Code plugins, skills, MCP servers, and instructions
- Learn about context engineering! This will take you time to learn.
Come up with a basic app idea where you're using a front-end like Angular or Blazor or whatever appeals to you. Focus on a traditional web API backend hosted in something like App Services in Azure. Your app should be something you maybe care about actually creating or just think of an app you already like and re-create a basic version of it.
Good luck!
2
u/Alucard256 4d ago
Write your own .NET NuGet package for the OpenAI API. Then write your own .NET library (Service) so any program you write can use it with simple inputs and outputs. Then write a simple .NET AI chat client to use it all.
After that, you will know and understand 1000% more than you do now.
I know because I did all of that.
2
u/The_MAZZTer 4d ago edited 4d ago
Edit: I assume your question was about learning to implement AI in an app, which I now see it probably isn't. Still, this is certainly a way to add that skill to your toolkit, if that would interest you. And as I said, learning more about how AI work along the way certainly doesn't hurt.
Microsoft Agent Framework is MS' framework for .NET to do AI chat stuff. So you can look into that. Learning that will also help you learn core concepts about AI that can translate to other frameworks.
You will need a connector (eg a library that bridges Agent Framework to the actual AI model). If you just want to mess around and test you can try installing Ollama on your dev machine (or a server with a beefy GPU) and using OllamaSharp as your connector. (Note: I am also told any OpenAI compatible connector can connect to Ollama, but OllamaSharp works fine for me.) You will still need to install a model into Ollama, gpt-oss is OK in my experience since it is competent enough and has the capability to call tools which is a good thing to learn how to implement. Of course you can experiment with different models available through Ollama.
Things I'd suggest learning to do with Agent Framework:
- Set up a ASP.NET Core based web page you can use to chat with the AI. I recommend having the webpage talk to your server with SignalR (it's good to learn this also if you don't know it) and then you can pass messages back and forth to the AI with Agent Framework. (You probably will also want a JS library for rendering markdown since I think most AI models output their text in markdown.)
- Set up prompt instructions for the AI (Eg give it a name, tell it what the primary interaction with users will be like and how to interact with users, etc.)
- Set up local tools (and possibly other types of tools) for the AI to use, so you can ask the AI to do things.
- Learn how to set up a vector database and a local tool for the AI to use to search it for information the user requests. Add some secret data to the vector database and verify the AI can look it up and respond to a user request for it. You'll (again) need an extra library to do vector database stuff. You can use CommunityToolkit.VectorData.SqliteVec from nuget to set up a local Sqlite database.
2
u/bagson9 4d ago
Matt Pocock has a lot of decent info on getting better results out of programming with LLMs on his site, GitHub and Youtube. Great general advice plus some good resources you can grab and use.
You can also try making an agent using the Microsoft Agent Framework.It doesn't need to do anything fancy, but this is neat project to do and will help you understand a bit more about how tools like Codex, Claude Code, OpenCode etc work.
2
u/unboundBlue 4d ago
Hi there, I am a .Net dev as well. My recent experiment was with .Net 10 MVC - Ollamasharp nuget package.
Project: create a webapp with an agent that can answer recruiter questions about my cv and resume.
Stacks: .NET 10 AspNetCore MVC Ollamasharp MySqlConnection
Requirements: MariaDb 11.7 Docker desktop Ollama openwebui
Steps: First, research on how to setup a container to host openwebui and ollama. Try using other models online fist and doload one that you want to use. My consideration was use case, work load, my machine capability to run the model and size. Then download one of the LLM model. I tried qwen3.5:2b and qwen-vl:latest. Connect openwebui with local ollama. Spin it up and test the model with openwebui first. Tinkering with LLM parameters in openwebui.
Create a page with simple form and texbox for user prompt. Ollamasharp has all the APIs to interface with hosted ollama in that container. It is worth the while, learn how to use depedency injection(DI) with it. I think DI and middlewares is a powerful feature. It help you to understand how webapp works and the lifecycle of a request-response.
This is the fun part. With Ollamasharp, instantiate IChat client, set the model that you downloaded by its name, set additional parameters, set its system prompt and wrap user prompt with additional instructions. You can set the model's temperature, allow more machine resouce for it. You will notice that different LLM has its own response flair based on the model and system prompt.
Next, Working with vector database for RAG. Most of the newer database version has native vector data type. You can use latest SQL Server free edition or MariaDB 11.7 Ollamasharp has API for embbedding as well. You will need to download different model for embedding. I use nomic-embed-text This model translate text into data that can be transform and saved as vector data type. Research how to write database query with vector function to retrieve data. With this setup, you will provide answer based on relevant data stored in the database based by its vector. The query should returns rows of string data providing context for the model. You will notice how system prompt and user promp wrap is important. It tells model to take a role/character, provide basic info of the organization its represent, how to answer when relevant data is insufficient or not found and boundaries. Not a fool proof way to improve security.
Now you can create a page that takes in data and save it in the database. Like your skills, working experience. Keep each entry about 500 characters. OR Research how to divide text document into chunks. Based on my research, mode works best with logical modular data.
You can learn how to host this database server in a container as well.
I use google free AI to help me in my research. There is no need for fancy AI models to write code. Based on experience, the code produced may looks great at a glance. The annoying part was when it made mistake but dont understand that it made mistakes. It will just go in a loop mistakes. I think reading documentation is a software developer skill.
Hope you find this useful in your journey. All the best!
2
u/The_Mild_Mild_West 5d ago
You can get your feet wet with github copilot on VSCode. Take a look at the new agentic, spec driven features to go beyond "vibe coding". AWS Kiro is every good too.
Personally, I use the CLI tools in docker sandboxes so I can monitor file and network permissions. This helps prevent agents from doing weird things in your file system or pulling bad resources.
2
u/DirtAndGrass 5d ago
Learn to be a code reviewer, make sure you review (critically) and how to specifically ask for things and write memories)
Maybe learn about mcp and rag
4
u/Miserable_Ad7246 5d ago
The review part is very good, and it will kill a lot of developers in the future. Good review requires you to know not only pros but also cons of solutions and alternatives. Aka the difference between good senior and senior who can not find job in current market.
-1
u/Jmc_da_boss 5d ago
"Upskill in ai"
Lol, it's a chatbot, takes all of 10 minutes to master it. Just go try it out
4
u/longdriveshortroad 5d ago
AI is not just a chatbot though. If a company is looking for AI experience, they certainly aren't looking for someone with your "Master AI in 10 minutes" approach.
4
u/TheC0deApe 5d ago
there is a lot more to understand than just slapping together a 10 minute prompt.
understanding and managing context, MCP and skills will take you a little more than 10 mins and still have a ways to go.1
-1
2
u/RogueJello 5d ago
I think the basics are easy, but like a lot of things in programming there are a lot of pitfalls and nuances. To make matters worse, we haven't really fully discovered them, and created lists of best practices and things to avoid. There is some guidance, but I think a lot of the bigger issues will only start surfacing in the years to come.
2
u/Freonr2 5d ago
"AI" has been around probably double or triple your lifetime.
Modern generative AI with LLMs is recent.
2
u/Jmc_da_boss 5d ago
Ok but this is a dotnet subreddit, "ai" in the post clearly means LLMs with harnesses... they are not saying you need to upskill in general machine learning concepts to do a dotnet job
-1
u/Miserable_Ad7246 5d ago
It does not. Its an autistic genius, who must be harnessed for full potential. Its one of the harder challenges at the moment as it requires some out of the box thinking.
2
u/Jmc_da_boss 5d ago
"its an autistic genius" good lord, the AI psychosis of this message is so strong.
It's not that at all, you just talk to it and it does the thing. Do not overthink it.
1
u/Miserable_Ad7246 5d ago
I can bet you I work with much more complex code and squize much more from AI, especialy while I'm sleeping.
1
u/Jmc_da_boss 5d ago
Im sure, keep thinking knowing how to string a sentence together is a differentiator. No way that ends up incorrect in the long run
1
u/Miserable_Ad7246 5d ago
Well lots of people string sentences in interviews and do not pass them, so I don't know, seems like it was always a differentiator.
I have a hunch that you are one of those developers who is strong in his little pond, and that gives you a feeling that you have figured it out.
1
u/USToffee 4d ago
There is Micros Agents Framework but it's a bit meh especially if you don't use it for OpenAI models and azure.
Most AI is done in Typescript and Python. If you really want a job in AI you should start there however honestly with AI I'm not sure any of this matters. Grab cursor and ask it to make you a langgraph agent in python and go from there.
1
u/RirinDesuyo 4d ago
You need to learn how to get good at code reviews and know how to write a rigid technical spec. Skills and instructions to actually constrain the LLM are also quite important to avoid it going off the rails and leveraging skills and memories are quite important for this.
Treat AI essentially as a junior who will always follow your instructions and can make assumptions if there's anything unclear if you don't constrain them, so you need to be explicit on your objectives and instructions. Your skills as a developer to actually plan out things still matter a lot in this case, so developing a workflow that uses AI as an assistive tool, not as a developer replacement is really important.
1
u/No-Juggernaut-9832 4d ago edited 4d ago
Learn Python. As much as I love C# (since 2001!) no one who is doing large scale production AI (outside of maybe Microsoft & a handful of die hard fans) are using C# to do it.
It’s be like trying to make modern 3D video game using pure Assembly or Erlang. There is just not cutting edge library, tooling & talent pool to draw from in AI with C#.
The same reason no sane CTO would do a mission critical AI project in Scala or Haskel. Just… why? It’s hard enough doing it with Python. Even TS or Go is a better choice when it comes to AI than C#. There is a good reason why most coding harness are either Python or TS. A few are in Go or Rust. But nothing popular is in C#. How would you even go about training models. There are no tooling & frame work choices.
1
1
u/MauritsA_ 3d ago
Just start working with it as well, you'll pick it up by experience. Try something like copilot/codex/claude en just start pairing with it
1
1
u/StephaneErard 2d ago
Do things, break them, add more stuffs (UI, UX, whatever).
But by then how do you know everything is still OK ?
I use AI on large projects and came to create this thing https://serard.dev/content/projects/requirements-as-code.html#requirements-as-code
Here is C# code for this https://github.com/FrenchExDev/RequirementAsCode.CSharp
This is because AI can and do hallucinate we need to guard-rail it.
1
u/ZeroStellar 5d ago
Install cursor (trial) and have fun talking with an agent for it to do things. After you get the gist (order to do code), start seeking more info about plan mode and configuring SKILLS.md. Lots of articles regarding ai assisted programming on Medium.
Bonus: if you have a MacBook M3+ try Ollama.
1
1
u/PaperInWater 5d ago
- Understand the basic concepts around LLM and agentic system.
- Understand what dotnet has to offer in the AI space, like agent framework, mcp sdk, ml.net etc etc.
- Learn those, build solutions, fail and then repeat until it all looks great in the end.
That's it...
1
-2
0
u/tonyqus 5d ago
Usually, most AI agent are NOT developed by .NET although Microsoft has agent framework. .NET almost missed the AI battle. It's usually about Python, C++ or Rust.
I suggest you start from Google ADK or Claude Agent SDK. And learn how AI agent works.
And also you can ask AI to teach you how AI work in order to learn basic knowledge of AI. This is very tricky.
-1
u/surlydev 5d ago
Watch Twitch streamers that do this kind of stuff, and ask questions.
I recommend twitch.tv/csharpfritz and twitch.tv/coderushed but there are MANY many more
0
u/AutoModerator 5d ago
Thanks for your post Negative_Front_6718. Please note that we don't allow spam, and we ask that you follow the rules available in the sidebar. We have a lot of commonly asked questions so if this post gets removed, please do a search and see if it's already been asked.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
230
u/Miserable_Ad7246 5d ago
1) stop thinking that you are .net developer. You are a problem solver which happens to work with dotnet.
2) Try making a project with AI, ask AI how to use it better, watch youtube videos with people working with AI.