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).
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.