What is PostBack in the point network

Questions every good .NET developer should answer?

The basic questions are:

I think it is usually helpful to ask your applicants to do a simple coding exercise, such as:

  • Write your own linked list class without using the built-in classes.
  • Write your own Hashtable class without using the built-in classes.
  • Write a class that represents a binary tree. Write a method that iterates through all the nodes in the tree.
  • Write a method to perform a binary search on an array without using built-in methods.
  • Draw a database schema for a blog. Each user only has one blog, each blog has many categories, each category has many posts, and each post can belong to more than one category. Ask your applicant to write inquiries to extract certain information.

Then look for specific technical know-how:

  • (Event handler) Create a class with a custom event handler. Create another class that is linked to the custom event handler.
  • (XML) Load an XML document and select all nodes with the properties x, y and z.
  • (Functional programming) Create a function that accepts another function as a parameter. A map or fold function is very suitable for this.
  • (Reflection) Write a function that determines whether a class has a certain attribute.
  • (Regex) Write a regular expression that removes all tags from an HTML block.

None of these questions are particularly difficult for an experienced C # programmer to answer, and they should give you a good idea of ​​your applicants' particular strengths. You may also want to work with some questions / code samples that use specific design patterns.

[Edit for clarity] :

Seems a lot of people don't understand why I would be asking these kinds of questions. Let me address some of the people's comments (I don't quote directly, but paraphrase instead):


Q: When was the last time someone used volatiles or weak references?

A: When I do technical interviews, I look to see if a person is doing the high levels and understands. ) Low-level functions of .NET. Ephemeral and weak references are two low-level features provided by .NET. Even if these functions are not used often in practice, the answers to these questions are extremely instructive:

  • A good understanding of volatile elements shows that a person understands how compiler optimizations change the correctness of code, how threads keep local copies of shared state that may be out of sync at a given point in time, and the complexities of multithreaded Code is minimally aware.

  • A good understanding of weak references shows that a person knows the intimate details of the garbage collector and knows when to free memory. Sure, you could ask the candidates how a garbage collector works, but asking for weak references will give you a much better and more thoughtful answer.

.NET is a fairly abstract language, but star developers almost always have a deep understanding of the CLR and the low-level details of the .NET runtime.


Q: Why would someone need to implement their own hash table or linked list?

A: I'm not implying that the Dictionary class is inferior or that people should roll their own hash table. This is a fundamental question that tests whether a person has one minimal Has an understanding of data structures. That's what these questions point to: a minimum of understanding.

You will learn about these hash tables and linked lists on the first day of Data Structures 101. If someone can't write a hash table or linked list from scratch, they have one size Gap in their technical knowledge.


Q: Why are these questions so roughly oriented?

A: Because the title of this thread is "Questions Every Good .NET Developer Should Know". Every .NET developer starts their career writing crud apps, and 90% of all application developers are involved in line-of-business applications.

I think questions testing a person's knowledge of line-of-business apps are appropriate in most cases, unless you are looking for developers in very specific niches like compiler development, game engine development, theorem checking, image processing etc