📜 ⬆️ ⬇️

Test task for PHP developer on probation



After passing the interview (oh and a stormy discussion turned out), for the developer comes a trial period. This is one of the most difficult stages for a person at a new job - there is an adaptation with a new team, an endless stream of new knowledge that you have little time to learn, and even test tasks, and it is not simple ...

I will not beat around the bush and write what it is, and I hope for your comments:

This test task is most likely more suitable for a junior developer than for a full-grown wolf .
')
  1. annotation


    This document describes a test task that the applicant for the Junior PHP Developer post must perform.
    The task is designed for 80 hours of development. After completing the test task, a decision is made; it can be one of the following:
    • completion of probation and admission to work
    • continuation of the trial period for another 2 weeks with live or test projects
    • completion of probation and refusal of admission to work

    The test task is divided into four components - the first part is required, the rest are not mandatory, and are associated only with the first part. Nevertheless, the implementation of optional parts is an absolute advantage.

  2. Guest book


    The guest book allows site users to leave messages on the site. All data entered by the user is stored in the MySQL database, and data on the user's IP and browser is also stored in the database.
    The entry form in the guest book should have the following fields:
    • User Name (numbers and letters of the Latin alphabet) - required field
    • E-mail (email format) - required field
    • Homepage (url format) - optional field
    • CAPTCHA (numbers and letters of the Latin alphabet) - an image and a required field ( http://ru.wikipedia.org/wiki/CAPTCHA )
    • Text (the message text itself, HTML tags are not allowed) - mandatory field

    Messages should be displayed as a table, with the ability to sort by the following fields: User Name, e-mail, and date of addition (both in descending order and in reverse). Messages should be broken into pages of 25 messages each. The default sort is LIFO.
    When writing a project, you should pay attention to protection against XSS attacks and SQL –injections. ( http://ru.wikipedia.org/wiki/Mezhsaytovy_skripting and http://ru.wikipedia.org/wiki/Injection_SQL )
    Creation of the simplest design using CSS is welcomed.

  3. Guest book. Javascript and work with files.


    To the basic functionality, you should add the following features:

    • The user can add a picture or text file to the message.
    • The image should be no more than 320x240 pixels, when you try to fill in a larger image, the image should be proportionally reduced to the specified size, the valid file formats: JPG, GIF, PNG
    • The text file should not be more than 100kb, TXT format
    • Viewing files must be accompanied by visual effects (for an example, see http://www.huddletogether.com/projects/lightbox/ )


  4. Guest book. Regular expressions.


    To the basic functionality, you should add the following features:
    • The user can use the following HTML tags in messages:

    • There must be a check for closing tags, the code must be valid XHTML


  5. Guest book. JavaScript and AJAX.


    To the basic functionality, you should add the following features:
    • Validation of the input data on the server side and the client
    • Preview function and add a message without reloading the page
    • For HTML tags make a panel with buttons ([link], [code], [italic], [strike], [strong])
    • Adding visual effects is also welcome.


  6. Requirements



    The system should work correctly on Linux with the following configuration:
    • PHP 5.1+
    • MySQL 4.1+
    • Apache 2.2+

    It is permissible to use the following libraries:
    • PHP Zend Framework or PEAR
    • JS jQuery or Prototype




PS The picture shows the Stirling engine , wikipedia often provides food for the mind ...

CP PHP: Test task for the developer , many have already discussed it ...;)

Upd : a very correct comment appeared on my blog:

people, you probably do not understand who this task is designed for. A person with experience NATURALLY will not do it for two reasons: a) he does not want to waste time and b) he will not be given it.

but the reality is that it is often-thick in general the first more or less voluminous task of the applicant for the position of junior php developer.

therefore, 80 hours is not given just to do this task, but to bring reality (his knowledge) into line with the checkmarks in his resume opposite php, html, css, js, ajax, mysql.

on exit, we get a certain integral indicator of both skill and learning and ability to google.

actually copes with this task.

and candidates who have something to show, naturally go directly to the projects.

Source: https://habr.com/ru/post/21812/


All Articles