Monday, June 6, 2011

phone screen questions


Phone screen technical questions


What is the difference between client-side and server-side scripting? Under what situation will you use which type?
Give me some examples of each type of scripting technology.



Describe the company to him, what kind of work is done here – brief intro to the project/product.

Instructions


  1. Go through those questions with the candidate on the phone, and fill in the gathered answers in the space provided after each question
  2. Pick one experience on their resume and ask the candidate a question or two to verify their participation and role in that experience.

General


  1. What is the difference between a process and a thread?
    A process has its own address space; a thread is part of a process and uses the address space of its parent process.

  2. What is the difference between a heap and a stack?
    A heap is memory used to store non-local data. A stack can be used to only store local data (ie, data that can be accessed only by the function that is executing, or any function that it calls).

  3. What is an access violation?
    Illegal access to a memory location, or accessing a memory location that is not mapped.

  4. How do you determine the code location of an access violation that occurs in the field?
    Configure the process to generate an image dump file and then load this in the debugger to view the call stack.

MultiThreaded Experience


  1. What is the difference between a semaphore and a lock?
    A lock allows exactly one entity (thread, process) to access a protected resource; a semaphore allows a specific number (controlled number) of entities (processes, threads) to allow a resource.

  2. What is a deadlock?
    A situation where there are two resources protected by two locks, A and B. One process (or thread) comes along, locks A, and wants to lock B. But another process (or thread) has locked B and is waiting to lock A. Neither one can proceed and this situation is called a deadlock.

C/C++


  1. What are the two arguments to the function “main”?
    argc, and argv
    Count of arguments and an array (or vector) of string arguments.

  2. What is a C++ class?
    It is a type of data structure that allows for the code and data associated with a logical object to be abstracted or packaged together.

  3. What is a virtual function?
    A function of a class that can be overridden by derived classes.

  4. What is the difference between a private member and a protected member of a C++ class?
    Private allows access by methods of the class (or by friends of the class).  Protected allows access by derived classes as well.

  5. What is a Reference in C++?
    Like a pointer, it is the address of an object, but syntactically, it behaves like the object itself.

  6. Why are templates important to C++?
    No root base class exists for creation of generic containers as in Java or other rooted OO languages, and templates allow enforcement of type safety.

COM/COM+


  1. What are the three methods on the IUnknown interface?
    AddRef, Release, QueryInterface.

  2. How do you create a new com object?
    CoCreateInstance

  3. What are the different apartment threading models in COM?
    STA (single threaded), MTA (multi threaded), TNA (thread neutral) and Both/Any (allows STA, MTA or TNA to match creator apartment)

  4. What language is used to define COM interfaces?
    IDL.

Java

  1. What is a Java Class?
    It is a type of data structure that allows for the code and data associated with a logical object to be abstracted or packaged together.

  2. What package do you need to import for simple TCP/IP communications?
    java.net.*

  3. What is the Java VM?
    Java programs are compiled to bytecode that is then executed by the Java Virtual Machine.

  4. How do you create a pointer in Java?
    You don’t!

  5. What is the java facility that allows you to inspect classes at runtime called?
    reflection

Networking:


  1. What is a DMZ?
    De-Militarized Zone, or the network zone between two firewalls.

  2. What is NAT?
    Network Address Translation - or a device that maps one IP address to another.

  3. Why do you need technology like NAT?
    To map internal IP addresses/Ports (which are typically in the non-routable range) to external IP addresses/Ports.

  4. What is the purpose of calling bind when listening on a TCP socket?
To specify a local end point (IP address and port) to accept connections on

IIS/ASP:

  1. How are ASP pages different from HTML?
    ASP pages contain server side scripting.

  2. What is a CSS file used for?
    CSS = cascading style sheet, used to specify formatting separately from the HTML content.

  1. How do you perform client side validation on a form element?
    Typically, associate a client side validation script with an event on the HTML element.   .NET supports some declarative client side validation.

SQL Server

  1. What is a join?
    A SQL operation that produces a single (logical) table from two or more tables, by matching one column in one table with a column in the other table.

  2. How are inner and outer joins different?
    An inner join is where the result contains rows that have a match in the column values in both tables.   An outer join allows data from one of the tables to be included even if the join column data is null.

  3. What is normalization?
    The design process that eliminates repetitive data.

  4. Assume you have a SQL table with 30 million rows and you want to fetch a few records.  How do you ensure the query returns quickly?
    Ensure that the where and order by criteria are supported with appropriate indexes.

XML / XSLT

  1. What is a DOM
    Document Object Model is a parsed, in memory XML document.

  1. What is XSLT
    Extensible Style Language Transformations.

  2. What is XSLT useful for?
    For converting XML data to any other format.

  3. What techniques are normally used to embed an arbitrary XML document inside another as a text entity?
    Normally either XML entity encoding (e.g. “&” -> “&&”) or enclosing the data in a CDATA section.