How to screen .NET Core and .NET developer programming skills to find the best – guide for IT recruitment

How to screen .NET developer programming skills to find the best - guide for IT recruitment

You are about to start a recruitment campaign to hire a .NET developer or a .NET Core developer. But once you receive your applications and resumes, you have to decide who is good enough to get to an on-site technical interview. This requires a technical screening process.

What a lot of technical recruiters don’t realize is that screening involves more than glancing through a resume. Why is that? On the one hand, good .NET developers are scarce so you don’t want to overlook a candidate with potential and good programming skills. On the other, you don’t want to invite weak candidates for an interview. This wastes the precious time of your IT team and coworkers.

So the question arises, how can you screen the .NET programming skills of your .NET developer candidates so that you interview the good candidates and filter out the bad ones? We have put together this guide to show what matters in .NET technology and how to screen candidates quickly and effectively. Are you ready? Let’s start with the basics.

1. What is .NET?

.NET is a software development framework from Microsoft. It provides a controlled programming environment where software can be developed, installed, and executed mainly on Windows-based operating systems (this is changing with the introduction of .NET Core). It was Microsoft’s response to the rapid growth of the Java platform and that’s why many concepts (starting from languages’ syntax and including the idea of executing programs on a virtual machine) of those two are similar.

The .NET platform supports many languages, like C#, Visual Basic .NET, F#, and C++ .NET. It also gives .NET developers a bunch of libraries and frameworks, making it very straightforward to create a large variety of applications (web, desktop, and mobile), including ones for the most sophisticated enterprise purposes. The main advantages of .NET include: natural integration with other Microsofts products/tools like Office, the framework’s maturity and stability, and great support from the .NET developer community.

720 x 90 – download Hack the process

2. What should an IT Recruiter know about .NET?

We have come up with a list of the most important things IT recruiters should know when it comes to .NET.

  1. Just like in the Java environment, only being familiar with a specific language (in most cases it will be C#) is simply not enough. To be a productive .NET developer, you need to know libraries and frameworks, like ASP.NET, MVC, or Entity Framework. This these are the building blocks of any non-trivial commercial application built using .NET.
  2. It is important not to rule out candidates if they don’t know a single framework from the requirements’ list. .NET frameworks are often similar and if the candidate has a decent knowledge of one of them, they can easily migrate to the required one. Despite not knowing the library or framework in question, they should still understand the ideas and principles behind it. If you want to learn more, we will give examples of these relationships a bit further down.
  3. Commercial experience is what really counts and brings real value for an employer. .NET knowledge from university, unless it’s very practical, doesn’t bring much to business coding. Of course, if you are looking for a junior .NET developer, education does matter. But remember that you can take into account programming experience, even if it is non-commercial. Ask if the candidate has done any hobby or open source programming project that was done in .NET technology.

.NET Core Framework

.NET is constantly evolving at a rapid pace. Previously, a common limitation of .NET was problems with porting the framework to other hardware architectures and operating systems. This among other factors eventually led to the creation of the .NET Core framework. This is now open source and supports Windows, Mac, and Linux.

.NET Core hasn’t replaced the previous version of .NET. For now, the two are being developed in parallel and it doesn’t seem that .NET Core will replace .NET anytime soon. There are many applications built using .NET and they will still have to be maintained and updated. Not only that, updating an application from .NET to .NET Core could be hard or even impossible for technological and/or financial reasons.

What’s the difference in developer skills needed between .NET and .NET Core?

Well, both are quite similar overall, with some differences in details depending on libraries and components. Generally speaking, a .NET developer should be able to get comfortable with using .NET Core pretty easily. That said, there are some specific parts of .NET like ASP.NET Web Forms, or .NET C++ language which currently aren’t supported by .NET Core, and no one knows if they ever will be.

For now .NET Core is usually used in low-risk new projects that are just starting from scratch (startups etc.) It’s possible to use some .NET components in .NET Core apps (but not the other way round). Some companies may try to rewrite their existing software into .NET Core, or just write new modules using .NET Core. To do this, there will be a demand for developers who know both .NET and .NET Core.

Due to the similarities between .NET and .NET Core, we will refer to both of them as .NET from here on out, pointing out differences if needed.

3. How to verify .NET developer skills in the screening phase

IT recruiters can use a few different screening methods to assess .NET developer skills. These can be based on anything from the candidate’s resume, a technical interview or video calls, all the way to online coding tests.

Below you will find some useful and practical recruiting tips to help you verify .NET developer skills using each method.  

3.1. Screening a .NET developer using their resume

As an IT recruiter, you can find some really valuable information in the resumes you get from .NET developers. But to unlock the valuable information they contain, you have to understand what is written there without getting confused by any of the .NET terms they use. If you are technical recruiter looking for a .NET developer, then you should at least be familiar with all of its frameworks, build tools, and other resources in order to know what you are looking for. You should be able to speak the same language as your candidates (or at least understand basics the candidate is talking about).

That’s why we prepared this basic .NET glossary. Take a second to brush up on the terms it contains. 

.NET glossary for technical recruiters

.NET framework versions .NET 1.0 – .NET 4.7.2
Languages C#, Visual Basic .NET, F#, C++ .NET
Web frameworks ASP.NET MVC 1-5, ASP.NET Web API 1-2, ASP.NET Web Forms (old school)
Desktop frameworks WPF, Windows Forms (old school)
Communication frameworks* WCF, ASP.NET Web API, 1-2, Web Services (old school)
IoC Containers Castle Windsor Container, Unity, Structure Map, Ninject, AutoFac
ORM Entity Framework 1-6, nHibernate 1-5, Linq2SQL (depreciated), ADO.NET
C# unit testing frameworks nUnit, SpecFlow, MSTest, xUnit
C# build tools TFS, Team City, Jenkins, Cruise Control .NET, Azure DevOps (old TFS)

.NET Core glossary for technical recruiters

.Net Core framework versions .NET Core 1.0-2.2
Languages C#,Visual Basic .NET, F#
Web frameworks ASP.NET Core MVC 1.0-2.2
Desktop frameworks None now but coming in .NET Core 3
Communication frameworks* Web Api is now integrated into ASP.NET Core MVC 1.0-2.2
IoC Containers Castle Windsor Container, Unity, Structure Map, Ninject, AutoFac
ORM Entity Framework Core 1.0-2.2
C# unit testing frameworks nUnit, MSTest, xUnit

*used to exchange data and create Service Oriented Applications.

Azure

Nowadays, Microsoft has its own cloud platform – Azure. And it’s getting more and more popular as time goes one. The demand for developers who are able to use its functions is also rising. The pricing of Azure services is based on the usage of computing power and resources needed. This means that careless software development may lead to increased bills, even after app deployment. The set of new ideas and technologies that comes with Azure doesn’t make it easier to create optimal software since many developers haven’t had enough time to become experts in those solutions yet.

Let’s see at a glance what issues the .NET developers could be familiar to in the context of Azure:

  • Web apps
  • Serverless functions
  • Cosmos DB
  • Service fabric
  • Blog storage
  • Containers and microservices

Azure is a very deep subject that comes with many new functionalities like these and many more.

Now that you are familiar with .NET basics, we can go into further detail. If you’re not a technical person, then it’s easy to get confused by all the different technology names and abbreviations. If the candidate says that they know C#, does it mean that they are familiar with Visual Basic .NET? Or if the applicant knows ASP.NET MVC 1, does it mean they can also use ASP.NET MVC 3? Just keep on reading and you will get an answer.

The most common .NET technology names that are used interchangeably:

  • ASP.NET, ASP.NET MVC, .NET MVC (Model View Controller)
  • EF, Entity Framework, ADO.NET Entity Framework
  • Windows Communication Foundation, WCF, SOA, Service-Oriented Architecture

How close respective versions of .NET technologies are to each other:   

  • ASP.NET MVC 3/4/5 are similar
  • ASP.NET Core MVC is a bit different than ASP.NET MVC 5
  • ASP.NET MVC 1 and ASP.NET MVC 2 are similar
  • ASP.NET MVC 3 is different than ASP.NET MVC 2
  • C# 7 (there were a few of them: 7.0;7.1;7.2;73) is a bit different than C# 6.0
  • C# 7 is used in .NET Core and .NET 4.6.2+
  • C# 6.0 is a richer version of C# 5.0 which is a richer version of C# 4.0
  • C# 4.0 is a bit different than C# 3.0
  • C# 3.0 is different than C# 2.0
  • Entity Framework 7.0 was renamed Entity Framework Core because it was completely rewritten from scratch
  • Entity Framework Core is a bit different than Entity Framework 6.0 Some things seem the same in the code but works in a different way under the hood.
  • Entity Framework 6.0 is similar to Entity Framework 5.0
  • Entity Framework 5.0 is similar to Entity Framework 4.0

It is also valuable to be aware of following relations:

  • C# is totally different than Visual Basic .NET
  • ASP.NET MVC is totally different than ASP.NET Web Forms
  • WPF is totally different than Windows Forms
  • All IoC containers are very similar conceptually. If someone knows one, then it’s easy to adapt to another
  • .NET Core doesn’t need an IoC container as it’s come with its own, but it can utilize the existing ones.
  • nHibernate is similar to Entity Framework
  • Entity Framework and nHibernate are totally different than ADO.NET
  • RESTful Services: If someone knows ASP.NET Web Api then will be able to deal with the others

How important are .NET certificates for assessing a .NET developer’s coding skills?

Certificates are a bit of a controversial subject in the .NET world. Some companies and specialists say that they are the best proof that the candidate has in-depth knowledge of .NET. Others believe that exams hardly test any practical skills at all, concentrating instead on exceptions and theoretical knowledge.

It is safe to say that certificates don’t necessarily prove anything. Many great developers don’t have any as they don’t see any value in them. Others, who may not have a lot of commercial experience, will try to “boost” their market position by taking a certification exam. Obviously, one can say that having a certificate is better than not having any, but recruiters should remember that it is rather a “nice to have” than a requirement. A candidate’s best proof of quality is their commercial experience and references.

In .NET, Microsoft certifications obviously matter most when it comes to software development. They can be divided into several levels:

1. MTA – Microsoft Technology Associate.

It’s the first level of certification and certifies that a candidate has had exposure to Microsoft technologies. To receive an MTA, a candidate is required to pass one of its exams. The is a wide spectrum to choose from, but there are a couple of exams that are significantly related to development:

  1. Exam 98-361 Software Development Fundamentals
  2. Exam 98-364 Database Fundamentals
  3. Exam 98-375 HTML5 Application Development Fundamentals
  4. Exam 98-382 Introduction to Programming Using JavaScript
  5. Exam 98-383 Introduction to Programming Using HTML and CSS

Please note, that having an MTA isn’t required to start an MCSA level examination, so treat it as a bonus.

2. MCSA

It’s the second level and requires no prerequisites. A candidate can earn two versions of the certification:

  1. MCSA:Web Applications.
    For this one, the candidate wil need to pass:
    Exam 70-486 Developing ASP.NET MVC Web Applications
    And at least one of following:

    1. Exam 70-483 Programming in C#
      Or
    2. Exam 70-480 Programming in HTML5 with JavaScript and CSS3
  2. MCSA: Universal Windows Platform
    The candidate will need to pass both:

    1. Exam 70-483 Programming in C#
    2. Exam 70-357: Developing Mobile Apps

3. MCSD: App Builder

To earn the MSCD: App Builder certification you will need to have at least an MCSA in Web Applications or Universal Windows Platform
To earn this certification, the candidate should pass:

  1. Exam 70-487 Developing Microsoft Azure and Web Services

More information about current certifications can be found here.

Please note that there are plenty of certifications (MCP, MCTS, MCPD) and exams (especially regarding older versions of .NET, WPF) that has been retired. Those are also notable for a candidate to have. It is also valuable to have passes plain exams, even if the candidate didn’t continue on the path to certification.

Other information on a resume that can show the developer’s .NET skills

When reading a candidate’s resume, pay attention to the following points. They can suggest that your candidate is likely to be valuable to your IT team.

  • Experience in large projects, including dealing with large volumes of data. This suggests that the candidate probably already knows how to handle issues which can emerge in any IT project.
  • Participation in conferences, programming meetups. This is a sign that the candidate has an above-average interest in new trends and could be a passionate and skillful developer.
  • Participation is open-source projects.  This is a sign that the candidate probably has an above-average knowledge of .NET technology and would probably do great as a part of any project.

3.2. Technical screening of .NET developer skills during a phone/video interview

Drawing reliable conclusions about your candidate’s .NET developer skills from the resume on its own is pretty difficult. That’s why IT recruiters often turn to phone or video interviews to get to know their candidate better. If the candidate does well, they are invited for an on-site technical interview with the IT team, so it’s worth to think through the questions you want to ask carefully.

The questions themselves can vary based on the position you are recruiting for and the specific skills you want to verify. Based on my experience I would recommend following general questions to find out more about candidate’s .NET developer skills:

1. NET interview question about the developer’s experience

Q1: What was the most interesting project you’ve participated in? Can you describe it and say why you considered it to be so attractive?

Why you should ask Q1: It gives you an idea of the complexity of the projects which candidate has participated in. Importantly, it reveals their preferences (algorithms, front-end, database).

2. .NET interview questions about the developer’s knowledge and opinions

Q2:  Could you explain the difference between similar frameworks A and B  (for example the difference between ASP.NET MVC and Web Forms)?

Why you should ask Q2: If the candidate can explain the difference in an understandable way to a non-technical person, it indicates that they communicate well with business users. Additionally, a clear explanation suggests a deep understanding of the problem (in this case, knowledge of both frameworks).

Q3:  Do you like to participate in the analysis, design and deployment phases of an IT project or do you prefer to concentrate on the pure development of a well-described task? Why?

Why you should ask Q3: If the candidate prefers the first option, it means they would probably feel better in an agile-like project (both small and large organization) and can evolve to a different role later (business analysts, architect, scrum master). If they prefer to concentrate on pure development, it suggests the candidate would feel better in a team with well-defined roles and boundaries (a large organization).

Q4: I’ve noticed you listed framework X on your resume. What’s your opinion about it? Is it a good choice?

Why you should ask Q4: An open question like this gives the candidate an opportunity to demonstrate how much they know about a specific framework. You can also play devil’s advocate based on their answers “But why not use framework Y for that?” This way, you can see how the candidate makes decisions concerning technology, justifies their choices, and whether their opinions are in line with your IT team’s opinions.

3. Behavioral question for a .NET developer

Q5: Think about a programming project decision you made that was a failure. Why do you think it was a mistake? Why did it happen? Could you have done anything differently in order to turn it into success? What steps did you take to improve the situation? What did you learn from this experience?

Why you should ask Q5: That type of question will help you find out how the candidate perceives their decisions, draws conclusions, and how much they learned from their previous experience.

3.3. Technical screening of .NET developer skills using an online coding test

Online coding tests can be a great tool to asses .NET developers skill. In fact, they will tell you more than a resume screen or phone interview ever can. Keep reading to find to find out how programming tests can streamline your technical screening process and what should they include in order to provide you with accurate information.

Should .NET online coding tests be the primary or an additional method for screening?

Depending on your company’s approach, coding tests can either be used as the primary method of screening .NET developer skills or an additional one, next to resume analysis and a phone interview. More and more companies are turning to coding tests as the primary method for screening as they give IT recruiters a couple of crucial benefits:

  • The most important thing a .NET developer needs is programming skills. Because of this,  they should be verified carefully and in an accurate way at the very beginning of IT recruitment process.
  • Technical recruiters should only spend their time getting to know promising candidates who passed the programming test.
  • Your technical interviewers have a limited amount of time they can spend on interviewing so you should make sure that they only interview a few candidates with the right skills.
  • Candidates that take coding test show their willingness to participate in your recruitment process which has a positive impact on candidate’s engagement. That’s why for an on-site interview no-shows rarely happen.

Which .NET online programming test should you choose?

In order to screen your candidate’s .NET developer skills accurately, the coding test you give them has to give you a full picture of their abilities. They have to be formulated in such a way so that they assess programming skills and ability to solve real-life coding challenges and not rely on theoretical knowledge. A lot of experienced programmers can be put off by coding tests if the tests only consist of multiple choice questions. The candidates get frustrated because they can’t show their experience and programming skills in action.

That’s why you should choose .NET coding tests carefully. Below you will find my top 5 features you should be looking for:

  1. .NET programming tests should verify not only .NET developer skills in general but also frameworks and libraries. A .NET developer who is familiar with these resources brings a lot of value for the employer and generally works much more much more efficiently. 
  2. .NET coding tests should consist of programming tasks similar to and at the same level of difficulty as the responsibilities the candidates will have if they get the job. Tests shouldn’t be based on algorithmic tasks as you cannot verify whether a candidate can solve a real-life coding challenge.
  3. It’s worth considering preparing .NET programming tasks based on the company’s code. This is the best way to imitate the challenges the candidate will have once they get the job.
  4. Coding tests can also include programming task with code review challenges to test .NET developer skills. It gives you information about the experience of the candidate, their approach to code quality, and how efficiently they perform debugging and find traps. Such an assessment should be obligatory when recruiting senior .NET developer.
  5. There is no point in forbidding the programmer from using external sources. The best way to tis to create them such an environment like they have at work on a daily basis, so open book exam is much more appropriate. Moreover, the candidate should be able to use their preferred IDE to feel comfortable when solving a programming challenge.

4. Devskiller ready-to-use online .NET developer coding assessment tests

At Devskiller we provide companies with an infrastructure which lets them create their own programming tests, where they can use their own code base, whole IT projects using frameworks and libraries, to test programmers online. However, we also have some ready-to-use .NET coding tests which you can use in your recruitment campaign.

Contains following tasks:

1) Choice questions - assessing knowledge of .NET, C#

2) Programming task [level: Medium] - .Net | .Net Core | Movie Repository - Implement missing repository methods for movies asp.net app. Task requires knowledge of sqlserver query language and usage of direct connection to database without ORM.

Share the article...Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

View assessment details

Contains following tasks:

1) Choice questions - assessing knowledge of .NET, C#

2) Programming task [level: Hard] - .Net | .Net Core | Back end Alone - Implement .NET Core MVC Model Binder and a simple graph algorithm to support request with a fancy format. This task consists of two objectives. First is to implement model binder that will properly parse incoming request into objective structure. Second objective is to sort this structure (graph) before further processing.

Share the article...Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

View assessment details

Contains following tasks:

1) Choice questions - assessing knowledge of .NET, C#

2) Programming task [level: Easy] - [Single File] .NET | C# | Bank interface for Internet Banking System - Implement a CreateTransfer method which sould check and save the proper data, and a SearchTransfer method which should filter and return the proper information.

Share the article...Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

View assessment details

Contains following tasks:

1) Choice questions - assessing knowledge of .NET, C#

2) Programming task [level: Hard] - .NET | C# | Threads | Bank gateway for booking transactions in Central Accounting System - Implement the IBookingGateway interface (create own class in a separate file in theBookingGatewayService project and implement it) and finish implementation of the BookingGatewayFactory class, which should create objects of IBookingGateway.

Share the article...Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

View assessment details

Contains following tasks:

1) Choice questions - assessing knowledge of .NET, C#

2) Programming task [level: Medium] - .Net | .Net Core | Anonymizer - Implement a couple of anonymization methods, probably using regular expressions.

Share the article...Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

View assessment details

Contains following tasks:

1) Choice questions - assessing knowledge of .NET, C#, EntityFramework, ASP.NET, ASP.NET MVC, MVC

2) Programming task [level: Easy] - .Net | ASP.Net | Bookstore Inventory - Implement a couple of methods to manage bookstore inventory.

Share the article...Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

View assessment details

Contains the following tasks:

1) Choice questions - assessing knowledge of Entity Framework and ASP.NET

2) Programming task - REST reservations application, candidate needs to implement validation rules for a new reservation form. Requires knowledge about ASP.NET

Share the article...Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

View assessment details

Contains the following tasks:

1) Choice questions - assessing knowledge of Entity Framework and ASP.NET

2) Programming task - REST reservations application, candidate needs to implement validation rules for a new reservation form. Requires knowledge about ASP.NET

Share the article...Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

View assessment details

Contains following tasks:

1) Choice questions - assessing knowledge of .NET, C#, ASP.NET, ASP.NET MVC, MVC

2) Programming task [level: Medium] - .Net | SQLite | Movie Repository - Implement missing repository methods for movies ASP.NET app. Task requires knowledge of sqlserver query language and usage of direct connection to database without ORM.

Share the article...Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

View assessment details

Contains following tasks:

1) Choice questions - assessing knowledge of .NET, C#, ASP.NET, ASP.NET MVC, MVC

2) Programming task [level: Easy] - .Net | ASP.Net MVC | Comments Challenge - Implement an Index action for posts controller so that posts can be rendered appropriately into the Posts/Index view.

Share the article...Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin

View assessment details

Editor’s note: This post was originally published March 31, 2016. It has been extensively updated to represent the latest technical information and best practices.

720 x 90 – download Hack the process
Share the article...Share on Facebook
Facebook
0Tweet about this on Twitter
Twitter
Share on LinkedIn
Linkedin