Собеседования на должность PHP разработчика


    Довольно часто (постоянно) мне приходиться проводить собеседование людей желающих устроитсья в мой отдел на должность «junior PHP developer» и «PHP developer». И, с завидным постоянством, я и team-lead отдела задаем одни и те же вопросы…

    Каждое собеседование начинается с одного и того же вопроса:

    — Почему PHP?

    И, как ни странно, некоторые умудряются «засыпаться» уже на нем:
    — Пробывал язык N — такой сложный, и поэтому решил учить PHP
    или еще лучше:
    — Решил пока поработать в PHP отделе, а потом перейти в отдел .Net
    Но чаще всего слышим один из следующих ответов:
    — Делал страничку — понадобилась динамика — выбор пал на PHP
    — Кто-то, зачем-то посоветовал
    — Преподавали в ВУЗе — только PHP и смог осилить

    Далее, приближаемся к программированию, мы пытаемся понять имеет ли собеседуемый хоть какое-нить представление о ООП, о абстракции, наследовании, инкапсуляции и полиморфизме. Ага, кто-то лекции прогуливал в университете ;)

    А теперь начинается самое оно:

    — Какую версию PHP использовали? В чем различия между четвертой и пятой версиями?

    — Какими сторонними библиотеками пользовались?

    — Опыт работы с различными CMF/CMS?

    — Типы данных в PHP?(их всего 8, не верите — читайте мануал)

    — Назови по памяти функции для работы с массивами, строками

    — Что такое сериализация?

    И далее несколько практических вопросов…

    — Что такое Apache? А mod_rewrite?

    — Аббревиатура SVN и CVS о чем-нить говорят?

    — Багтрекинг системы? BugZilla? JIRA?

    Не забываем и о БД:

    — Что такое реляционная база данных?

    — Нормализация, денормализация

    — И чуть-чуть практики (связь многое-ко-многим в MySQL, каталог товаров произвольной вложенности)

    HTML + CSS + W3C (знания HTML на базовом уровне считаю обязательным):

    — Нарисуй-ка простенькую форму для отправки файла

    — CSS знаешь? В чем разница между записью #my и .my?

    — Расшифруй вот такую запись в CSS ... (и далее что-то невообразимое, но вполне читабельное, задаю не часто, если только испытуемый заявляет что знает CSS)

    — Что такое стандарты W3C?

    Linux:

    — С *nix знаком?

    — Apache и PHP сетапил?

    Сетевые технологии и не только:

    — Знаешь что такое уровни модели OSI? Назови хотя бы их количество. (это вопрос на «пять»)

    — По какому протоколу осуществляется передача данных в сети Интернет?

    — Расскажи что поисходит, когда в строке браузера набираешь адрес и нажимаешь Enter?

    Иностранные языки:

    Тут особо не мучаем, если же в резюме указан уровень знания английского как «хорошо» — вот тогда нам на помощь спешит COTOHA — лучше правдиво пишите — уровень университета или начальной школы… ;)

    Бывает, озадачиваем каким-нить тестом на сообразительность (поменяй-ка друг значение переменных A и B местами не используя третью переменную)

    Вот подумываем написать тест, который однозначно говорил бы о уровне знаний человека (brainbench для новичков не подходит), если у кого есть что предложить — пишите в комментариях…

    Кросспост: PHP: Собеседование (и там уже много содержательных комментариев)

    Upd: Вторым, или даже первым вопросом наверное скоро будет: «Читаете ли вы Хабр по пятницам?»…

    Upd: На ряд вопросов из комментариев отвечу тут:
    • Разве должен PHP разработчик знать это… ? — Если человек не ответил на ряд вопросов на собеседовании, это не значит, что он его провалил, возможно некоторые вопросы слишком отстранены от разработки, но их знание никогда не будет лишним
    • Вам действительно нужно это всё? — Да, ибо мы используем системы контроля версий и багтрекинг системы, мы сталкиваемся с готовыми CMS системами, кодим используя Zend Framework и CMF/CMS которую сами разрабатываем
    • На какую ЗП можно претендовать после прохождения собеседования? — ЗП оговаривается по окончанию испытательного срока, если Вас интересуют более подробная информация см. на www.developers.org.ua
    • Есть мануал, зачем помнить на память! — Мне не нужен в отделе человек который каждые пять минут будет лазить в мануал, дабы узнать как построить цикл «for» или отсортировать массив, или еще хуже — будет отвлекать окружающих для этой цели
    • Дайте лучше тестовое задание! — Ситуация нынче такова, что junior разработчик не будет делать тестовое задание, а скорей просто пойдет на собеседование в другую компанию
    • В какой компании такое «невдалое» собеседование, не пойду в неё работать! — 3 клика мышки отделяет Вас от ответа, если не нашли — мы Вас не ждем...
    Метки:
    Поделиться публикацией
    Комментарии 515
    • 0
      Возможно, имеет смысл составить тестовое задание (непосредственно практическое).
      В меру сложное, с установленным временным лимитом на исполнение.
      В большинстве случаев этого достаточно.
      • 0
        Тестовое задание мы уже даем на испытательном сроке, до того как допустить человека к "живым" проектам...
        • 0
          Да, Вы совершенно правы.
          • 0
            Опоздал на 2 года, но статья в топе гугла поэтому ещё актуальо…:
            в корне не согласен с этим: «Мне не нужен в отделе человек который каждые пять минут будет лазить в мануал, дабы узнать как построить цикл „for“ или отсортировать массив, или еще хуже — будет отвлекать окружающих для этой цели» — мануал должен быть всегда под рукой. Если человек знает на память функции работы с массивами, значит не умеет правильно построить SQL запрос. К примеру я знаю ф-ю array_chunk потому что как то жестко схалтурил и написал с её помощю страничную навигацию. Посмотреть ф-ю в мануале 10 сек а понять, например, суть плюсы/минусы работы с базой через хранимки — это проект, не меньше.
          • 0
            Тестовое "заданице", скорее. Типа "составьте запрос" или "спроектируйте структуру классов" или "нарисуйте UML (если умеете) классов для такой-то задачи".
            • +1
              Тестовое задание, на мой взгляд - это худшее что можно придумать для собеседованиия и выбора кандидата.
              Важен кругозор и то, как человек мыслит, а не то, с какой скоростью он может решать задачки. Лимит времени на выполнение задания - это вообще глупость. Говорить, что все должно быть в "мозгу" без использования документации - ерунда полная. Я не говорю что кандидат не должен знать примитивных вещей.

              Впринципе, если искать тупого кодера, возможно это и вариант. Но даже в этом случае сильно сомневаюсь, если же вы ищите developer'а, то, на мой взгляд, нужен человек способный видеть несколько дальше типов данных и всей этой хрени, которую вы спрашиваете.
            • –5
              Что-то низкий проходной у вас уровень, ребята) Я ни в коем разе не девелопер и уж тем более не програмист, работаю совершенно в другой сфере и девелопмент для меня - скорее хобби, чем профессиональная сфера, но я бы ответил на все вопросы, и еще с довеском. Видимо, говнопрогеров действительно уже слишком много, раз кадровые вопросы решаются подобными собеседованиями))
              • +10
                Поверь мне, большинство "программистов" засыпаются уже на первых вопросах.
                • +8
                  Это не программисты, а недоучившиеся отморозки какие-то.
                  Лучше пусть при таком уровне подготовки идут мести асфальт.
                  • 0
                    Они думают иначе.
                  • +7
                    Зачем же вы так строго. К нам в компанию берут людей без опыта, на обучение.
                    Другое дело когда такие "специалисты" претендуют на что-то. Вот в этом случае можно ругаться.
                    IMHO джуниор, на то он и джуниор. Что бы обучаться.
                    • –1
                      Естественно всегда все упирается в деньги. Но основы то хоть немного себе представлять человек должен. Пусть джуниор, но все-таки программист, а не мальчик с нулевыми знаниями. Тем более, что я уже писал, что для ответа на 90% таких вот вопросов необходимо до конца прочитать книгу среднего размера, листов на 250-300. Ну максимум неделю уйдет на это. Если нет, то я не понимаю, зачем брать такого человека.
                      Может быть я сужу по себе и по тому что спрашивали у меня и чего требовали (а это принципы работы бд, er модель и ее проекция на базу, com, разработка клиентского приложения на delphi, кроме тго узнав, что учусь на защите информации потерзали по криптографии). И это в областном банке со стартовой з/п 4500р.
                      • 0
                        Да, и не собеседование пригласили после того, как написал минипрограммулину на Deplhi для учета клиентов. Причем сначала я ее сделал на bde, принес, попросили переписать на ado+accsess, переписал, принес. Посмотрели и сказали приходи послезавтра на собеседование.
                        • 0
                          ado+access — это феноменально геаниальное требование... Они бы еще на фокспро попросили передалать.

                          Что за банк, если не секрет? А то вдруг у них там вся система на аксесе сделана...
                          • +2
                            А что фокспро так плох?))
                            • +5
                              А что такое ФоксПро? :)
                              • 0
                                плагин под ФайерФокс для Профи
                            • 0
                              Гениально не гениально, а к нигах по дельфи всегда почему-то рассматривают исключительно bde.
                              Система не на аксесе :) Все только на oracle, просто глупо требовать от студента знание oracle и ораклового клиента (ну и DOA компонент соответственно). Это был просто тест на понимание что такое таблицы, связи и ссылочная целостность + грамотное написание приложения. Ну и хранимые процедуры.
                              Какой банк говорить не стану, потому что если начну, то остановиться уже не смогу. Расставание было долгим и неприятным.
                              А на фоксе был тоже один проект, причем работал тоже с ораклом ;)
                            • +3
                              на собеседовании не попросили еще подтянуться 100 раз, взломать сайт пентагона, выпить стакан водки носом?
                              Я думаю, что если конторе надо "все и сразу", то значит эта контора не знает чего она хочет от специалиста, а следовательно ну ее к черту такую контору, ибо придешь а тебя так запрягут за копейки что потом и с ума недолго сойти
                              • 0
                                Не не попросили. Чего хотели знали, хотели человека, которому не требовалось бы полгода на вникание в проект.
                                А псж пока никто не отменял, если уж совсем так тяжко работать
                                • 0
                                  Я думаю что все вопросы "зубрить" не надо. Достаточно показать осведомленность.
                                • 0
                                  И что вы с такой "зарплатой" там забыли?
                                • –1
                                  Гм... 4500р. - себя не уважать. IMHO.
                                  • 0
                                    Так то оно так, только вот шел то я туда не за деньги, а за знаниями. Опять же я был студентом. Через 2 года свалил, имея приличный багаж знаний и без проблем попал на работу туда, куда хотел.
                                    • 0
                                      Так то оно так, только вот шел то я туда не за деньги, а за знаниями. Опять же я был студентом. Через 2 года свалил, имея приличный багаж знаний и без проблем попал на работу туда, куда хотел.
                                      PS что-то комменты мои съехали не понятно почему
                                  • 0
                                    имхо, учиться надо в opensource или хотя бы (для начала) просто на хороших книгах и каких=то некоммерческих проектах.

                                    Тем более в возрясте учебы программированию идеи небольших стартапов так и прут.
                              • +3
                                Ох много, вы не представляете. Моё личное впечатление от собеседований я уже один раз высказывал, скажу еще раз: люди идут на деньги, думая что их тут много, а мешки ворочать не надо. Таких очень легко отсеять на подобной базовой проверке. Реально крутых спецов, особенно в глубинке - раз, два, и обчелся. Их искать приходится долго.
                                • +3
                                  И платить соотвественно тоже придется много. Зато будет результат.
                                • +9
                                  Имя нам - Легион.
                                  • –1
                                    По моему «на должность "junior PHP developer"» этого вполне достаточно.
                                    Остальному можно обучить в процессе (если человек обучаем).
                                    • 0
                                      Почему то почти все пишут в резюме "высокая обучаемость". Реально же этого нет и в помине. Кто вот из таких вот "высокообучаемых" на досуге читает документацию или Кнута? Я таких людей не встречал...
                                      • 0
                                        Бывает, бывает. И даже часто, по крайней мере я время от времени встречал сотрудников, работающих программистами (PHP как основной язык) и в метро, или просто на досуге читающих различные учебники по PHP или реляционным базам данных, или что-нибудь типа PHP Features. Сначала немного удивляешься, но потом понимаешь, что человек просто не хочет терять время и тратит его на собственное образование и повышение уровня знаний.
                                        • –1
                                          Это уже немного другой класс людей - те, кто хочет больше знать либо для того, чтобы подороже продать себя, либо для самоутверждения. Я говорил, о людях, которые не могут пройти даже такой примитивный тест и тем не менее претендуют на должность программиста. Судя по моему 1 месячному знакомству с php еще на 3 курсе и чтением далеко не самой лучшей книги о php, такие вот горе соискатели до конца ни одной книги не прочитали.
                                          • +3
                                            для того, чтобы подороже продать себя, либо для самоутверждения
                                            а вы не допускаете мысли, что можно читать просто потому, что это интересно? :)
                                            • 0
                                              Допускаю, только это уже для совсем клинических, одним их которых, собственно и являюсь...
                                              • 0
                                                Зачем же так про любимое занятие? :)
                                        • 0
                                          ну я хотя бы приобрёл все книги Кнута :)
                                          • 0
                                            Беритесь за Пряник, %username% =)
                                          • 0
                                            Я читаю!! возьмите меня!! ну правда, мне когда делать нечего, то я читаю книжки по проектированию. на часть вопросов я без гугла не отвечу, хотя писал несколько цмсок с нуля (пробовал разную архитектуру и инструменты разработки). дело в том, что память дырявая, зато общая осведомленность позволяет быстро находить решения.
                                            • 0
                                              знаете oracle/java/c# пишите.
                                              • 0
                                                нет. я 14-летний придурок-студент, вставивший свои 5 копеек.
                                                • 0
                                                  Учитесь, приходите. Адекватные люди нам нужны. А если есть чувство юмора - вам же проще будет у нас работать.
                                                  • +1
                                                    хех, даже с вашей болезнью оценили мой сарказм.
                                                    лучше поправьте мне карму. хочу написать про использование IDE Aptana. Надо переходить на бесплатный софт, но многие не могут слезть с Dreamweaver. Мне это покоя не дает.
                                                    • 0
                                                      Помог чем смог, только вот меня на этом топике на 5 пунктов порезали :) Пусть дети развлекаются, ума то нет. Сказать ничего не могут, тупо минусовать.
                                                      • 0
                                                        Напишите-напишите. И про перенос по словам напишите, унаследованный из Эклипса, не забудьте, пожалуйста.
                                                        • 0
                                                          А можно поподробнее, про перенос, унаследованный от Эклипса?
                                                          • 0
                                                            http://forums.aptana.com/viewtopic.php?t=3358&postdays=0&postorder=asc&start=0&sid=8f0f3544f4ddc0c880c09b3d09211920
                                                            • 0
                                                              Понятно. Это - серьезная проблема?
                                                              • 0
                                                                Для меня — вполне. HTML-код писать в аптане я не смог — очень неудобно. Допускаю, что кому-то всё равно. Вопрос поиска подходящей IDE для меня остаётся открытым.
                                                                • 0
                                                                  То есть, если я вас правильно понимаю, ваш HTML-код категорически не влазит в экран по ширине (иначе враппинг не нужен)? Это не типично.
                                                                  • 0
                                                                    Ну да, особенно для больших кусков текста. Вас послушать, так враппинг вообще не нужен. У вас не мак случайно?
                                                                    • 0
                                                                      Честно говоря, да, я думаю, что враппинг не нужен. Нет, у меня не Мак, у меня Виста. Просто обычно HTML-код разделен на небольшие функциональные куски, собирающиеся вместе каким-либо темплейтным движком. Писать куски HTML больше экрана по высоте (лучше - меньше) мне кажется непрактичным - тяжело поддерживать, плохой реюз.
                                                                      • 0
                                                                        Есть такая практика: когда верстается макет, он верстается не сразу в шаблоны, а в html-файлы, которые потом на шаблоны режутся.
                                                                        Реюз тут ни при чём.
                                                                        • 0
                                                                          Видимо, ваша практика в корне отличается от нашей. Я абсолютно согласен с вами, что при начальной верстке в виде создания HTML-документа в несколько килобайт, враппинг безусловно нужен. Мне кажется, такой верстки стоит избегать любыми путями, но это уже предмет отдельной беседы. Вы убедили меня в том, что существуют процессы, при которых без враппинга не обойтись. Могу посоветовать проголосовать за соответствующий issue в трекере Аптаны, на ваш голос обратят внимание.
                                        • +6
                                          За базовый CSS и W3C респект глубокий! Почему-то большинство народа думает «Я буду программировать, а не верстать, и мне класть на всю эту фигню со стандартами и браузерами. Моё дело — сервер.». И в итоге творят такое...
                                          • 0
                                            Ненадо смешивать горячее с твердым. Пхп программист должен именно программировать серверные скрипты, а не верстать клиентский html.
                                            При нормальной организации работы весь дизайн(который и отображается по разному в разных браузерах) находиться в шаблонах которые правит верстальщик и это уже его забота как код будет выглядеть в разных браузерах
                                            • 0
                                              Надо уметь пользоваться тем, что предоставляет дизайнер, без базовых знаний CSS это практически невозможно...
                                              • 0
                                                Лично моё дело в наших проектах заканчивается на XSL. То есть PHP/XML/XSL — это я, но вот что должно получаться в итоге трансформации — задача сугубо не моя. И дизайнер у нас не предоставляет HTML/CSS, он предоставляет картинки.
                                              • 0
                                                часто бывает быстро что-то мелкое поправить в шаблоне и очень накладно отсылать это верстальщику. мне проще самому это сделать, т.к. я знаком с html и css.
                                                • НЛО прилетело и опубликовало эту надпись здесь
                                            • +4
                                              > - Расскажи что поисходит, когда в строке браузера набираешь адрес и нажимаешь Enter?

                                              Просто прелесть. Многие не знают, что там происходит :)
                                              • +11
                                                Мне как-то раз достался этот вопрос на собеседовании. Только спрашивающего угораздило добавить слова "максимально подробно". Через 15 минут где-то мы добрались до того, что запрос наконец-то пришёл на сервер. По дороге прошлись через работу Ethernet'а и ARP'а, ADSL и ATM, каскадного DNS'а и NAT'а (уже не помню в каком порядке)... Я спросил "продолжать нужно?" - мне сказали "нет?" (а там ещё много чего интересного происходит: акселератор типа lighthttpd или nginx, CGI/FastCGI/ISAPI/Apache API, затем JDBC/ODBC/etc, SQL, дальше всё это уходит в файловую систему... До сих пор не знаю - чего на самом деле хотят услышать, когда задают этот вопрос...

                                                А что касается уровней модели OSI, то всё что нужно про неё знать написано во втором абзаце Википедии: "В настоящее время основным используемым семейством протоколов является TCP/IP, разработка которого не была связана с моделью ВОС. За все время существования модели ВОС она не была реализована, и, по-видимому, не будет реализована никогда."

                                                И мне, опять-таки, неясно - зачем задавать этот вопрос: вы же не задаёте вопросы о системах исчисления в Древнем Вавилоне? С этой самой моделью OSI - та же история: из неё выросло некоторое количество реально используемых вещей (как из вавилонской системы выросли минуты и секунды), но сама по себе она представляет возможный интерес разве что для историков...
                                                • +2
                                                  Я думаю этот вопрос проверяет, понимаете ли вы HTTP. То, что вы отвечали, я думаю лишнее, хотя +.
                                                  • +12
                                                    Так без понтов же нельзя, вы что
                                                  • +11
                                                    khim, по твоим постам видно, что чел ты неплохо шарящий. но черезчур уж нудный.

                                                    ну неужели ты действительно думаешь, что в рамках собеседования на web-developer'а нужен такой ответ? тут ведь вполне достаточно обозначить лишь области смежные, а знает кандидат как устроены low-level протоколы мне вообще фиолетово. не та область. искал бы админа — спросил бы.

                                                    то же самое касается поста ниже про количество бит в байте. подразумевается конкретная архитектура с которой и знакомят в конкретном учебном заведении (вроде школа?). на том уровне, что дается в школе — начальном — им про существование и устройство десятка других архитектур знать не то чтобы не нужно — вредно.

                                                    собеседование в идеале — это еще и тест на психологическую совместимость. к примеру, мне в команду больше подойдет человек с которым я смогу оперативно решить существующие задачи в существующем контексте, а не с маньяком который будет докапываться до каждого слова коллег и этим тормозить процесс.

                                                    я не хочу сказать, что глубокие знания — лишнее. просто постоянное желание этим "блеснуть", в том числе и не в тему, несколько раздражает.
                                                    • 0
                                                      "... не была реализована, и, по-видимому, не будет реализована никогда"
                                                      Слишком категорично. Если очень часто можно встретить полную реализацию: Fast Ethernet -> Ethernet -> IP -> TCP -> RPC -> XML-RPC -> HTTP
                                                      Причем никто не стремился соответствовать OSI.
                                                      • 0
                                                        Такой схемы не видел никогда. Видел Fast Ethernet -> Ethernet -> IP -> TCP -> HTTP -> XML-RPC. А сессий при это нет и в помине. При этом уже TCP обеспечивает сессии, а HTTP может использоваться на уровне приложений. Идиотизм модели не в том, что в неё нельзя уложить реальные примеры, а в том что такое вложение толком ничего не даёт. Посмотрите на ваш пример и на модель OSI и вы поймете что тут, по большому счёту, только количество уровней и совпадает.
                                                      • +1
                                                        > акселератор типа lighthttpd или nginx
                                                        С каких это пор лайти и энджиникс - акселераторы?
                                                        • +1
                                                          С таких, что если закидать собеседника таким морем информации и задавить своими знаниями, показав, какой ты крутой, то можно и ерунды немало подмешать в получившийся кисель.
                                                          • 0
                                                            Таким образом Вы только дадите собеседующему повод капнуть глубже, чтобы понять, оговорились ли Вы, или просто не понимаете, где хлеб, а где пиво.
                                                            • 0
                                                              Ну вот khim, похоже, это до сих пор удавалось ;) А вы, конечно, правы.
                                                              • –3
                                                                Неа. Сколько типов в PHP я не помню. Но у меня есть оправдание - я последний раз с этим убожищем вплотную общался три года назад.
                                                          • +1
                                                            А с каких пор это что-то другое? Nginx изначально писался как акселератор. Пример конфигурации сайта, который передаёт все запросы бэкенду, кроме картинок и запросов, начинающихся с "/download/". - собственно первый (и последний) приведённый на сайте полный пример. Lighttpd тоже часто применяется с той же целью.
                                                            • 0
                                                              1) nginx [engine x] is a HTTP server
                                                              2) Security, speed, compliance, and flexibility — all of these describe lighttpd (pron. lighty) which is rapidly redefining efficiency of a webserver

                                                              Так считают их создатели.
                                                          • +1
                                                            Кстати, не знаю, как в России, а у нас это называется "überqualifiziert", по-русски: это если у тебя два высших образования и аспирантура, то тебя, скорей всего, не возьмут на должность Junior PHP Programmierer.
                                                            • +1
                                                              По-русски название этого парадоксального феномена звучит как оверквалифайд :)
                                                              • 0
                                                                просто в России я о таком и не слышал, в России для меня было нормально, что человек в 23 года имеет два высших образования и пишет диссертацию, а в Германии у моего шефа и большинства коллег нет и одного высшего, а у студентов получить диплом до 30 лет считается очень даже хорошо :)
                                                              • 0
                                                                напоминает сцену из фильма "Красота по-американски", где главный герой, послав к чертям мажорную контору, устраивается в закусочную :) У нас же наоборот - почему-то распространён дурацкий стереотип, что ВО должно быть даже у секретарши... :)))) Дурацкий стереотип, кстати, ну да ладно...
                                                                • 0
                                                                  когда мажор устраивается в закусочную, это называется дауншифтинг, если я ничего не путаю.
                                                          • –1
                                                            помоему лучше всё что необходимо проверять на практике... теория это дело третьестепенное
                                                            • 0
                                                              теория позволяет отсекать заведомо несведущих
                                                              • +5
                                                                Объясню это на примере матана - я теорию никогда хорошо не знал, только как применять её. В итоге я матан сдавал на 4 всегда - с практикой у меня было всё просто отлично, а вопрос по теории я даже не рассказывал. Я могу применить знакомую техонологую, но могу что-то забыть. Но если перед глазами мануал - всё освежается и работа идёт дальше.
                                                                Не говорю что совсем этот опросник плох - он напомнил мне просто эти тесты из интернета, но вот вопрос "почему php" должен быть на собеседовании. А если программист адекватен - тому чего не знает он обучится. Само собой будет работать за меньшие деньги. Если постоянно набирать профессионалов - долго искать придётся. И такой тест сдаст далекооо не каждый...

                                                                Извините... выговориться надо было... температура 39 даёт о себе знать
                                                                • 0
                                                                  >Если постоянно набирать профессионалов - долго искать придётся. И такой тест сдаст далекооо не каждый...

                                                                  Для этого такой тест и нужен :-)
                                                                  • +1
                                                                    Без хорошего знания теории вы не сможете выйти за рамки тех практических примеров, которые вы умеете. Это обычно отличает любителя от профессионала
                                                                    • +2
                                                                      У всех свои нормы :) Без теории нам по матану ставили 2, несмотря на всю крутость в практике :) Имхо, голая теория без практики тоже ничего не доказывает. А подзабыть могут и программисты со стажем...
                                                                      • НЛО прилетело и опубликовало эту надпись здесь
                                                                  • +11
                                                                    > - Расскажи что поисходит, когда в строке браузера набираешь адрес и нажимаешь Enter?

                                                                    Тот, кто знает, что там происходит, может об этом месяц рассказывать :)
                                                                    • –1
                                                                      Ну тут ведь нужно бегло пробежаться по технологиям и всё. Я так думаю. Уточнять можно "по запросу" Но там если бегло пройтись по всем технологиям (включая USB, PCI/PCI Express, DRAM, SATA, Flash и/или HDD и прочее) рассказ на несколько часов получится!
                                                                      • 0
                                                                        Это как фракталы. Берём самый крупный масштаб — рассказывать пять минут, о отправке запроса и получении результата. Берём масштаб поменьше — десять минут описываем протокол HTTP и специфику GET-запроса. Ещё мельче — полчаса рассказываем об особенностях различных веб-сервером. И так далее. Вплоть до движения электронов в центральном процессоре и специфики электронной и дырочной проводимостей.
                                                                        • +1
                                                                          думаю, мудрить не надо. Можно ограничиться тем, что браузер посылает серверу GET запрос с указанием протокола и его версии. А дальше ждет ответа от сервера. не думаю, что php программисут нужно знать про всякие "...через работу Ethernet'а и ARP'а, ADSL и ATM, каскадного DNS'а и NAT'а ".
                                                                          • 0
                                                                            Я не надолжность PHP-программиста собеседовался и вопрос был сразу задан в форме "как можно подробнее".
                                                                            • +1
                                                                              Дело в том что эти "Ethernet'а и ARP'а, ADSL..." - неправильный ответ, ведь в задании не сказано что это броузер на ПК, может быть это смартфон, к примеру. Такой ответ показывает что человек не умеет выделять главное, поэтому хороший проектировщик из него не выйдет.
                                                                            • 0
                                                                              ну, сперва обрабатывается событие onKeyDown, наверное, или onChange :)
                                                                              • 0
                                                                                Это от браузера зависит. Если это Lynx какой-нибудь то там никаких onKeyDown и onChange не случается...
                                                                                • 0
                                                                                  хотел сперва специально для вас дописать про современные приложения с событийной моделью :)
                                                                              • 0
                                                                                Вот именно, отличный способ отсеять зануд. Программист должен быть краток, как и его код.
                                                                              • +33
                                                                                вспомнил старую притчу... старик набирал учеников, всем задал по вопросу, кто-то ответил сразу, кто-то нет, а один из учеников вышел, узнал ответы, вернулся и ответил.. именно его взял старик. Не надо знать всех вещей, так как это невозможно, но надо знать где на них есть ответы и (главное!) уметь их правильно использывать. (:

                                                                                а собеседование хорошее, спасибо! (:
                                                                                • –4
                                                                                  Я не согласен с вами. Берут на работу не для того, чтобы по каждому чиху лазить в инет и смотреть как решить ту или иную задачу. На работу берут, чтобы человек мог продуктивно работать. А так получается из 8 рабочих часов такой вот "программист" будет тратить 6 на поиск и переваривание информации
                                                                                  • +6
                                                                                    А вы не встречались с таким поведением, когда "профессионалы" отказываются учить новое? Аргументируя это тем что они уже все знают о в своей области. А мир web ой как быстро развивается и в таком случае человек который через каждые 10 мин лазит в интернет может быть полезнее таких вот закоренелых "профессионалов".
                                                                                    • +1
                                                                                      Встречался. Когда в банке работал.
                                                                                      Не хочет учить новые технологии - автоматом выпадает из категории профессионалов. А человек, не имеющий базовой подготовки никак не сможет понять новых технологий, тем паче почему они лучше или хуже существующих.
                                                                                      Если человек не может написать просто outer join, он никогда не поймет, как работает оптимизатор, что такое статистика и профилирование.
                                                                                      • НЛО прилетело и опубликовало эту надпись здесь
                                                                                        • НЛО прилетело и опубликовало эту надпись здесь
                                                                                          • +1
                                                                                            В корне неверное. Посмотрите, как устроены microsoft и другие крупные компании.
                                                                                            Есть evangelist, который знает новые технологии и имеет мозг. Говорит о глобальных вещах.
                                                                                            Есть консультант. В принципе тоже самое, только мозгов/знаний/опыта меньше. Говорит о конкретных вещах.
                                                                                            Есть team leader, хорошо знает узкую предметную облать и всих подчиненных. Говорит что именно и кому делать.
                                                                                            Есть разработчик, которому уже выкатывают ТЗ и сроки. PS Разработчик и программист имхо синонимы, программист и кодер - тут уже разница есть.
                                                                                            • 0
                                                                                              Про евангелиста вы не правы. Он что-то в принципе знает о новых технологиях, на уровне примеров из MSDN'а. Мозга может и не иметь (хотя обычно имеет). Главное, что он имеет язык!
                                                                                              У консультанта же мозгов, знаний и опыта в разы больше, чем у евангелиста (если тот не бывший консультант, что бывает).
                                                                                              • 0
                                                                                                мы просто с разными людьми встречались.
                                                                                              • 0
                                                                                                Мы вроде про web-технологии говорим, да? Так вот там подход Microsoft "сливает", а рулят Google и (в меньшей степени) Yahoo! (в России - Яндекс), где такой жёсткой иерархии нет.
                                                                                                • 0
                                                                                                  в привязке к вебу действительно так. Только вот MS - №1, Oracle - #2.
                                                                                                  • –1
                                                                                                    Я наверное сейчас открою Вам глаза, но MS #1 совсем не из-за какой-то супер пупер иерархии, а еще эти люди разработали и заставляют всех пользоваться вистой
                                                                                                    • 0
                                                                                                      Никто никого не заставляет, Линуха скачать можно, ставьте и радуйтесь, никто же не запрещает.
                                                                                                      • 0
                                                                                                        Вы ноутбуки давно покупали? Они ставят Vista даже на сраные эконом модели с 512МБ ОЗУ и селеронами. Почему я должен заплатить за Vista, а потом скачивать Линуха? Мои знакомые уже на три ноутбука докупили XP, кто вернет им деньги за предустановленную на этих ноутбуках висту?
                                                                                                        • 0
                                                                                                          Ну с ноутбуками вообще вопрос не по адресу. Не хотите платить за предустановленную ОС - покупайте ноут с FreeDos или Linux. Выбор есть у вас. А обвинять MS в том, что производители ноутов стали ставить Vista, имхо глупо. У меня самого на Acer 5310 стояла Vista. Сейчас XP, процессор нормально не тянул.
                                                                                                      • 0
                                                                                                        А глаза мне открыть у вас не получится, потому что это не игра моего больного воображения, а объективный факт. Попробуйте доказать обратное, если есть желание.
                                                                                            • –1
                                                                                              и где он очень быстро развился скажем за последние 2 года? никаких скачков и прорывов технологий уже давно не было и особо не предвидится
                                                                                              • 0
                                                                                                Смотря что считать "скачками" и "прорывами". GData и Facebook API когда появились? Это то, что сходу в голову бросилось - есть и другие примеры.
                                                                                              • +1
                                                                                                Вы знаете чем профессионал от чайника отличается? Профессионалу не у кого спросить о возникшей проблеме. Вот и думайте кто лазит в инет каждые 10 минут.
                                                                                                • –1
                                                                                                  Знаю, тока вот если бы небыло таких "чайников" мы бы до сих пор в каменном веке сидели, зато бы у нас были бы профессионалы по убиванию мамонтов и заточке камней.
                                                                                                  • 0
                                                                                                    Ага, чайник во сне увидел автомат калашникова.
                                                                                                  • 0
                                                                                                    утрируя - человек не знающий где искать информацию - профессионал - ему ж спросить не у кого...))
                                                                                                    • 0
                                                                                                      зыЖ если человеку не у кого спросить о проблеме возникшей - то это не профессионал, а сам Господь Бог.)
                                                                                                      потому что как минимум есть люди которые/придумали и создали язык программирования высокого уровня, на котором пишет наш "профессионал", который (язык) в свою очередь создан на другом языке программирования - более низкого уровня - и так далее. Потому если не у кого спросить - то это не профессионал, а просто самоуверенный и самонадеянный умник.
                                                                                                • 0
                                                                                                  Ничего страшного. Если человек идет и ищет, значит представляет себе "сценарий" решения задачи и просто подбирает методы реализации.
                                                                                                  Если ищет и использует всегда только готовые решения (не поискать которые, на мой взгляд, часто бывает глупо) то это клиника (к счастью — очевидная) и отсеивается достаточно быстро.
                                                                                                  • –1
                                                                                                    Вы в каком мире живете люди? Все решает деньги, как для вас, так и для ваших работодателей.
                                                                                                    • 0
                                                                                                      если есть хорошая онлайн-документация по образцу php.net - то проблемы нет никакой. Главное, как совершенно верно было указано, понимать идеологию и теорию - то же ООП и принципы работы сетевых протоколов. А поиск синтаксиса подзабытой функции вот по такой хорошо структурированной документации больше 10 минут не займёт. Лучше теорию хорошо знать, чем каждый чих каждого конкретного фреймворка или движка...
                                                                                                    • +4
                                                                                                      полностью согласен. мой брат всегда говорит: "я умею делать деньги, и я не умею делать ничего остального. зато я знаю людей, которые умеют всё остальное делать"
                                                                                                      • +1
                                                                                                        Самый правильный и продуктивный подход. Каждый занимается своим делов, в котором он профессионал.
                                                                                                      • 0
                                                                                                        он набирал учеников, а не работников
                                                                                                        • 0
                                                                                                          прально
                                                                                                        • –1
                                                                                                          Из моего опыта собеселований:
                                                                                                          Я не прохожу собеседования, где мне на лету выдают теоритические вопросы.
                                                                                                          А почему? Потому, что почти всегда на собеседование, я иду с работы.
                                                                                                          Я устал и мысли как кисель.
                                                                                                          Хорошо когда тебе дают маленькую анкетку, а потом тестовое задание.
                                                                                                          • 0
                                                                                                            Ну и какой в этом смысл? Тестовых заданий на всех не напасёшся - и потом важно не только что человек порождает, а то как он это делает, может ли описать ход своих мыслей, понимать подсказки, etc.

                                                                                                            Самый гениальный программист, с которым невозможно норально работать в комманде обычно не нужен - нужен такой, с которым можно работать...
                                                                                                          • –2
                                                                                                            Довольно неплохие для начала тесты на http://www.certifications.ru/ (Retratech). Т.е. даже если человек их до этого и проходил с помощью гугла, то если не давать такой возможности, а заставлять все вспоминать - то получится более-менее адекватный результат.
                                                                                                            Кроме того, даже разрешая использовать поисковики, можно просто смотреть, что именно ищут - тоже дает кое-какую информацию.
                                                                                                            В общем, из всех БЕСПЛАТНЫХ онлайн сертифицирующих ресурсов - это лучший, который я видел.
                                                                                                            • 0
                                                                                                              У меня строго оборатное мнение, но проходил я там сертификацию по «HTML-программированию» (вдумайтесь только, программированию! И эти люди, как говорится...) Так вот, вопросы сумбурные, касаются давно уже устаревших с точки зрения стандартов технологий (ну то есть если бы вас спросили о разнице между PHP 3 и 4 - ну понтов-то?), код, который является правильным ответом, в основном либо не пройдет валидацию, либо просто бессмысленен с точки зрения современных практик. Много вопросов «наизнанку», когда спрашивают, что тебе не поможет для решения той или иной проблемы. Это самое «не» в тексте вопроса не выделяют, не такие гуманные. Общее мнение - тест составил какой-то «ВУЗовский» препод по информатике, диктующий свои лекции по книжке 1995 года издания. Полная дурь, отличников по его итогам у нас на фирме завернули бы.
                                                                                                              • –1
                                                                                                                Во-первых, не стоит судить обо всем ресурсе только по тесту на знания HTML. Могу только сказать СВОИ впечатления от тех тестов, которые я сдавал там.
                                                                                                                1. PHP - более-менее вменяемый тест. Особенно, если не давать себе волю отвечать на вопросы типа "в какой строке ошибка" методом копирования и запуска скрипта.
                                                                                                                2. SQL - тоже неплохой тест, как мне показалось, в нем было несколько ошибок. Но опять же, для самопроверки и проверки того, как кандидат умеет думать подходит.
                                                                                                                3. HTML - начал проходить, продолжать не стал, т.к. элементарно на многие вопросы не знал ответы, ибо на практике не приходилось встречаться с подобным. Каждый раз лазить в гугл - неохота.
                                                                                                                4. JavaScript - сложный тест. Мне понравился.

                                                                                                                Повторю еще раз свое мнение - этот тест кандидатам лучше проходить под наблюдением собеседующего. При этом желательно чтобы кандидат давал пояснения своему выбору, тогда на решение о приеме будет влиять не только итог теста, но и ход размышлений человека, что не так уж и маловажно.
                                                                                                              • –17
                                                                                                                оффтоп: кстати, поскорее бы на хабре отключили возможность анонимных некомментируемых +/- :)
                                                                                                                • 0
                                                                                                                  Пока они всё еще есть, позвольте анонимно минуснуть )
                                                                                                                  • +1
                                                                                                                    Пожалуй, даже главное не в анонимности, а в аргументированности.
                                                                                                                • +1
                                                                                                                  Тест, в котором спрашивают разницу в обработке CSS браузерами Opera 5, FF1 и IE5, нельзя назвать адекватным в 2008-м году. По РНР в принципе вменяемо. Хотя вообще говоря и тамошние тесты, и тамошние сертификаты — полная ерунда.
                                                                                                                  • –1
                                                                                                                    мы вроде как обсуждаем прием на работу PHP-разработчика?
                                                                                                                    Кроме того, любой онлайн-сертификат - ерунда, в том числе и знаменитый brainbench. Ерунда они хотя бы по той простой причине, что нет гарантии, что их сдавал именно предъявитель сертификата и если даже сдавал именно он, то чем он при этом пользовался.
                                                                                                                    Опять же, речь не идет о том, что любого человека, который пришел и размахивает каким-либо сертификатом, стоит сразу принимать на работу. Речь идет о том, что наблюдая за сдачей теста кандидатом, можно увидеть довольно много.
                                                                                                                • 0
                                                                                                                  Вспомнил 7 типов в php.
                                                                                                                  Полез смотреть на последний. Удивился.
                                                                                                                  Так и не понял разницы между undefined и типом NULL.
                                                                                                                  • 0
                                                                                                                    Разница между null и undefined вполне определенная. Только в JS. Где вы undefined в PHP нашли?
                                                                                                                    • –1
                                                                                                                      Вероятно, имеется в виду разница между $x; и $x = NULL;.
                                                                                                                    • 0
                                                                                                                      Причем тут undefined?
                                                                                                                      boolean, integer, float, string, object, array, resource, NULL
                                                                                                                    • 0
                                                                                                                      Очень грамотное собеседование. Как раз-таки, очень простые вопросы ставят кандидата в ступор. Все мы забываем о мелочах.

                                                                                                                      ЗЫ. Огромное Антону спасибо. Приму на заметку. Как раз, скоро в нашей конторе будет проходить отбор кандидата на должность php-девелопера. г. Оренбург. Следите за новостями. ;-)
                                                                                                                      • 0
                                                                                                                        PHP-программисты должны знать уровни ОСИ. Это основа основ интернетворкинга!

                                                                                                                        Если ты не знаешь сетей - то и незачем создавать движки для сайтов.
                                                                                                                        Если ты не знаешь устройства автомобиля - то и незачем садиться за руль.

                                                                                                                        Я бы добавил к этому опроснику ещё, как минимум, сокеты. А то что ж это за несправедливость? ОСИ спрашиваем, а IPC - нет? :-D
                                                                                                                        • +1
                                                                                                                          А если ты, чувак, не знаешь жизни, то и незачем вылезать из-за компьютера.
                                                                                                                          • +1
                                                                                                                            Иногда надо и вылезать. Собеседования проводить. :-D
                                                                                                                        • 0
                                                                                                                          Уровни ОСИ - это мертворождённый выкидыш комитета по стандартизации. Зачем они нужны кому-либо кроме историков, неясно в принципе. Но все остальные вопросы - вполне так себе разумны...
                                                                                                                          • 0
                                                                                                                            Например: "Что такое реляционная база данных?". Вот лично мне кажется, что одного этого вопроса хватит.
                                                                                                                            • +1
                                                                                                                              80% промычат :)
                                                                                                                              • 0
                                                                                                                                Хороший вопрос. Ответ: реляционная база данных - это такой сферический конь в вакууме. Существует в больном воображении математиков с 1969 года, когда она была предложена Коддом. За прошедшие почти 40 лет эта дурацкая затея искалечила жизнь миллионам программистов, которые вынуждены работать с таблицами, хранящимися на диске (это, в сущености, всё что реально существует в природе) используя API рассчитанный для несуществующего в природе объекта что приводит к куче головной боли и огромной потере времени. Полезна в исследовательской работе: если вы можете описать результат используя теорию множеств и вас не интересует время работы программы - то реляционную алгебру можно с успехом использовать. К сожалению на практике реляционные базы пытаются сдуру использовать в тех областях где время работы всё-таки важно отчего проистекает неизмеримое количество бед...
                                                                                                                                • 0
                                                                                                                                  Мне интересно, какого ответа от соискателей ожидает топикстартер, и как ответил бы сам. Не лезть в дебри тут совсем не получается (вот Вы - залезли в них, причём просто по верхам, не углубляясь).

                                                                                                                                  Я лично не знаю односложного (в формате собеседования) ответа на этот вопрос. Я бы не прошёл.
                                                                                                                                  • 0
                                                                                                                                    Я и не требую от людей терминов, меня бы вполне удовлетворил ответ следующего плана:
                                                                                                                                    "Ну это, ну тама есть таблицы и связи"
                                                                                                                                    • –1
                                                                                                                                      Для меня в подобных вопросах всегда проблема - понять куда копать и насколько глубоко. Как-то меня просили проверить тест по информатике для школ на предмет корректности. Проверка закончилась на первом тесте: там был вопрос "сколько бит в байте" и варианты ответов.
                                                                                                                                      Варианты такие (если не ошибаюсь):
                                                                                                                                      - 6 бит
                                                                                                                                      - 7 бит
                                                                                                                                      - 8 бит
                                                                                                                                      - 9 бит
                                                                                                                                      Я сказал что тут есть три правильных ответа (шестибитовые байты использовались на CDC 6000, девятибитовые - на PDP-10, хотя в принципе там могли использоваться и 7-битовые байты, но на практике вроде бы никто так не делал), мы это ёще немного пообсуждали и проблему проверки теста как-то решили без меня...
                                                                                                                                      • +1
                                                                                                                                        Ну в школе с такими вещами вроде не заморачиваются. А так, конечно 2*2 != 4 в троичной или четверично системе счисления :)
                                                                                                                                        • –1
                                                                                                                                          а еще в школе на ноль делить нельзя.
                                                                                                                                          Ужас, вы конекст учитывайте хоть, когда вас о чем нибудь спрашивают
                                                                                                                                          • 0
                                                                                                                                            А еще нельзя извлекать корень из -1
                                                                                                                                            • 0
                                                                                                                                              Да, нельзя. Не путайте тот факт, что i^2=-1 и извлечение корня из -1.