Newsgroups: comp.lang.smalltalk
Path: cantaloupe.srv.cs.cmu.edu!europa.chnt.gtegsc.com!news.mathworks.com!uunet!news2.new-york.net!localhost!user
From: jpletzke@mordor.com (Jonathan Pletzke)
Subject: Re: How to interview a Smalltalk consultant?
Nntp-Posting-Host: ritz.mordor.com
References: <3omk7r$1vi@panix2.panix.com> <D8Bxp8.G23@ritz.mordor.com> <3ot0mc$jsr@sanews1.morgan.com> <jpletzke-1205950029360001@localhost>
Sender: news@news2.new-york.net (Network News)
Organization: The Technical Expertise Corporation
Date: Fri, 12 May 1995 19:13:08 GMT
Message-ID: <jpletzke-1205951511230001@localhost>
Lines: 122

In article <jpletzke-1205950029360001@localhost>, jpletzke@mordor.com
(Jonathan Pletzke) wrote:

> I will follow up with a post listing of questions that may be useful in
> determining a persons level of familiarity and (hopefully) competence with
> the Smalltalk programming language and environment.  This is the list I
> made reference to in my previous posting.  I have concluded that it is
> essential for the community to establish some criteria to evaluate the
> depth and breadth of knowledge of individuals.  Sort of analygous to a
> certification or something (like Novell Certified Network Engineer (CNE)
> but less formal).

Here are the questions that we've come up with so far.  Enjoy, redistribute,
Write back, whatever.  Please leave the credits on!

********************************************************************************
********************************************************************************
                       Smalltalk Interview Questions
                                     by
                        May 12, 1995 Version
                jpletzke@mordor.com (Jonathan Pletzke CIS:72603,563)
                 coates@mordor.com (Peter Coates)
********************************************************************************
These Interview questions are meant to serve as a starting point for qualifying
the level of expertise of a Smalltalk Programming candidate.  They can serve as
a springboard for discussion of the various topics, as well as a study
guide for
potential candidates.  It is not believed by us that being able to serves as
proof of Smalltalk Competency.  We feel that these questions cover a diverse set
of areas in Smalltalk programming.   Additions to this list are welcome, send
e-mail to: jpletzke@mordor.com.

This document may be freely distributed in its entirety, but not in part.
The contents are Copyright 1995 by Jonathan Pletzke, and an expanded version
will appear in publication this year in a book entitled
"Smalltalk Developers Guide".
********************************************************************************
HOW TO USE THESE QUESTIONS.

A competent Smalltalk programmer may be able to speak about most of the topics
listed here.  It is not likely that a competent programmer will be able to
answer
all of these questions.  Perhaps a modest 50% should indicate some level of
competence, along with relevant programming project experience.  This list is
not meant to be used to exclude programmers, but as a guide to the various
topics that one may speak about.  Smalltalk programmers of all levels are
essential in the programming community.  This should serve to identify what
areas (and level) a programmer can handle.
Beware of trick questions!

1. What was the original assignment operator in Smalltalk-80?

2. What does the #at: method of a collection class return?

3. What does the #at:put: method of a collection class return?

4. What is a "first class object"?

5. Tell me about block variables, arguments, and scope of variables.

6. Explain smalltalk mathematical notation, including order of operations and
   the reasons.

7. Why can't you do recursion in Smalltalk?

8. What is the difference between an instance variable, a class variable,
   and a class instance variable?

9. Describe indexed instance variables vs. named instance variables.

10. How do you access indexed instance variables?

11. What is a meta-class, and what objects are instances of meta class?

12. What is an abstract class?  Can you name an example in Smalltalk?

13. How does Smalltalk support multi-tasking?

14. Name some examples of how Smalltalk is oriented toward single users?
    How can these problems be approached or overcome?

15. Suppose you were offered the choice of two tasks with the same
     tight deadline:
             (1) Write a Smalltalk to C++ cross compiler
             (2) Write a C++ to Smalltalk cross compiler.

     Which task would you choose and why?

16. Name some of Smalltalk's shortcomings.

17. What is the value of n after the following code is executed?
    | n |
    n := Dictionary new.
    n at: #one put: 1.

    Evalutate the coding style of the above Smalltalk code.

18. In which of the following languages can the programmer know the type
    of data a variable will refer to at runtime:
    C, C++, Smalltalk

19. Which of the following phrases could be applied to Smalltalk?
    untyped, statically typed, dynamically typed, strongly typed, weakly typed

20. What is meant by the word "binding" with respect to data elements?

21. Most people would agree that it is inherently easier to implement a
    Dictionary class in Smalltalk than in C/C++.  Any reasonable C++
    implementation would also be trickier to use.  Why?
********************************************************************************
********************************************************************************
Smalltalk Interview Questions
jpletzke@mordor.com

The Technical Expertise Corporation
532 Hudson Street, 3rd Floor
Hoboken, NJ 07030

-- 
Jonathan Pletzke
The Technical Expertise Corporation
jpletzke@mordor.com
