Traditionally, we have created exams with development language support for Visual Basic, C# and C++. A recent revelation if you will, of the 70-502 WPF exam, showed that not all technologies support all 3 languages. There is no designer support for WPF in Visual Studio 2008 when it comes to C++ projects. Apparently there won't be any included in the near future either as the C++ product group have stated in public forums that they are "refining the product direction", and will increas their support for native development.
But what impact does this have on certification exams? Well, simply put, it means we don't create a version of 70-502 for C++ developers.
So, naturally this has me thinking about our language support in a whole other frame of mind. Are we doing justice to those who want to be certified by only covering the 3 major languages in .NET? In other words, how many would like to see J# added? Do you still us it at all?
What about Iron Python? Are there enough developers using it and want to get certified as an MCTS or MCPD using that language?
My initial reaction is that there are not enough people writing apps in those languages to warrant the language conversion, but, I'm not out there writing code anymore so I have to ask that of the community.
We also need to keep our eyes on languages such as F#.
Another reason that I wander down this path is because we are seeing more and more groups within Microsoft expressing an interest in certifications for areas not otherwise covered. For example, we are creating a certification for Windows Embedded CE developers. The product group and the subject matter experts we had in Redmond for the design and item writing sessions were excited about this. To be honest, it was a market I didn't think would value certifications. I was wrong.
I am also in discussions with some other groups in Microsoft who want to start using certifications as well. I'm not at liberty to discuss them in any detail yet as we are in early discussions but suffice it to say, these are areas that could benefit from certification, but have not seen a value in it until it now.
Does this mean that the tide is turning in the industry and once again, we are seeing an interest in certifications with more value being placed on them? I can assure you that we take certification very seriously at Microsoft and are looking at ways to increase the value and to constantly make the exams test real-world skills rather than making it possible to read a book and pass the exam.
Are we getting it right? I like to think so. Is there room for improvement? I like to think so. In fact, I know there is.
We have a public beta on a new performance testing engine for the IT Pro audience that requires the candidate to complete tasks in a virtual environment. Not a simulation like we have been using where you are restricted to certain paths but an actual real, fully functional, operating system as if you had it on your own computer. I hope the tests prove successful and that this is a technology I can look into for future developer exams. Imagine having to actually write code or debug in real time for an exam.
"I have a dream"
PingBack from http://msdnrss.thecoderblogs.com/2007/11/30/net-languages-and-certifications/
Traditionally, we have created exams with development language support for Visual Basic, C# and C++.
With all the interest generated by functional programming, I think this programming paradigm will get more and more attention, so it will be interesting to see an F# certification (and in this sense, a Python exam is also something worth having).
I'm indifferent as far as languages go. I've worked with too many different languages over the years and know that any language I use is just a tool to do a job with.
However, I positively LOVE the idea of hands on skill demonstration. This is actually an extension to certification that I'm working to implement for my employer. Our program takes someone who has completed a certification and then requires they demonstrate skills with a hands on exercise before we give them our own seal of approval. This ensures that folks are not just memorizing brain dump question lists and can actually apply what they've learned.
One of the things I would aim for is to not have a language specific cert but rather the same certs, as they apply to technologies, just offer more dev language choices when you start the exam.
Of course this has serious implications for training in courseware and books, but I just wanted to guage the market for that concept.
Obviously I want to see more people certified and is their chosen language is not available, that may be a blocker for them.
I agree with your comments too Brent about typically the language is the tool to do the job and I program in VB, C#, J# and Java myself and adapt to the requirements as needed. But, not every developer who seeks certification shares our multilingual capabilities. A lot do for certain.
I probably am wrong, but from my point of view anyone who already knows an “outrageous” language already knows or is willing to learn a mainstream language like VB or C#. Or the industry doesn’t care.
I think the exams should be more language agnostic (maybe with pseudo-code) instead of providing more options of languages. Unless it was possible to be machine translated for free.
And I say free because I know there is a budget for making these exams and also because most of the knowledge being tested is on the .NET Framework and other libraries and not on the languages themselves.
Instead of more options of languages, I would prefer to see more subject domains covered like IIS 7 management APIs, Windows 2003/2008 FSRM capabilities, Win32 APIs, et al.
Interesting perspective Alfred.
I guess the main reason we create the exams in different languages is to accomodate those who don't know multiple languages or are more comfortable with one language over the others.
The questions are intended to cover the concept rather than be language specific, although the items with code have the language translations done.
The other good point that you bring up is around subject domains, and thanks for the nudge in the head on this one. It has been staring me in the face all along but I haven't seen it until now.
The C++ product group are beginning to focus more on the native aspects again of the language which means that they may be placing less emphasis on managed code with C++ in the .NET world. Not to mention the fact that there is a new book just releasing to market from MS Press. The updated version of Richter's book, Programming Applications for Microsoft Windows 4th Ed. known as WIndows with C/C++.
I have to look deeper into the new version but I suspect it is likely Win32 API based with little to no managed code in it. Again, I will verify this with a copy of the book first.
If that is the case, it stands to reason that our C++ exams should follow suit with that mindset.
For your other domains, I'm curious as to your thoughs on where those would go. Within other related exam topics? Standalone?
Are there any exams planned for Windows Mobile 6.0? I believe there are two exams for Windows Mobile 5.0.
We started creating an exam for Windows Mobile 6.0 developer but in discussions with the Mobile group, it was decided that there weren't significant changes between 5.0 and 6.0 and they asked us to wait until the next major release.
Now, for the IT Pro world, there will be some movement around Windows Mobile 6.1. I don't have specific dates just yet, but as we get closer, you will start to hear more about that.
I don't cover the IT Pro side of things but I am usually aware of what is taking place with them as well.
Can you tell me which blog/site I should monitor to know about the IT Pro side of the certifications?
For the time being, you can watch Trika's blog, http://blogs.msdn.com/trika/, and mine. I'm having a terrible time trying to convince the two IT Pro Product Planners to start a blog. They are not very pro blog, so it is a challenge.
I know I for one would be interested in certification if IronPython were available. We have an interest in getting into .NET, but we are a Python and Java shop at the moment. IronPython support might be a way to bring in shops like ours that have existing infrastructures in Python.
This post is very old but hopefully it will be worthwhile commenting on it.
Certification lends itself very nicely to creating SMART goals regarding learning. For someone wanting to learn a technology gaining certification provides a goal that is specific, measurable, achievable, and so on. It also provides proof the learner has learned the technology.
For this reason it would be good having certifications in place for people wanting to F#, IronPython, IronRuby, Windows CE, and any other technology.
I found this post while looking for F# certification.
Thanks for your post. I think you bring up very good points.
May I ask what you are using F# for and how often you develop with it?
One of the things that I need to do is to constantly make trade-off decisions on coverage of aspects such as languages, on the exams that I plan. We removed C++ as a language choice from our .NET exams. This was simply a business decision based on return on investment.
I am exploring what other languages, if any, will be added to the choices for .NET certification exams. Obviously, for each language added there are conversion costs for any and all code. My decision must support recovering those costs at a minimum so my research needs to show there will be sufficient interest in the other languages.
Hope that makes sense and thanks again for your comments because they help me understand better what languages developers are using in the industry.
I am interested in seeing an F# Certification exam. I am a C# Developer for a major investment bank, and I have started dabbling with F# as a means to build math and analytics libraries. I don't see myself building entire applications in F#, but I do see referencing it for and processing fast, efficient, client-side mathemetical calculations.
One particular approach that I am tinkering with is using SQL Sync Services and SQL CE to pull data down locally onto the client for running pricing scenarios and statistical analyses offline, locally, instead of running these on the server in T-SQL stored procedures. I am imagining using a WPF client for data visualization, tied to a C# DataSet that I can run F# calculations against. The user can make changes to the data in the UI, run F# calcs on-the-fly, fast, right in the UI, and then refresh the Chart or local Reporting Services report or grid data right there in the UI to see the results of their updated calculations immediately (without a round-trip to the server.)
No need to run a long-running calc on the server. I can run complex, recursive calculations locally, fast on the client, and in an iterative fashion.
This is my plan for my individual application. Right now, I am just in the R&D phase. But I wouldn't mind being able to get recognized for the skills I am learning in F# . . . and I do believe F# will build a much stronger following over time . . .