Are these questions every .NET developer should be able to answer?

Eric Wise has a post where he lists questions that he thinks every .NET developer should be able to answer (or more accurately, that every senior level .NET developer should be able to answer).  This got me to thinking because I'm not sure I agree.

But let me step back and explain why.  One obvious reason would be that I don't think I could answer all of them off the top of my head, which of course probably simply indicates that I am not a senior level .NET developer.  And yet, there is more to it than that.

Let's just take question #6: "If you were going to read a text file from the disk, how would you go about it?"

In the last five years, I think I've needed to do this on the projects that I've worked on 2-3 times (I mean as in had that many tasks that required it), maybe a few more.  They all worked in the end.  Yet my honest answer to this question would be: "I would go to Google and look it up."

As I've mentioned elsewhere, a major reason for this is that I don't memorize syntax.  I'm not an Ayende-type person (whom I'm nearly convinced could memorize the white pages of a moderately sized metropolitan city over a weekend if he thought it was necessary for a job) who has a vast knowledge and recollection of syntax, and yet as I've previously noted, I have a very accurate memory of all sorts of things.  Some of it useful (I can remember important conversations from my life almost verbatim), much of it not (I remember that in 1977, for the Pittsburgh Pirates, John Candelaria had a 20-game season, and that Dave Parker and Rennie Stennent finished 1-2 in the NL batting title race).

Part of this is related to the fact that I have to jump around into many different areas.  In the last 10 days or so, I've written Javascript, ColdFusion, VB.NET, T-SQL, CSS, HTML, C#, and something else I'm forgetting (but luckily no Perl).  Unless it is something that I am working on repetitively over a period of time, it doesn't stick.

Moreover, I don't want to know certain things.

Let's take question #8: "Describe as many objects as you can that are used with ADO .NET"

I guess it depends on how you interpret it, but that's what NHibernate, WORM, or Linq to SQL are for.  If I'm working with SQL Server, I'm guessing there is a SQLConnection in there somewhere (which implements what, IDBConnection or something?  I don't know), but otherwise, I don't care what goes on in the bowels of ADO.NET.  If I have to fix a problem, then yes, I guess I am going to have to know the dirty inner details.  But that's what Google is for.

Eric does make a good point to deflect the obvious other criticism someone might have: the code memorizer who can recite verbatim the syntax and details of the inner workings of .NET because he needed to pass a certification test, but doesn't otherwise really know what any of it signifies.  His questions are open-ended enough that mere recitation wouldn't suffice.

Regardless, it is a good quick read, you should take a look.

posted on Tuesday, January 01, 2008 2:48 AM Print
# re: Are these questions every .NET developer should be able to answer?
Eric Wise
1/1/2008 9:26 AM
Actually the reason why I stated I don't expect most people to get all of them right is to adjust for their experience.

If someone said, well I don't work with disk files (Though it's more common than you think, extracting reports, XML data for print jobs, working with uploaded files to web servers, etc), I use databases exclusively, but I would Google it. I would respond "What sort of phrases would you Google". Basically show me that you can think logically enough to find the answer.

Same with the ADO question. "Well, I use Linq to SQL/nhibernate so I don't get much into ADO." I reply, "Ok, tell me about how you configure nhibernate to access data in SQL". ADO is the .NET standard for data access though, so I figure it's the best starting block available.

I don't know is always an acceptable answer from my interviewees, but it had best be coupled with an alternative or a description of how you would go about finding out. =)
# re: Are these questions every .NET developer should be able to answer?
Troy Tuttle
1/2/2008 10:32 AM
I wouldn't ask any of the questions except for maybe 1, 2, and 7. The others are just testing if the person could study and pass a .NET cert exam. Eric mentions taking an open ended approach, which is my preference. But the problem is most of these questions are syntax/code related. There is much more to being a profession developer than syntax and code.

Check if the candidate can think on his/her feet. Ask the candidate his/her opinion of TDD, DDD, and ORMs. Ask the developer to read some simple code and refactor it--either on the computer or whiteboard.
# re: Are these questions every .NET developer should be able to answer?
ActiveEngine Sensei
1/6/2008 6:22 PM
I generally ask candidates to solve a problem that I am currently working on so I can compare their analytical and technical to other team members. This generally falls into design issues and not algorithmic puzzles. Can they communicate the resolution back, explain their choices, and ask intelligent questions? I like to get a feel for this, as anyone can get the puzzle books and improve their skills.

Post Comment

Title *
Name *
Comment *  
Please add 3 and 8 and type the answer here: