I came into C# by way of C/C++, so I had a slight advantage. That being said, I found the .NET base class library very easy to pick up because of IntelliSense in Visual Studio. You don't really need to know the entire BCL to program in C#, though. I've used it for years and I still don't know every single piece. (That's another reason why I said to avoid the MS certification materials like the plague; they just teach the BCL and not really the language fundamentals.)
I think C# teaches the fundamentals of programming pretty readily -- variables, types, functions, loops, objects, etc. Because dynamic languages are vastly more expressive, those concepts aren't as readily obvious. C# also masks some of the more difficult concepts from C-family languages, like pointers and memory allocation, meaning you can get your app running without saying "what the hell is a segmentation fault?" :)
Because the OP said he/she was working with a .NET/Java programmer, and asking about .NET, I naturally inferred that the project was written in .NET. I think it's even MORE difficult to learn a language (say Python) and then try to translate the abstract concepts into .NET-speak. Experienced programmers can hop between languages, but I recall trying to do that with GW-BASIC and C when I knew GW-BASIC and was learning C, and it was a royal pain.
(That may have something to do with the level of functionality available in GW-BASIC vs. C, but I digress... :)
Generally speaking, though, I would suggest Python as a good language to learn when starting out. I wouldn't, on the other hand, suggest Ruby as a language for people who haven't programmed before. When you consider the basic language features you need to learn in order to grasp the language, C# is much simpler than Ruby.
Before you flame me to a crisp, I'm not saying C# or Python are BETTER than Ruby. Ruby is an amazing tool once you grasp its complexities (and it's my new favorite language). I've got to think it'd be difficult for a newcomer to pick up things like blocks, dynamic dispatch, mutable types, hash parameters without braces, etc.