Test for a strong JS programmer

    Here we ran into a resume shaft for a JS programmer job in our new company. It is clear that processing a huge number of applications by two people is very difficult. A reasonable solution is a test, according to the results of which we invite some of the candidates for an interview. I wrote a test this weekend, the result is under the cut.

    Attention, a question for JS programmers, are there any things that are not reflected in this test?

    1. Cross-browser compatibility:
      1. Tell us what cross-server query methods you know and apply.
      2. XSS attacks: how do they work, what do you do to protect against them?
    2. HTTP protocol:
      1. what methods do you use and how?
      2. How are files transferred from client to server and from server to client?
      3. keep-alive and how is it used to optimize scripts?
      4. Caching: what are the headers, how are they used, what methods do you use to protect against caching on proxy servers?
    3. ScriptHost: what differences do you know about browser scripting engines (without the DOM model)?
    4. OOP:
      1. What is OOP? Basic principles.
      2. How does JS relate to the OOP paradigm? Explain your answer.
    5. Design Patterns:
      1. What are design patterns and what are they for?
      2. MVC in JS - do you apply this pattern? If you apply, then how (example code)? If not, then why?
      3. Singleton in JS. What it is? Why might he need it in JS?
    6. Performance:
      1. How would you stack 20 lines in JS?
      2. Tell us about the impact of different typesetting styles on page loading speed.
      3. What else affects page loading speed?
      4. How do you optimize page loading speed? Favorite tricks to improve productivity.
      5. How do differences in working with the browser DOM model affect download speed?
    7. Browsers
      1. What browsers did you work with?
      2. Tell us about the differences between them.
    8. Layout:
      1. What is sematic layout and why is it needed?
      2. What are microformats?
      3. How would you make a horizontal menu of a site? Sample code. Why so?
      4. What can you tell about such a code :?
      5. Why do we need layout for divas? What benefits does it give? What are the disadvantages? When is it better not to use it?
      6. There is a code: . Write CSS selectors to color the underlined words in different colors.


      7. There is a multiline table. It is necessary to make each even line a little darker than the odd one. How do you implement this? Why?
      8. There is a tree discussion, for example, as on habrahabr.ru. It is necessary to keep marks on reading the answers so that they remain after the page is reloaded and each answer read is marked with a picture-icon. How do you implement this?
      9. You need to make up the drop-down menu without using JS. Tell us about the methods and their shortcomings.
      10. You need to press the footer to the bottom of the page. Tell us about the methods and their shortcomings.
      11. It is necessary to make round edges at the button. Tell us about the methods and their shortcomings.
      12. The designer drew a picture with many buttons. You need to cut the buttons and paste into the design. How will you do this?
      13. Make a pie chart with 5 segments, the sizes of which are set by variables in JS and send an example code.
    9. Testing:
      1. But how do you test layout? (methods, frameworks, approaches)
      2. What things should I look for when testing layout?
      3. How do you debug JS code?
      4. What do you pay attention to when testing JS?
    10. AJAX:
      1. Multithreading / multitasking in JS, how is it implemented?
      2. How to make a synchronized section on JS in a browser?
      3. You need to write a web chat: a page in which there is a list of messages from users and a sending form. What approach do you use to implement and why?
      4. To insert a new element into the DOM model, you need to generate a unique ID. How do you do it?

    It is assumed that this test will be sent by email to people who have indicated few of their skills in the resume, have not provided examples of their work, or whose skills we doubt.

    After 80 comments, I found the discussion interesting enough to transfer to a thematic blog.

    The job description is here .

    Also popular now: