How to screen .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. 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 .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 on mainly Windows-based operating systems. 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 Microsoft’s 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. Quite often frameworks are 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.
  4. .NET is constantly evolving at a rapid pace. Some parts of it have just become open-source, which is nothing less than a milestone. Moreover, soon it will be possible to host fully functional .NET web applications on Linux OS. Both of those could have a huge impact on .NET’s popularity and the growth of open-source frameworks, just like they had with Java.

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.5.
Languages C#, Visual Basic .NET, F#, C++ .NET
Web frameworks ASP.NET MVC 1-6, ASP.NET Web Api, ASP.NET Web Forms (old school)
Desktop frameworks WPF, Windows Forms (old school)
Communication frameworks* WCF, ASP.NET Web Api, Web Services (old school)
IoC Containers Castle Windsor Container, Unity, Structure Map, Ninject, AutoFac
ORM Entity Framework, nHibernate, Linq2SQL, ADO.NET
C# unit testing frameworks nUnit, SpecFlow, MSTest, xUnit
C# build tools TFS, Team City, Jenkins, Cruise Control .NET

*used to exchange data and create Service Oriented Applications.

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 MVC 1 and ASP.NET MVC 2 are similar
  • ASP.NET MVC 3 is different that ASP.NET MVC 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 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 that 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
  • nHibernate is similar to Entity Framework
  • Entity Framework is more sophisticated than Linq2SQL
  • Entity Framework, nHibernate, and Linq2SQL 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 to 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 have to 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 groups:

A. Microsoft Certified Technology Specialist (MCTS)

MCTS is used to be an entry point for Microsoft certifications. These certify that the holder has skills in a particular Microsoft technology, like WPF, but also SQL Server, SharePoint, SQL Server, Windows Server, etc. Here are a couple of examples:

  • MCTS: Microsoft .NET Framework 4, Windows Applications (511) – covers WPF, XAML and Windows Forms (C# 4.0 and .NET 4.0),
  • MCTS: Microsoft .NET Framework 4, Web Applications (515) – covers ASP.NET MVC, WCF, IIS (C# 4.0 and .NET 4.0),
  • MCTS: Microsoft .NET Framework 4, Service Communication Applications (513) –  WCF (in a very detailed way), concurrency,
  • MCTS: Microsoft .NET Framework 4, Data Access (516) –  Entity Framework, LINQ to SQL, stored procedures and SQL (briefly).

There used to be many MCTS certificates which lead to some mess, so Microsoft redesigned their certification schemes and now promotes the MCSD’s, described below. That means that MCTS’s will expire soon and are no longer issued.

B. Microsoft Certified Solutions Developer (MCSD)

MCSD certifies that the holder possesses full-stack skills that can be used to create applications which are built with many frameworks and technologies. They are usually required to pass several exams in certain technologies. Some of the examples are:

  • MCSD: Web Applications (covers HTML 5, JavaScript, CSS3, ASP.NET MVC 4, ASP.NET WebApi 2, WCF, Azure),
  • MSCD: SharePoint Applications (covers HTML 5, JavaScript, CSS3, ASP.NET MVC 4, SharePoint Server 2013).

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 it’s 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 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

View assessment details

Contains the following tasks:

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

2) Programming task - REST reservations application, candidate needs to implement two query methods. Requires knowledge about ASP.NET, AutoMapper and Linq

View assessment details

Contains the following tasks:

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

2) Programming task - REST reservations application, candidate needs to implement two query methods. Requires knowledge about ASP.NET, AutoMapper and Linq

3) Code review task - evaluates candidate's familiarity of design patterns and coding practices, candidate needs to review a C# class with a collection wrapper code

View assessment details

JUNIOR

SAMPLE TEST | C#

Contains the following tasks:

1) Choice questions - assessing knowledge of C# basics

2) Programming task - simple calculator application based on VisualStudio solution, candidate needs to implement four methods for basic arithmetic operations. Requires knowledge about C#

View assessment details

Contains the following tasks:

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

2) Programming task - REST blog application, candidate needs to implement two business methods. Requires knowledge about ASP.NET, AutoMapper and Linq

3) Code review task - evaluates candidate's familiarity of design patterns and coding practices, candidate needs to review a C# class with a ceasar algorithm

View assessment details

Contains the following tasks:

1) Choice questions - assessing knowledge of Exception handling, Garbage Collection, Enum and more!

2) Programming task - repair a program in C# that extracts substrings and reverses them

View assessment details

Contains the following tasks:

1) Multiple Choice - Answer 3 questions on C# Basics

2) Multiple Choice - Answer 3 questions on C# Basics

3) Programming task - Use C# to perform a string reversal

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 ...
46
Share the article ...
46