I blogged about the increasing tendency for employers to give potential candidates some form of programming task to complete before an interview. The FizzBuzz test is on the simplistic end of the spectrum. The opposite side is something like this Banking System application. This test is as follows:
A banking system is developing a system to manage its employees. The first phase will implement basic employee information and activities. Additional company personal may be added in the future.
The application needs to contain the following business requirements:
- The bank has three types of employees: standard, manager, c-level
- Each employee has a Name, Phone Number and Address
- Employees must be able to do the following, however each action may act or be implemented by different systems depending on the type of employee
- Purchase a parking pass for a given length of time
- Register for in-house workshops
- Retrieve a list of all workshops they have attended and are registered for
The application needs to contain the following design elements:
- Try to use the following where appropriate
- Display the output on a web page in which the user can click a button to retrieve the results via AJAX and display them in a text area
In your code note the following:
- Please create a client class that demonstrates the functionality of each type of student and all of their behaviors; however, you don’t need to implement the actual behaviors. You can simply output pseudo code such as “Display attended and registered workshops”
- Please utilize the jQuery API for the AJAX call
- Create a class diagram that displays your implementation
There is no “correct” or “perfect” solution. Please just create a solution that you feel addresses the project requirements.
As stated there are multiple ways to solve this problem. The main goal is to address the project requirements rather than trying to read the interviewers mind on how they would like the application built. If you are invited in for an interview the chances are very high that you will be asked about portions of your code so make sure that you understand what you code. Just like I stated on the FizzBuzz post, finding an answer online that is sophisticated but that you can’t explain is a really good way to botch an interview!