The purpose of this screening tool is to weed out, either over the phone or in person, the amateurs from those who
have a solid foundation.
This was originally inspired by the The 17 Dreaded Questions for FoxPro 2.x by Whil Hentzen. It's a little dated, but most of the
questions are still valid. Whil later followed this up with The 24 Dreaded Questions for VFP.
A recent book, How Would You Move Mount Fuji? Microsoft's Cult of the Puzzle is an interesting look at the
use of puzzles in the interview process, used most famously by Microsoft.
A good, simple test of SQL and database concepts is here.
This test is designed to determine:
- The depth and breadth of an candidate's skill set.
- The candidate's attitude and work ethic.
- How the candidate will fit into the company culture.
|
| Technical Knowledge - Fundamentals |
- What is the difference between a function and a procedure? This is simple but fundamental.
- Describe the use of SUBSTR(), STUFF(), CHRTRAN(), STRTRAN(), RAT(). How much have they used string
manipulation?
- Describe what SET DEFAULT and SET PATH do? This proves whether or not there is networking
exposure.
- What is the difference between COPY STRUCTURE and COPY STRUCTURE EXTENDED? Anybody who claims to be
at an intermediate level or above should know this.
- What are the advantages of a structural CDX? This relates to performance tuning, especially with
larger databases.
- What does SET ALTERNATE do? Hopefully, the candidate has some exposure to creating free form text
files; this could also indicate HTML creation exposure.
- What does SET CARRY do? SET CONSOLE? SET DECIMALS? SET CARRY is a timesaver; SET CONSOLE would be
known to anyone who has written professional apps; SET DECIMALS would be used for advanced math precision.
- How do you find out if a variable exists or not? A file? These are important skills for
bulletproofing apps.
- How do you pass more than 24 parameters to another routine? This is an unusual question; but can be
telling.
- What would you use TRANSFORM for? Have they exposure to all of the methods of displaying
information?
- How do you format numbers, such as sequences, that are stored as character so that they can be ordered
properly? A common issue in app development.
- What does IIF() do? This is an important function.
- Write a one-liner that returns the last day of a month. Have they kept up with the latest date-math
functions?
- How do you calculate a standard deviation in FoxPro? Have they used FoxPro for statistical
applications?
- What would you use DIFFERENCE() for? An obscure but useful function.
- How do you create a table containing more than 150 fields programmatically? A good indication of how
many different data conversion situations they've had to deal with.
- How do you insert a new element at the top of an existing array? Do they have exposure to array
functions?
|
| Technical Knowledge - Builder Tools |
- How do you integrate code into your forms?
- What are the different bands of the report writer? Just to make sure.
- If you wanted to have a column on a report come from two different fields for two different runs, how
would you do it? An obscure question with few right answers.
- How do you select all of the objects in a band? How do you move objects incrementally? How efficient
are they with the tool?
|
| Technical Knowledge - Multi-User Programming |
- Describe an alternative to PACK and when and why you would use it. How do you manage databases in a
multi-user environment when you have to have them open exclusively?
- Describe any techniques you would use to protect data integrity in a multi-user environment.
- How do you generate temporary file names in a multi-user environment? This is very important and
telling.
|
| Technical Knowledge - Team Programming Concepts |
- Describe your naming conventions for tables, variables, etc. Are they sensitive to readability
issues?
- What is the use of EXTERNAL? Have they cleaned up their process for building EXE's?
- How do you structure your code? Another readability question.
- Tell me everything you know about code reuse. A wrong answer to this is fatal.
|
| Technical Knowledge - SQL and Performance Tuning |
- What is the difference between WHERE and HAVING? This is a good indication of SQL depth.
- How do you give the user feedback during a query? How sensitive are they to keeping the user
informed?
- How do you implement an outer join? An advanced topic.
- What is a subquery? Another advanced topic.
- What is a self-join?
- Tell me all you know about optimizing SQL calls. Very, very important, especially when dealing with
large databases.
- Tell me all about the largest databases you have ever had to work with.
- Have you ever used Window's Performance Monitor to tune your FoxPro programs? This is a little-used
but very effective tuning method.
|
| Technical Knowledge - Troubleshooting Aptitude |
- Tell me everything you know about Debug and Trace. How efficient are they at finding problems?
- How have you implemented error trapping in your work? This is a good indication of having experience
with professional-level applications.
|
| Technical Knowledge - Advanced |
- What are some of the most interesting routines or "tricks" you have created? Have they done anything
really cool? Anything that they are particularly proud of. Impress me.
- How and why would you use FOXTOOLS? FOXMAPI? DDE? OLE? SET UDFPARMS? Have they looked beyond the base
FoxPro language?
- Do you have any experience with ODBC? Do they have any exposure to client/server strategies?
- What is the best way to add records to a database? There are several, but one is particularly
efficient.
- What do you know about low-level file I/O? Have you used IMPORT, EXPORT, and COPY TO? We do a lot of
this.
- Have you ever, programmatically, manipulated a graph on a report form? This is another skill that is
in high demand in our group.
|
| Commitment to Being a Great FoxPro Programmer |
- Name some third-party FoxPro tools and what they do. What other tools are you familiar with?
- What are the things about FoxPro that you need to learn more about? What are your weaknesses and
interests?
- How would you go about learning about those things?
- What periodicals do you subscribe to? Others? Do you proactively spend time training yourself?
- What software development oriented books do you own? What others have you read?
- What on-line resources are you familiar with? Be specific.
- What other things do you do to learn?
- What user groups are you a member of?
- What conferences and seminars have you attended?
- What outside training have you received?
|
| Other Skills and Experience |
- What do you know about OOP?
- What is your exposure to VFP?
- Do you have any exposure to SQL Server or Oracle?
- What is database normalization? Trade-offs?
- Describe your project management experience.
- What important software design issues are you familiar with?
- Have you written any user documentation, newsletters, etc?
- Do you have a customer service background? Describe.
- What marketing or sales experience do you have? Describe.
- What other technologies and tools are you interested or proficient in?
- What other programming languages are you familiar with? Describe.
|
| Attitude and Fit |
- What motivates you to get up in the morning? What does it take for you to have fun at work? How would you
describe your ideal job?
- What non-computer interests do you have?
- Why do you want to leave your current job?
- What do you like about your current job?
- What do you dislike about your current job?
- Why are you interested in this position? What do you know about it?
- Tell me about a recent difficult situation at work and how you resolved it.
- Tell me about your strengths and weaknesses and how you are improving them.
- What are your pet peeves?
- What is your personal motto?
- Have you ever broken the rules? Tell me about the last time.
- Give an example of when you reached peak performance.
- What are some of your biggest career accomplishments?
- What are some of your career and personal goals?
- Explain how your sense of humor helped you once.
- Tell me about your upbringing.
|
| Offbeat Questions |
- If you were having a dinner party and could invite three famous people, who would they be?
- What's the last book you read? Last movie you've seen?
- What did you want to be when you were 10 years old?
- What classes did you like in high school?
- Do you see yourself in my position in the future?
- How will taking this job change your life?
|