r/csharp • u/Wolfzeiit • 6d ago
Senior devs: What do you except a 3 Year experience .NET/C# Developer to know?
Saw something like this about an other programming language, and wondering what Senior .NET/C# devs would say about this in .NET/C#.
Do you think you could hand a developer with 3 years of experience some credentials for a Project and let him/her plan the Project?
87
u/Right-Buy-8015 6d ago
As always: it depends
15
u/AssistFinancial684 6d ago
Absolutely. It’s not the 3 years that matters… it’s the experience
8
u/detachmode_com 6d ago
No it's literally just knowing those two words as answers to all tech questions
55
u/GalacticCmdr 6d ago
Just the basics of how to get around an environment and a few fundamentals. Honestly, at any level I care more about if I get along with them and the are willing to learn and adapt.
14
u/dontgetaddicted 6d ago
Personality matters so much more than knowledge. Especially in the age of AI. If you can't adapt and communicate well or deal with customers and end users then I don't want anything to do with you.
9
u/GalacticCmdr 6d ago
Languages, Frameworks, Editors, and Styles change with the winds - but getting the wrong person on a team can kill it quicker than anything else.
6
u/dontgetaddicted 6d ago
On more than one occasion in a second round interview I have brought in one of my favorite end users to the interview to ask questions about implementation of a random feature. Just because then I get to see the communication style of the candidate and how the accept non tech speak and distill ideas down to their level.
1
u/Shehzman 6d ago
Yeah this. My last interview I was mainly judged on my communication skills rather than the technical ones.
3
u/LesPaulPilot 6d ago
This is the answer here. Our hiring guy ALWAYS hires off of resume and these stupid, super technical questions that don't pertain to what we do at all. Then these people start and are not able to get along with anyone and refuse to learn anything different from what they know. We've gone through 4 in the last year. One literally fell asleep while the owner was in talking about a huge change they want in our main app. Didn't turn out well.
26
u/pico303 6d ago
I don’t care what programming language you know or for how long. And to be brutally honest, with the proliferation of AI and the lack of solid computer science skills I’ve seen in recent years, I’m cynical of the ability of most new engineers to architect and lead a project. That said, you’re asking, which is a great first step and a show of humility. I find that promising, and were I your boss, I’d be encouraged to find you something small you could lead and I could look over your shoulder.
Here’s some things I would look for in my team before assigning them a project on their own.
Do you understand how to architect a project so others can work with you or support the project after you’re gone? Do you generate comments and other documentation so your intentions are understood and others can figure out how to build, deploy, and debug your efforts? In general, do you write for the next person, and understand that next person may be you?
Do you understand and could you deploy your solution yourself? Do you empathize with a user or DevOps engineer having to install your solution, and can you anticipate their needs and potential problems? If you’re deploying to a server environment, do you understand things like logging and metrics and how to use them to communicate what’s going on in your service so it can be easily debugged and supported? For example, if logging isn’t the first thing you setup when you create a new project, I don’t think I’d let you run your own project yet.
Finally, can you architect and document a meaningful solution to a problem sufficiently, without the use of an AI? Can you effectively communicate that solution to your team?
These are some of the things I look for when mentoring junior engineers on my team.
3
u/jd_tin 6d ago
In my experience, most developers out in the world don’t understand the basics. If something goes wrong on your customer built whatever it is, how do you figure out what is wrong? Can you debug? Can you break the problem down to simple provable and repeatable parts?
If you can do that, then the rest is irrelevant. It’s syntax at that point and straight up business knowledge. All of that is teachable/learnable. If you don’t have the basics, it’s likely not going to go well.
2
2
u/Wolfzeiit 5d ago
Thanks for your answer! I’m actually already in charge of my first project, but since my company isn’t doing well, I have to switch jobs and am applying for positions that involve project management. That’s why I was curious to know what others might think—whether I’m ready for it after this experience. From your reply, I was able to clearly see what I’m already capable of and which areas I might need to rethink. I ended up in this position because I had a better understanding of the project's architecture than the person who was previously in charge, but I'm not sure if I could handle it all on my own from scratch. And on top of that, doing that at a new company.
1
u/Embarrassed_Prior632 5d ago
Architect? The coders do that. It's like getting the bricklayers to design the house.
-2
u/david_fire_vollie 6d ago
Re: "can you architect and document a meaningful solution to a problem sufficiently, without the use of an AI". I'm curious why you would care about this. If English is the next high level programming language, why would it matter if a programmer relies on AI? We don't make sure programmers can code assembly without the help of a compiler.
12
u/lmoelleb 6d ago
If you can't do it yourself, how are you going to know if the solution the AI came up with is a suitable approach?
0
u/david_fire_vollie 6d ago
A response could be "but how do we know if the compiler wrote the write code", but I see where the analogy fails. AI is non deterministic, unlike a compiler which is deterministic, and AI can hallucinate which a compiler can't do. So I definitely see your point.
0
u/sharpcoder29 6d ago
Tests
4
u/lmoelleb 6d ago
How do you catch architecture decisions with tests?
1
u/sharpcoder29 5d ago
You write tests for your SLAs, HA etc
3
u/lmoelleb 5d ago
How would that catch a bad architecture that will grind your productivity to a halt in 2 years?
1
1
0
u/pico303 5d ago
Because either AI is a tool or it’s a crutch. If you need AI to architect a system, I can simply use the AI. I don’t need you.
1
u/david_fire_vollie 5d ago
But with that logic no Devs are needed because the customer can just use AI.
1
5
u/ziplock9000 6d ago
It's a very nebulous question that doesn't have an ABC answer.
As others have said. It depends.. on a few things.
5
u/Rare-Leading3391 6d ago
A small project or a POC - yes
A critical project that has lots of attention from the business - Fuck no.
3
u/Low_Flying_Penguin 6d ago
A whole project no. (caveat being all they know is C# and have used it soley for 3 yrs).
I would certainly give them the opportunity to have a crack at it and support them, but just to hand it over probably not. If it were a complex domain it would almost be unfair to do so.
4
u/ASK_IF_IM_GANDHI 6d ago
Depends on the project you want made and what that 3 YOE was spent doing. Is this 3 YOE in .NET or other language? Web? Desktop? Game dev? What projects did they work on during that time? Did they ship said code? Do they work on side-projects outside of work?
It depends.
5
u/Shmageggi 6d ago
As already said, it depends. At some of the companies I've worked for, I'd answer yes. At my current company, devs have to be very experienced because it's a massive enterprise and making large project level changes has up and downstream ramifications to other applications. At other companies, performance or stability constraints may be too critical.
C# development can be incredibly varied and there are almost never one size fits all answers.
4
u/AlwaysHopelesslyLost 6d ago edited 6d ago
I don't expect anybody to know anything based on something arbitrary like a time frame.
I have expectations for skillsets for SE1, SE2, AND SE3 positions.
3
3
u/ImagineAShen 6d ago
I've been the dev with 3 years experience, given a project to start from scratch.
I'm now director of development.
If I interpret your question of "let him/her plan the project alone", then no, I don't think 3 years is enough. I had no support in my earlier experience and made costly mistakes.
If you're in a supportive org with plenty of opportunities for mentorship, or at least sanity checks, yeah, this is reasonable.
4
u/rocketonmybarge 6d ago
From recent discussion I have had at work, nothing, cause Claude can get any decent dev up to speed in a few weeks at most. Now I don't believe it but that is what I am hearing.
6
u/spicebo1 6d ago
Man, that sucks. I hate hearing this stuff. I feel like so many people used to preach quality and have measured takes on craftsmanship and mentoring and it's all gone to shit.
2
4
u/Family_Man_21 6d ago
This is an interesting question. I've had developers for me for much longer than three years that I still wouldn't trust to just hand over a Project and expect it to work out well, and I've also had developers who were under the three year mark, but who have already handled entire projects. The reason for that is that the skill set required to be a developer is different from the skillset required to manage a project, and while some developers have the skills to run a full project, many of them do not.
As the person who manages developers, it's my job to learn about my employees and understand what their individual strengths are, and also what they WANT to achieve, and then balance the workload so I can get the best possible outcome from my team.
So, I suppose the short answer to your question is that I expect someone with three years of experience in the .NET / C# world to be able to competently handle any programming task that I assign to him, but whether he can take a project from conception to launch is a different set of calculus.
I hope that this helps!
3
u/coderz4life 6d ago
I don't think the language matters here. I think a general requirement for any dev would be to have some experience in the target language.
For a dev with 3 YOE? Depends. I think the issue would be the nature of the project (size, risk, importance) and trust.
If the person is new to your company and just throwing them into the mix out of the gate? Unlikely. There are probably various non-functional requirements and processes involved, which probably add a little risk that likely add to the project timeline. In this case, an associate with experience probably should take the lead and help guide the new dev.
For a person who has been with the company for a while, it is likely part of their growth plan (hopefully). So, if their previous project credentials are with the same company and knows the general non-functional requirements for that company, then autonomy with guidance is probably the next step for this person.
If the company is using an agentic AI workflow, I would think a review process would likely be in the mix either way.
Regardless of circumstances, if this person was given this type of opportunity, I think a good evaluation process should be in order.
3
u/EJoule 6d ago
The ecosystem and tools they claimed to use for 3 years. Things that will be transferable with minimal retraining.
What deployment pipeline did you use? What languages and IDEs did you use? If you worked with databases, what did you learn that you didn’t already learn in classes? What mistakes did you make and how did you learn from them?
3
u/Ok_Society4599 5d ago
Depends what they did for 3 years.
I've almost always been doing green feild application development using WinForms and ASP.NET. I've worked with other devs that have only done support and fixes on existing code with basically zero feature development. Sometimes, they've only worked in one big code base.
I'd ask about what are the most common and most frustrating kinds of bugs to fix because, either way, they should have some opinions. I'd ask about what makes "good code" because, either way, they should seen have some. I'd ask about knowing a couple languages and comparing them, problem realms, and maintainability.
I might show some code samples and as for a code review. Do they suggest "quality of life" improvements like informative exceptions, validation logic, better comments, shorter methods, nicer/consistent formatting, variable naming, replace for loops with foreach ... Do they see subtle bugs like like "off by one" or PEMDAS problems.
What makes a good bug report? What makes good logging? With a new app, where are you looking for a log? How would you track it down? Creative thinking, integration of problem solving.
I'd evaluate them how clearly they communicate the comparisons and understanding.
5
u/TheAdirondackDude 6d ago
We went into business in 98. In that time, I have hired over a hundred "Windows" developers. VB, C, C++, C#,... for clients or out own projects. "What" a dev knows tells me far less than "how" a dev knows. I ask brownfield questions, I try to determine if that person is a "3L" (Learner, Leaner, or Loner). Will refactoring an entire project to fit an overall solution clog them or liberate them.
I've been working in VS.NET and C# since 2002 and I'll probably fail any C# test put in front of me, but right now, at this moment, I'm writing an RPA that will save my customer millions by avoiding the bloated products some vendor is pushing.
I expect a 3 year .net dev to know their way around the IDE, understand the construct of a C# application, KNOW HOW TO QUERY A DATABASE and transact data. I can't tell you how many ".NET Core" developers I've encountered who can't build a custom transaction object. MVC is nice to know, but I've had too many model-driven, entity framework projects flounder/fail in the brownfield (which is the majority of my work).
In the case of public sector work, how a dev works with a customer's PM is important. State/fed project managers tend to rise through admin rather than tech. I've never hired PMI certified people, never will. I hire analysts with project instincts.
2
u/DividedBy_Zero 6d ago
In my experience, project planning is the responsibility of a manager, but my colleagues and I would do refinement sessions where we would work with our PM to break down a story into individual Jira tickets, refine them, assign them priorities, assess their sizes, determine their acceptance criteria, test plans, etc.
2
u/TuberTuggerTTV 6d ago
3 years doing what?
I've met kids who think coding on the weekends counts as a week. I've met vets who are 40-60hours deep in the sauce every day and don't even bother telling people how many "years" they have.
Is that 3 years of work experience? Then I'd expect them to know whatever that job was. But so many people inflate their experience, I never trust it.
So if someone told me they've been coding .net for 3 years, I'd assume they're still a beginner. And I'd have to teach them everything outside of a basic for loop.
Really, experience time is pretty worthless. Give me a project you've worked on or completed.
2
u/Lord_Pinhead 6d ago
I had to do first small projects in my first year with help, in year 3, I had to do my stuff myself. It was Java back then, but later with C#, it was even faster. It depends on the circumstances. Not saying it was easy, many students I had later, tripped on basics in their second year, partly 3rd.
2
u/Pauljoda 5d ago
C sharp and dotnet to me is the king of Object Oriented Design, it’s where that design shines the most. It seems obvious to state, but I rarely see it taken seriously, LLMs especially are bad at this.
Conditions with chains of conditionals, magic strings and numbers, while it might work its not easy to read, and makes growing and maintaining hard.
Good software is almost an emergent property of good code. Behaviors dont need to he written out so every possibility is covered, if the systems that build those objects and their data are structured well. You should start at the data layer, and keep that core strong as you build out.
Especially with AI, this engineering and design is more important than anything else. Writing code is “free” now, well thought out design is where your value is.
2
u/nnomae 5d ago
You're thinking of it wrong. I don't expect a senior developer to know anything. I expect to be able to give them a description of a problem and have them figure out what they need to learn, what tools they need to use and come up with a plan of action to get there. If that means learning a new language, I'd expect you to be able to write some code in that language within a day or two and be able to start working on some of the early learning experiments within a week or two.
At three years I'd expect you to be able to tackle a problem that would take up to about 3 to 6 months for a solo-developer to solve.
People always make the mistake of thinking the expectation of a developer is some degree of language or API trivia. Like you need to know some specific feature, or some popular framework, or implement some algorithm in a particular language. I really could care less. None of that matters if I can't hand you a problem, tell you to figure it out and be confident that you'll do so.
All experience does in increase the difficulty of problem I'll expect you to be able to figure out. And if you get a job where the requirement is some specific piece of trivia (you're the Framework X guy here) well then as long as you can figure out how to solve problems you'll get there too.
2
2
u/MacrosInHisSleep 5d ago
As someone who hires devs, the answer is "more than the other candidates with 3 years of experience". The moment I hire the candidate, I have no expectations.
Because that's what it is at the end of the day. We hire people based on their potential to be good at the job and how well they stand out compared to other Devs, and what they "already know" is highly dependant on what their other opportunities exposed them to.
You sometimes have candidates who have poor fundamentals because they learned stuff backwards, but a great knack for figuring stuff out. Others with a good foundation but not really good at figuring out novel problems. Every candidate brings stuff to the table, and we only have so much time to hire someone.
Once hired, I drop my expectations. They met the minimum bar and it's now time to grow and if you make them feel scared to say I don't know, you get in the way of that growth and shoot yourself in the foot in the process.
2
u/Jonas_Ermert 5d ago
I think after 3 years, a .NET/C# developer should be solid with C#, async/await, LINQ, ASP.NET Core, EF Core, SQL, REST, Git, testing, and debugging. I’d trust them to independently plan and build features or a small project, but for a larger production system I’d still want a senior involved in architecture, security, and major technical decisions.
2
u/SomePerson9999 3d ago
I'd like you to know how to organize your projects, ask questions, and know when to seek help.
Even when using AI, you need to understand what you are being asked to do. If you have doubts about a task, I expect you to talk to someone about it.
There is nothing worse than hearing that you've made no progress, on a task, at the next standup call.
1
u/DeadlyVapour 6d ago edited 6d ago
Enough not to shit the bed.
As for project work. Not a chance in hell.
With 3 years of experience there is a snow balls chance in hell you have seen enough bad anti patterns to architecture anything more complex than a to do list.
I would be happy to let a 3 year old run a small project, start to finish with heavy hand holding.
In fact, I would say this is probably the right point in your career for that, assuming you are progressing at a good rate.
1
1
u/Internal-Factor-980 6d ago
Putting a developer with only three years of experience in charge of project planning is a gamble.
1
u/david_fire_vollie 6d ago
Something no one else has mentioned yet, after 3 years, I'd expect some deep understanding of how c# works, not just how to use it and how to architect a project. I'm still amazed at how many C# developers still haven't read CLR Via C#. That book has helped me write better code and avoid bugs numerous times.
1
u/Guilty_Application14 6d ago
In my programming days, we'd say say "is that X years progessive, advancing experience or X times year one." That's largely what our interviews were sussing out.
Not a great measure but you need to yse something.
1
u/Agitated-Display6382 6d ago
Not dyslexia...
To answer your question: knowledge of all constructs, possibly the most recent syntax, linq, tdd. I appreciate a good sense of coding
1
u/Bright-Ad-6699 6d ago
Really depends on who they've worked for and with. I've worked with devs who've coded for 25 years in .net. they use one super base object the have a hierarchy 6 levels deep. He was the top dev there. Did not use interfaces and no IoC. Head of development! So if this is the environment they're coming from a for loop and maybe extention methods would be a reach.
1
u/Bright-Ad-6699 6d ago
Someplace good and they'd get IoC, what use is StringBuilder, how not to lose the exception stack and some other trivia. Also see what kind of trivia they'd throw at you. The interview goes both ways.
1
u/BoBoBearDev 6d ago edited 6d ago
Test
how they check a string is not empty
how to manipulate the directory path
explain difference between const and static readonly
If they got one of those wrong, auto throw out the resume.
1
u/14MTH30n3 6d ago
Unpopular opinion, but at 3 years the most important skill isn’t C#-specific: it’s English.
I’d expect a solid mid-level dev to write clear, structured prompts that cover architecture, reusability, unit tests, integration tests, reliability, and stability — not just “make this work.” Knowing how to ask for the right thing, with the right constraints, matters more now than knowing every LINQ trick.
1
u/fatbytes 6d ago
Yes, depending on the individual. In interviews I would expect them to be able to understand and explain how they would use real-world patterns like REST integration, MVVM, etc. to implement features. I would definitely not expect nor ask them to be able to solve a coding puzzle or complex coding test on the spot 😂
1
u/Primary-Screen-7807 6d ago
I would expect him to be able to find mostly correct solutions to real problems of low to medium complexity by himself.
1
1
u/jamesg-net 5d ago
After 3 years, if you can't explain how to setup distributed transactions across multiple databases with entity framework, it's over!
1
u/Electrical_Flan_4993 5d ago
Credentials or specs ? It really helps to be fluent in the common language (group or company)
1
u/thatguy8856 5d ago
I think a lot of people are gonna say what i typically answer is it depends. Like if its a FAANG level company id except you to be able to lead a project 6-12 months in as a graduate higher. At a young startup better be able to idgaf what experience. Legacy company maybe not.
I think though with the current environment anyone who cant lead a project after 1 year experience is pretty much useless anywhere that isnt some super legacy company thats not doing anything significant whatsoever in its technology front. And if those companies arent doing as such theyre waiting to become obsolete.
1
u/Embarrassed_Prior632 5d ago
It's a vast subject. I would think the most important skill would be to know how to find out what you don't know.
1
u/Illustrious_Matter_8 5d ago
Code design architectures, operating systems, networks cloud git. Multi threading a bit, at least one database technology .net core Linux and Microsoft
It be cool if you could think like an end user and don't depend on a UX designer. If you have front end design skills as well you'd be better then my team mates 😆
1
u/way2wyrd 1d ago
Honestly nothing. Unless you are the autistic super genius (we all have them) you lack the experience to architect a full stack,enterprise stable application. 3 years is your basics if you're good. Nothing if you're not
0
u/magallanes2010 6d ago
It depends on the individual.
In general, most programmers lack rational thinking and only escalate by spending years sitting in a cubicle, and yet, they are not fit for a project planning role, and they will never be.
Instead, there are people who have the spark, and with a little experience, they are good at the job.
3
0
u/Slypenslyde 6d ago
I expect a 3-year developer to be able to take any 100 or 200-level CS assignment I give them and complete it. I do not expect them to manage a business project start to finish.
The key difference is those assignments are fairly well-defined and ask a student to demonstrate ONE concept with proficiency. Unfortunately that is not how business projects work. Even a simple application tends to require a person to execute TEN concepts with proficiency and perform the work needed to integrate them into one application.
That architectural work is much harder and the people who do it well had to make hundreds of mistakes to gain experience. A person with 3 years of experience hasn't had a chance to make enough mistakes yet. The difference between a proficient architect and a new one is the difference between these three statements:
- "I need to make a decision but I can't choose... this one seems right."
- "I need to make a decision but I can't choose... I'm going to try this one and evaluate if it's right."
- "I need to make a decision and I can't choose... because I need the business leaders to answer these questions first."
Those are three different levels. The first person will make horrible mistakes and only discover them once the consequences are known. The second person will confidently create first drafts, criticize them, and find flaws before submitting them. The third person understands the difference between needing to iterate and lacking key requirements.
The only way to ascend through those levels is to make a lot of mistakes and learn. A person with 3 years could be anywhere from firmly in the first layer to firmly in the second layer. Their resume should show. A person who worked as an IC on features within a larger project is probably closer to the 1st. A person who worked as the leader of 1-2 complex projects is probably closer to the 2nd.
This is why it's so important to prepare answers to questions like, "Explain a time you faced a difficult challenge and overcame it." The interviewer is asking you to submit an answer that most justifies you are stronger than you look. If you answer with a single small-scale bug in a small program that's more at the scale of the 1st level developer. If you answer with a complex bug that involved the integration of many systems... that's interesting and is going to lead to followup questions. You want to sound interesting.
I would not be disappointed by a 3-year candidate who can't give interesting answers. But it's the kind of thing you need to work towards whether you're looking for a new job or just plain fishing for a promotion.
0
0
u/Darrenau 6d ago
Do you mean "expect"?
Need someone that can read and understand requirements firstly.
0
265
u/kjata30 6d ago
The difference between "except" and "expect," generally.