Re: Interview Questions

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance



Well, yes. It is definitely an MFC question. And that's one of the common problems of
any "intelligence" test: cultural bias. Friends of mine are constantly annoyed by
interview questions on Java which presume a deep knowledge of fiddly details of Java that
anyone can figure out simply by reading the documents. Akin to the questions Microsoft
loves to put on their certification exams, such as "what is the value you would use in the
third parameter of the thus-and-so API to get thus-and-such effect?" I have no idea, but
there is a document that tells me. I suspect that I could walk into an exam and fail it,
which is a sad commentary on what it means to be "certified".

There was an ill-conceived notion in the DDK group to have a "DDK certification" exam that
would ask something like 50 or 75 questions and whoever passed it would be a "certified
device driver developer". Those of us who have done driver development wonder how any
human being can be so stupid as to think that such a trivial exam could certify someone as
a "driver developer". I can, for example, do PCI drivers, but I've never done a USB
driver, a network driver, a video driver, a printer driver, a disk driver, or a file
system driver. Yet somehow Microsoft thought they could "certify" me if I can answer a
trivial number of trivial questions correctly. This is serious misrepresentation.

I've heard Tony Mason, probably the world's greatest expert on file system drivers outside
Microsoft, give talks on file system driver issues. While there's nothing that I found
"surprising" in that every description made perfect sense, what is clear is that a file
system driver writer must know *all* of these issues, deeply and intimately, before even
starting to code. For example: how do you rewrite a block of data in an encrypted,
compressed file when the size of the data being written does not fit into the space
formerly occupied by the data? What Tony described was what I knew as the ISAM Overflow
Record, but that's because I'd known the deep details of file systems forty years ago. It
is not clear that anyone could have inferred this solution without a similar deep
knowledge. How do you handle that same compressed, encrypted file as a memory-mapped
file? TONS of stuff a file system writer must appreciate. But if I answer a trivial
number of trivial questions, I can claim to be a "certified" device driver writer, and
undertake a file system for some client (to me, this would be practicing
theft-by-deception). But I'm a better device driver writer than nearly anyone else (given
a random sample of programmers not from the WinHEC conference), and certainly far better
than the outsourced driver writers from various countries who produced code that required
I tell my clients "All you can do is throw this out and get a competent programmer to
write it". With the addition that I was not that programmer (file system drivers that
violate fundamental rules of device drivers are easily recognized as garbage; USB drivers
that do not pass power IRPs down to their PDO are garbage; and if the programmer got the
simple things wrong, how can you rely on the complex things being even close to right?)

So how do you measure how good a programmer is? As far as I can tell, we have been asking
ourselves this same question for fifty years with no good answers in sight.

[A classic 1980s certification question: "Which is faster: a printer with a parallel
interface or a printer with a serial interface?" This was in the era when there were
already networked laser printers, but the correct answer was the "parallel interface",
which means an Epson FX-80 dot matrix printer was faster than an Apple LaserWriter. It
also had a question on how to do a multitape merge-sort, which was dead technology by that
time]
joe

On Sat, 18 Apr 2009 17:41:52 -0500, "Scot T Brennecke" <ScotB@xxxxxxxxxxxxxxxxxx> wrote:

Are you asking me to explain the fault, or just giving that as an example of a problem-solving
question? It shows a classic mistake made by newbies, but presupposes an understanding of MFC
(knowing what CString and LPCTSTR are). That's not necessarily unreasonable on an MFC newsgroup, of
course. But to simply gauge a person's ability to do problem solving, I wouldn't want to cloud the
issue with knowledge (or lack thereof) about library implementations.

"Joseph M. Newcomer" <newcomer@xxxxxxxxxxxx> wrote in message
news:6oeku49ja834r42m4cgvlshmebipuvnpb0@xxxxxxxxxx
What's wrong with this code:

CString GetStringValue(int n)
{
CString s;
s.Format(_T("%d"), n);
return s;
}

LPCTSTR p = GetStringValue(3);

SomeAPI(p);
joe

On Sat, 18 Apr 2009 03:29:56 -0500, "Scot T Brennecke" <ScotB@xxxxxxxxxxxxxxxxxx> wrote:


"AliR (VC++ MVP)" <AliR@xxxxxxxxxxxxx> wrote in message
news:RvHFl.29218$ZP4.19181@xxxxxxxxxxxxxxxxxxxxxxx
Hi Joe,

The emphasis on virtual functions is that I want to make sure they have a good understanding of
OOP. If they don't then I might end up redesigning alot of their classes. But I guess you are
right in a way that they don't need to know this stuff to write programs but OO is major part of
programming in C++ or C#.

If they are reading this newsgroup, then that is a good thing. Then they are using this as a
tool
to learn. (I just posted questions, and not the answers). You will be surprised that the fact
that
I emailed these questions to people how applied and alot of them didn't get the answers right,
these are questions that can be easily googled, and the answer is within the first 2 or 3 links.

Any ideas on questions to gauge a person's problem solving skills?

AliR.

There are so many competent programmers looking for work these days, there's no reason to
compromise
your standards and accept mediocrity -- the 1990's are long gone.

If they were emailed the questions and still couldn't get the answers, press delete and move on.

As for judging problem solving skills, these newgroups are ripe with examples of problems. Pick
some juicy ones and present them to you candidates. See what questions they would ask to get to
the
answer.

Joseph M. Newcomer [MVP]
email: newcomer@xxxxxxxxxxxx
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm

Joseph M. Newcomer [MVP]
email: newcomer@xxxxxxxxxxxx
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
.



Relevant Pages

  • Re: Removable media enc/dec driver design.
    ... on top of the disk driver before the "File System Recognizers" look at ... This Disk Device filter driver would decrypt all the sectors ... Once the user has provided the correct decryption key, ...
    (microsoft.public.development.device.drivers)
  • Re: Incorporating a 3rd party driver into a BSP/Image
    ... I am now able to configure the file system, and by extension get all of my ... driver suite actually run as if a CAB had installed it. ... folder and run? ... As far as 'making it part of my BSP', I'm not sure what that means ...
    (microsoft.public.windowsce.platbuilder)
  • Re: How to speed up WinCE 6.00 boot
    ... driver load activity occurs. ... When the Nand Flash file system is empty, the board start quickly but as ... If you store the hive registry on that flash I think that the system ...
    (microsoft.public.windowsce.platbuilder)
  • Re: Deadlock problem with ERESOURCEs in filesystem driver
    ... only newsgroup for file system questions. ... I am working on a Windows filesystem driver and I'm seeing a deadlock ... the driver and another one for each File Control Block (FCB). ... an FCB lock which is not owned by any other thread. ...
    (microsoft.public.development.device.drivers)
  • Re: True fsync() in Linux (on IDE)
    ... All these ATA fsync() vs. write cache issues have been open for much too ... May I ask that the information whether a particular driver (file system, ... If I recall correctly from earlier patches, the barrier stuff is 1. ...
    (Linux-Kernel)