Tuesday, November 27, 2007
« Barcelona User Group & Live Meeting | Main | CSLA .NET 3.5 status update (Dec 5) »

Every now and again I blog about the fact that Magenic needs good developers (.NET, SQL, Sharepoint, BizTalk, CSLA .NET) in San Francisco, Minneapolis, Chicago, Atlanta and Boston. This continues to be true, and if you are at all interested, read on!

My colleague, Brant Estes, put together a little web site to try and seduce you into applying for work at Magenic. But more fun, he put together a broad-reaching tech quiz to illustrate the kind of knowledge we expect people to have before we hire them.

I'll be brutally honest, and say that I scored 84%, which entitles me to keep working at Magenic (whew!). I figure that's not too bad, given that the quiz covers areas (like HTML) that I try to avoid like the plague (and I didn't cheat and use Google while taking the test :) ). Brant tells me that passing is 70%.

Whether you are interested in working at Magenic or not, the quiz is a fun challenge, so feel free to take a look (just give yourself around 10-15 minutes to go through it).

Tuesday, November 27, 2007 3:10:21 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [27]  | 

Tuesday, November 27, 2007 4:48:57 PM (Central Standard Time, UTC-06:00)
I've got 84% and I stay away from HTML as well. What a coincidence :).
Tuesday, November 27, 2007 5:10:02 PM (Central Standard Time, UTC-06:00)
I might be able to work there, too. (Barely!)

I am curious, do we really look at these kinds of tests as good filters for valuable people to add to our teams? Honestly, I don't know which of those choices were hashing algorithms. Nevertheless, I am confident I can look it up. More importantly I have a demonstrable record of shipping high quality software I am proud of.
Tuesday, November 27, 2007 5:14:55 PM (Central Standard Time, UTC-06:00)
Hm, I got an 82 though I'm not 100% some of the questions due to ambiguities. I know you didn't write it, but since there's no comments allowed on the test, here you go:

5) What is the C# equivalent to the Visual Basic .NET “module” keyword?
Technically there is no C#-specific equivalent because a module emits a sealed class with some VB attribute on it and makes all methods static without having to specify it on each method. A static class comes close but not all the way, because there's no attribute automatically put on it and you have to specify static on every method

So how do you answer: the very strict technical answer (there is no C# equivalent) or the likely semantically correct answer (C# static class)?

27) A structure in .NET can inherit from which of the following?
Again, the technically correct answer is None of the Above because nothing can inherit from an interface, only implement it. But do I answer technically correct or semantically correct? In my case I answered semantically correct and that is the answer expected.

--

There may be more, but those were the two that really stuck out at me.
Tuesday, November 27, 2007 5:41:43 PM (Central Standard Time, UTC-06:00)
>I am curious, do we really look at these kinds of
>tests as good filters for valuable people to add to our teams?

No, certainly Magenic doesn't. Magenic's interview process is rather extensive, starting with a recruiter who looks at a candidate's overall experience, evaluates their personality, passion, physical location, pay history and so forth.

If a person looks good at that level, they go through a series of technical interviews (1-3). Some aspects of those interviews is like the quiz, but interviewers are also looking for how people handle challenges, what they do if they don't know the answer off the top of their head, broader architectural knowledge and so forth.

If a person gets past that stage, there's a manager interview to again evaluate personality, compatibility with the company and Magenic's culture, passion, drive and so forth.

So yes, we look at knowledge of technical items like the quiz, because that is one indicator that someone is really deep into this stuff and has a love for it (if you didn't love it, you'd never know the difference between a hash and encryption algorithm). But there are _many_ other aspects that are considered as well.
Tuesday, November 27, 2007 8:58:53 PM (Central Standard Time, UTC-06:00)
Should we relocate to one of the Magenic office locations? Do they allow working from home out side those locations?
Lon Robert
Tuesday, November 27, 2007 10:16:30 PM (Central Standard Time, UTC-06:00)
Guess what. I got 70 (just passed)
I had applied to Magenic in past. But I cannot join due to my visa status (H1B).

Please pass this msg to Brant.
Thanks.
Kalpesh
Wednesday, November 28, 2007 9:48:59 AM (Central Standard Time, UTC-06:00)
I scored 65 without cheating which suprised me, I usually do better on these type of things...probably would've got close to 100 if I had cheated or Googled on the things I was only 80% sure on; I'm curious about some of those too...particularly the one about what's wrong with the 'SqlConnection' one (in the using statement). Nothing was wrong since when a SqlConnection is disposed it closes the connection if it's open (if you've ever looked at in Reflector) which I think the desired answer might of been that the connection wasn't closed.

Some others too; but some I'd be honest and say I didn't know for sure (that's why we have Google). As an old collegue of mine once said 'You're only as smart as you're web surfing abilities'. And I think the sign of a talented and mature programmer is his ability to say what he isn't sure about or doesn't know.

Well Rocky I'd love to come work for you but I don't know if I could sell my wife on moving to Minnesota if it wasn't an office job or doing all that traveling; believe me I'd love it though...CSLA full time - you bet! I think you'd find my passion almost scary (in fact you and I have bantered over one or two things in the past), but passionate people are the types that drive this industry - so I see no harm in it and pushes me all the harder to be better than the rest. I get the 'tell us how you really feel' remark quite often.

Anyway, good luck and if you want to rellocate someone from VA and give them an office job I could probably sell my wife on that so give me a call - through a mutal friend I already quasi-know one of your employees. Best of luck to you in your search.
Brian Johnston
Wednesday, November 28, 2007 10:07:51 AM (Central Standard Time, UTC-06:00)
...and with further thought, "implement" versus "inherit" is nitpicking and more how a specific language implements the two concepts (class inheritance vs interface inheritance). In the grand scheme of things (not talking about C# or Java or VB, etc), OO doesn't necessarily define Interface as modern languages use it so it makes no distinction between the two.

So nevermind on that one :)
Wednesday, November 28, 2007 10:29:54 AM (Central Standard Time, UTC-06:00)
Scored around 65% without cheating.
Need to brush up my multi-threading topic. :)
Thanks for posting.
Wednesday, November 28, 2007 11:37:02 AM (Central Standard Time, UTC-06:00)
Too many C# questions! Oh well, us VB.NET guys cannot work for Rocky's company.
Wednesday, November 28, 2007 11:51:45 AM (Central Standard Time, UTC-06:00)
I don't think it quite means you couldn't work there. If you scored 65% and the test wasn't exactly geared toward your specialty then that's probably not bad. I'm sure the real interview process would take that into account.

I only scored 62%. I don't know enough C# and my web based skills are lacking. Both very prevalent things. It would be good for me to work on them. That doesn't mean I'm not a good developer or smart enough to learn that stuff.

It doesn't mean that for you either.
Tory Netherton
Wednesday, November 28, 2007 12:51:27 PM (Central Standard Time, UTC-06:00)
You should know that Brant is a C#-slanted developer and he's done a lot of web stuff lately, so that's probably biasing the questions.

Still, these are the _kinds_ of questions we ask in the interview process. Interactively it is easier to realize that someone is more Windows-focused and arrange for an interviewer who can dive deeper in that area.

But it is also true that, as consultants, we must be generalists.

So there's no doubt that if you are more of a Windows or VB or Sharepoint person, this quiz may not be quite as directly applicable. I look at the quiz as a way to communicate the depth of knowledge we are looking for.

Yes, you can use Google to find answers - I do it all the time. But our clients expect that Magenic can provide consultants who have many (most) answers in their heads. Clients get understandably testy if they pay a lot of money per hour for someone to use Google just like the client could have done by themselves (in their minds at least) :)
Wednesday, November 28, 2007 12:56:19 PM (Central Standard Time, UTC-06:00)
Regarding the C#/VB comment. While Brant's C# bias is showing in the quiz, there's also the reality that Magenic's needs are driven by our clients' requests. And we get requests for C# over VB at better than 2:1 these days.

This does drive hiring, in that a C# person who speaks some VB can work anywhere. But a VB person who won't speak C# is pretty hard to place on projects. Really you want to be bi-lingual (or more).

I've blogged before about the fact that anyone who only knows C# or only knows VB is foolish, and is crippling their career and their own personal growth. Of course these days VB and C# are 99% the same language, so _really_ you need to go learn something else, like Ruby, Python, F# or something different. Otherwise your thought processes get too restricted and you limit your own ability to think.
Wednesday, November 28, 2007 4:08:39 PM (Central Standard Time, UTC-06:00)
83% here - pretty good test. I have to agree with some of the commenters - some of the questions were a bit ambiguous.
Wednesday, November 28, 2007 7:03:40 PM (Central Standard Time, UTC-06:00)
The smartest programmers don't have time to take 40 questions :(
Wednesday, November 28, 2007 7:18:26 PM (Central Standard Time, UTC-06:00)
OK so as the General Manager of the Chicago office I will chime in a bit. First off I am also a MS MVP for VB. I have no problems hiring a VB developer, but the person first and foremost needs to know .NET Framework. Sometimes a client will push for C# I have far more confidence in someone who knows the .NET Framework, but hasnt used C# before versus a C# developer who doesnt know .NET very well. I know that is common sense, but some managers you work for get hung up on language. It is our job to educate, but also go ahead and learn C# it may be inferior and a less maintainable version of VB yet still important to know :).

For people wondering about Magenic we have offices in Boston, Atlanta, Chicago, Minneapolis and San Francisco. For the younger resources out there we also have a delivery center in Minneapolis. As for where you work it varies project by project so can never guarantee telecommuting. We only hire Full Time Employees. Travel is not a requirement, but you may get asked.
Wednesday, November 28, 2007 9:43:20 PM (Central Standard Time, UTC-06:00)
But Keith, the real question is... what did you score on the test ::ducks::

The differences between C# and VB are starting to diverge again - certainly in the last couple years. C# does not have the same XML literalization that VB does. VB has no yield return equivalent. I would argue that it isn't 99% anymore, more like 95%, the same language.

A language like F#, which the more I think about in the context of multi-processor, gridded systems - the more the immutability argument makes sense - is the real difference. If you look at the big trend... processors not getting faster, paralellism becoming more important... VB vs C# will vastly fade away, as will dynamic vs static... and the real battleground in languages will be OOP versus functional. And, if I were betting money, functional, with object oriented features, will win.
Thursday, November 29, 2007 2:00:16 PM (Central Standard Time, UTC-06:00)
scored 65...can't disclose my name :(
Fake Name
Saturday, December 01, 2007 8:50:09 PM (Central Standard Time, UTC-06:00)
88% (No cheating) Not bad for a VB developer (when given the choice).

I do think there was obviously a C# bias however I more strongly feel that .NET developers should understand their platform regardless of language. I think the approachability of either language leaves a lot of room for any person in any language to ignore some of the nuts and bolts of .NET. This is at the same time a great accomplishment for the framework authors but a dubious benefit.

In a consulting firm you want people with a depth and quality of knowlege and aptitude which is applicable in dynamic situations.
My development experience even now includes in no particular order HTML, XML, XSLT, RegEx, Java, JavaScript, SQL, VB.NET, VB6, VBA, C#, CIL (aka MSIL) et al.

Anthony D. Green, MCPD
Wednesday, December 05, 2007 11:02:43 AM (Central Standard Time, UTC-06:00)
I've scored 96%. I'm sixteen and working on my PhD. Will you allow me to complete my degree or will I be over-qualified?
roi-du-soleil
Friday, December 07, 2007 12:51:32 PM (Central Standard Time, UTC-06:00)
Rocky,

"But our clients expect that Magenic can provide consultants who have many (most) answers in their heads. Clients get understandably testy if they pay a lot of money per hour for someone to use Google just like the client could have done by themselves (in their minds at least) :)"

I have to disagree.

I think our clients EXPECT us to use whatever services we can find to come up with our solutions. I agree that having head-knowledge is a good thing, but frankly there's simply no way one can function in this time without having a slew of sources and assistants (think Intellisense) available. I think what our clients expect is that we can come up with solid, resilient solutions to their problems quickly. What we do to accomplish that goal is (from what I've experienced and seen) doesn't really matter to them.
Friday, December 07, 2007 12:57:23 PM (Central Standard Time, UTC-06:00)
While I totally agree that a person can't know even a decent fraction of the detail around most of the technologies - there are just too many - there's also no doubt that our clients expect to sit across the table and have a conversation where our consultants know more than they do. And hopefully more than their technical experts do.

So you are right, they pay us because we are able to deliver solutions by leveraging a wide array of resources. But they _hire_ us because we know, off the tops of our heads, more about all these technologies than the average technical person.
Friday, December 07, 2007 2:42:20 PM (Central Standard Time, UTC-06:00)
69%. Not bad for a guy that has spent the last year doing strategy and integration work and hasn't written much serious code for an even longer period.

Now that I think about it, I'm feeling pretty good about that number.
Friday, December 07, 2007 10:54:05 PM (Central Standard Time, UTC-06:00)
So are you going to post the answers and save us some time considering this is mostly for fun and testing your own skills?
Bob Smith
Saturday, December 08, 2007 3:35:23 PM (Central Standard Time, UTC-06:00)
The IE & Netscape question was definitely the most irrelevant. You would only choose correctly for the blink or marquee tags if you've tried to use them in a recent browser. And if that is the case, you probably are NOT a good candidate for hire ;)

The Singleton implementation was largely ambiguous. Is the lock keyword required? No, there are other ways of handling locks (since the lock is just syntactic sugar anyway). Is the private constructor required? Depends on what you mean - the static class modifier in c# 2.0 prevents you from having to explicitly declare a private constructor. The only option that seemed necessary was the static method or property, but I don't know if that is the answer the test is looking for.
Monday, December 10, 2007 3:54:47 PM (Central Standard Time, UTC-06:00)
You guys considered brainbenching instead?

The test aren't perfect, but they're over all pretty good indicators of technical competence. The C# and .NET tests are particularly good. It's a fairly decent pre-interview filter. I have found that the scores for our developers generally do reflect relative technical strengths.

It does cost a bit though - about fifty bucks per test if the interviewee hasn't already taken the test previously.
Phil Parker
Saturday, December 22, 2007 6:36:43 AM (Central Standard Time, UTC-06:00)
i'm officially on vacation and i'm *finally* getting around to reading blogs.... and yeah i took the test (without cheating) and only got 76%.

compared to this, the interviews i give are downright evil. frankly, i don't care how much (or little) c# a developer knows; i want to know whether they can think a problem through, and provide some insight (something i learned from interviewing at microsoft). i usually start off by framing a series of questions based on a challenge at work, such as how a candidate would develop a mobile website. this leads into questions about the difference between handlers and modules, the asp.net page life cycle, and the difference between asp.net and other frameworks (such as struts or RoR). i then start drilling on objects and their methods, the purpose of equals, and why gethashcode should be overridden. that leads to hashtables, and asymptotic performance of hashtables to other data structures such as linked lists and trees. i'll then ask about the different types of patterns, and when they should be used.

you'd be amazed how many developers don't know this stuff. to me, not knowing doesn't lead to disqualification; it's when a candidate tries to shift the topic, or prevaricate. then they get my thumbs down.

ultimately, i'm impressed when someone really knows their fundamentals, and can give me a run for my money. if someone's read knuth's art of computer programming, knows some coding, and isn't a jerk, they're hired. (if you're this person, drop me a resume!)
Comments are closed.