Skip to content

Instantly share code, notes, and snippets.

@nik-kor
Created March 16, 2012 10:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nik-kor/2049486 to your computer and use it in GitHub Desktop.
Save nik-kor/2049486 to your computer and use it in GitHub Desktop.
interview questions

Common

Simple

  • Что такое класс/объект. Разница между ними. Как с ними обстоит дело в конкретных языках; Зачем они вообще нужны;
  • Зачем нужны абстрактные классы;
  • в чем отличие фрэймворка от библиотеки;
  • приходилось ли на практике писать тесты;
  • рассказать про какую-нибудь конкретную решеную задачу. Возможно, самую сложную и интересную;

Advanced

  • рассказать про паттерны проектирования, какие бывают. Про один рассказать подробно;
  • рассказать про один из архитектурных паттернов(кроме MVC);
  • принципы объектного проектирования. Сколько их, обзорно рассказать про них.

System administration and technologies

  • слышал ли ты про SPDY;
  • Что такое API типа RESTful;

PHP

  • Какими фрэймворками пользовался. Дай характеристики каждого. Какой больше всего понравился? почему?;
  • ООП в PHP: классы, интерфейсы, абстрактные классы, статическое связывание в 5.3;
  • Для 5.3: замыкания (closures) — что это и зачем это и как его юзать;
  • Отличия 5.2 от 5.3;
  • Исключения. Что это и как это. В чем преимущества;

Javascript

  • AJAX;
  • Как реализовать прототипное наследование;
  • Какие библиотеки ты используешь в своих проектах;
  • Какие фрэймворки ты знаешь(jQuery - это библиотека, а не фрэймворк) , и, возможно, используешь. Расскажи примеры из практики;
  • Знакомы ли тебе такие подходы как CommonJS, AMD;
  • Использовал ли ты в своих проектах Node.JS. Если да, то расскажи поподробнее. Опиши архитектуру Node.JS;
  • Что такое замыкания и как их можно использовать в js;
  • как реализовать асинхронное последовательное выполнение функций;
  • как реализовать асинхронное параллельное выполнение функций;
  • wtf is memoizing;
  • как реализовать приватные методы и атрибуты;

SQL

INSERT INTO mytable (id, data) VALUES (2, 'hello world'); (ловим нарушение primary key)

SELECT * FROM mytable;

1 I'm here (никакого id=2 нет)

Вопрос: почему так?

PHP-code-example

Что не так с этим кодом ? Вообще по всем параметрам

class Inquiry {
  static public function send($id,$text) {
     if ($id > 3) {
        $this->oraSend($id,$text);
     } else {
        $this->mysqlSend($id,$text);
     }
  }

  /**
   * Отправляет заявку через Oracle
   * @param type $inquiryId
   * @param type $text
   */
  private function oraSend($inquiryId,$text) {
    echo $inquiryId.' '.$text;
  }

  /**
   * Отправляет заявку через Mysql
   * @param type $inquiryId
   * @param type $text
   */
  private function mysqlSend($inquiryId,$text) {
    echo $inquiryId.' '.$text;
  }

}

Inquiry::send(1,'Заява на аренду квартиры');

javascript-code-example

  1. Что выведется ?

if (!("a" in window)) { var a = 1; } alert(a);

  1. Что будет происходить по клику на элементы li, почему, как исправить ситуацию ?

     <ul id="list">
         <li>1</li>
         <li>2</li>
         <li>3</li>
         <li>4</li>
     </ul>
    
     <script>
     $(document).ready(function(){
         var elms = $('#list li');
         for (var i = 0; i < elms.length; i++) {
             $(elms[i]).click(function(){
                 alert(i);
             });
         }
     })
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment