All Projects → Jinjinov → job-interview-solid-principles-test

Jinjinov / job-interview-solid-principles-test

Licence: MIT license
A programming job interview questions that test the understanding of basic principles and patterns

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to job-interview-solid-principles-test

OOD-Principles-Kotlin
The Principles of OOD in Kotlin 1.3.61
Stars: ✭ 12 (-62.5%)
Mutual labels:  principles, solid-principles
CleanArchitectureMVVM
Example of Clean Architecture of Android app using MVVM, Koin, Coroutines, Retrofit, Room, Solid Principle, DRY, KISS, OOP
Stars: ✭ 60 (+87.5%)
Mutual labels:  oop-principles, solid-principles
alt-rails
Design/Arquitectural patterns for big Rails applications
Stars: ✭ 32 (+0%)
Mutual labels:  patterns, ood-principles
Designpatternslibrary
A comprehensive design patterns library implemented in C#, which covers various design patterns from the most commonly used ones to the lesser-known ones. Get familiar with and learn design patterns through moderately realistic examples.
Stars: ✭ 485 (+1415.63%)
Mutual labels:  patterns, principles
notes
My personal tutorials and notes.
Stars: ✭ 34 (+6.25%)
Mutual labels:  patterns, principles
ruby-patterns
NOTE: NO LONGER MAINTAINED
Stars: ✭ 33 (+3.13%)
Mutual labels:  oop-principles
ds-algo-placement-resources
A complete roadmap and resources for competitive programming for placement purpose.
Stars: ✭ 58 (+81.25%)
Mutual labels:  job-interviews
GoBarber
💈 Aplicação de agendamento para serviços de beleza, entre provedores e clientes.
Stars: ✭ 84 (+162.5%)
Mutual labels:  solid-principles
js-algorithms
Computer science
Stars: ✭ 64 (+100%)
Mutual labels:  patterns
GVProf
GVProf: A Value Profiler for GPU-based Clusters
Stars: ✭ 25 (-21.87%)
Mutual labels:  patterns
solidity patterns
Smart Contracts Design Patterns in the Ethereum Ecosystem and Solidity Code
Stars: ✭ 42 (+31.25%)
Mutual labels:  patterns
spring-SOLID
Spring 예제로 보는 SOLID
Stars: ✭ 53 (+65.63%)
Mutual labels:  oop-principles
glob-fs
file globbing for node.js. speedy and powerful alternative to node-glob. This library is experimental and does not work on windows!
Stars: ✭ 54 (+68.75%)
Mutual labels:  patterns
solid-kata
Kata for practicing SOLID principles
Stars: ✭ 18 (-43.75%)
Mutual labels:  solid-principles
lazylead
Eliminate the annoying work within ticketing systems (Jira, GitHub, Trello). Allows automating (without admin access) daily actions like tickets fields verification, email notifications by JQL/GQL, meeting requests to your (or teammates) calendar.
Stars: ✭ 42 (+31.25%)
Mutual labels:  oop-principles
algorithm-pattern-python
Python version of algorithm-pattern
Stars: ✭ 544 (+1600%)
Mutual labels:  patterns
css-shapes-patterns
CSS Shapes Patterns
Stars: ✭ 32 (+0%)
Mutual labels:  patterns
RentACarProject
backend of rent a car project
Stars: ✭ 16 (-50%)
Mutual labels:  solid-principles
librxvm
non-backtracking NFA-based regular expression library, for C and Python
Stars: ✭ 57 (+78.13%)
Mutual labels:  patterns
icon-patterns
Include animated CSS icon patterns in your background
Stars: ✭ 15 (-53.12%)
Mutual labels:  patterns

Job interview: SOLID principles test

A programming job interview questions that test the understanding of basic principles and patterns

The test should be solved in two rounds, the text of the second round given to the job applicant only after they solve the first round. The purpose of these rounds is to check if the applicant can plan ahead and write extensible code before additional features are known.


Use the programming language of your choice to write an application (it can be a console / terminal application or an application with a GUI). The code must be modular and easily extensible. After you complete the first 5 tasks you will receive 3 very short additional tasks to test if the code is really easily extensible.

Round 1:

  1. Design a ferry terminal. Two kinds of ferries are available at any time:

    • small ferry has space for 8 small vehicles (cars pay 3€ / vans pay 4€)
    • large ferry has space for 6 large vehicles (buses pay 5€ / trucks pay 6€)

    The application must display all income made from tickets.

  2. Vehicles are constantly arriving to the terminal in random order. A terminal employee is paid to park them on the ferry - his salary is 10% of every ferry ticket. The application must display his income.

  3. Every vehicle arrives with a random amount of gas. If any vehicle has less than 10% of gas left, the terminal employee must fill it up at the gas station. The application must display the amount of gas for the current vehicle.

  4. Every van and every truck must go through customs inspection. The terminal employee must open the cargo doors for inspection. The application must display whether the cargo doors of the current vehicle are open or closed.

  5. Track the car from the arrival to the ferry. The application must display the name of the last location visited (crossroads don't count).

         A
         |
     G - 1 - S
     |   |
     C - 2 - L
    
     A - Arrival
     G - Gas station
     1 - crossroad 1
     S - Small ferry
     C - Customs inspection
     2 - crossroad 2
     L - Large ferry
    

Round 2:

  1. Add another terminal employee that does the exact same job. His salary is 11% of every ferry ticket. The application must display his income.

  2. Add a battery recharge station. Every electric car arrives with a random battery charge. If the battery is below 10% then the terminal employee must recharge it. The application must display the battery charge for the current vehicle.

  3. Add a new eco ferry that carries 10 eco cars (electric cars pay 1€ / hybrid cars pay 2€). Hybrid cars don't have to be refilled with gas if they have more than 50% battery charge. Hybrid cars don't have to have the battery recharged if they have more than 50% of gas left.

         A
         |
     G - 1 - S
     |   |
     C - 2 - L
     |   |
     B - 3 - E
    
     A - Arrival
     G - Gas station
     1 - crossroad 1
     S - Small ferry
     C - Customs inspection
     2 - crossroad 2
     L - Large ferry
     B - Battery recharge station
     3 - crossroad 3
     E - Eco ferry
    

In the first round you were asked to write modular and easily extensible code. It there anything you could have done differently in the first round that would make the last three tasks of the second round easier? If yes, what exactly?

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].