I'm surprised no one has mentioned basic knowledge of XAML yet. Knowing what XAML is, and the ability to do some basic editing using XAML rather than a graphical design tool. Mid-level developers should be able to knock up form / graphic prototypes using a tool like XAMLPad.
Personally I would sit them down in front of a standard developer build machine and ask them to complete some task. No questions, just see what their code is like after a couple of hours (or more if the task is longer).
I have had a zero failure rate on making a hiring descision based on the results of an actual real life programming test.
The task doesn't have to be too difficult. I've used a simple message of the day application in the past with the messages being held in a database or XML file and a simple user interface. Ensure you ask them to structure it well (as the task is sufficiently small that it could all be done in one class if they felt inclinded).
Of the questions above I'd say you cannot get a good idea of whether they are really any good or not. A potential candicate could actually just read these and create canned answers that sound great. All this shows is that the candidate can talk-the-talk, but what matters in the job itself is if they can walk-the-walk.
I'd put binding and converters at entry level, since that is how you spend a lot of time in WPF.
Pretty good list in my opinion.
However I wouldn't ask tricky questions on interview. Interview gives enough stress itself, trick question can confuse even highly skilled person.
Personally, I'd put 'How can worker threads update the UI' right under entry-level. Mid-level, if you really need to. If an entry-level programmer can understand the difference between the logical tree and the visual tree, they should understand how to update the UI from a background thread.
At my organization, we do a lot of WPF development without Blend. I don't particularly like Blend, so I'm a bit biased, but Blend skills should be a nice-to-have, I think.
A WPF developer should have a firm grasp of separating the XAML from the code-behind, and be able to discuss at length where that line is to be drawn.
Being able to set up a model in the language of her choice, and then using XAML to display views on that model through data binding, data templates, control templates, styles, triggers, value converters and UserControls is a fairly basic task for the mid-level programmer. (Though a small amount of leeway should be granted if asking someone to create something like a control template "from heart.")
Really, there is a lot in WPF, and if it weren't for the MSDN forums and in-depth books on the subject, it'd be quite the task to "just pick it up." For that reason, I would rate perseverance and the ability to learn from others as a top requirement for any level.
For an entry-level WPF programmer, I wouldn't expect any knowledge of WPF per se, but I would demand knowledge of object-oriented principles, separation of UI from business logic, and comfort with a similar event model. Experience laying out UI elements in a style similar to WPF (with DockPanel containers, etc.) is a plus.
Edit: Also, what Colin Mackay said.
What about GUI programming/graphics experience in general and cs knowledge? If it's for a full time jobs, it does not matter IMHO if the guy has to spend the first few months some time with learning WPF, if he (or she) has a strong background.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With