Пользователь
0,0
рейтинг
14 марта 2008 в 10:10

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

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 клика мышки отделяет Вас от ответа, если не нашли — мы Вас не ждем...
Антон Шевчук @AntonShevchuk
карма
490,9
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

Комментарии (515)

  • 0
    Возможно, имеет смысл составить тестовое задание (непосредственно практическое).
    В меру сложное, с установленным временным лимитом на исполнение.
    В большинстве случаев этого достаточно.
    • 0
      Тестовое задание мы уже даем на испытательном сроке, до того как допустить человека к "живым" проектам...
      • 0
        Да, Вы совершенно правы.
      • 0
        Опоздал на 2 года, но статья в топе гугла поэтому ещё актуальо…:
        в корне не согласен с этим: «Мне не нужен в отделе человек который каждые пять минут будет лазить в мануал, дабы узнать как построить цикл „for“ или отсортировать массив, или еще хуже — будет отвлекать окружающих для этой цели» — мануал должен быть всегда под рукой. Если человек знает на память функции работы с массивами, значит не умеет правильно построить SQL запрос. К примеру я знаю ф-ю array_chunk потому что как то жестко схалтурил и написал с её помощю страничную навигацию. Посмотреть ф-ю в мануале 10 сек а понять, например, суть плюсы/минусы работы с базой через хранимки — это проект, не меньше.
    • 0
      Тестовое "заданице", скорее. Типа "составьте запрос" или "спроектируйте структуру классов" или "нарисуйте UML (если умеете) классов для такой-то задачи".
    • +1
      Тестовое задание, на мой взгляд - это худшее что можно придумать для собеседованиия и выбора кандидата.
      Важен кругозор и то, как человек мыслит, а не то, с какой скоростью он может решать задачки. Лимит времени на выполнение задания - это вообще глупость. Говорить, что все должно быть в "мозгу" без использования документации - ерунда полная. Я не говорю что кандидат не должен знать примитивных вещей.

      Впринципе, если искать тупого кодера, возможно это и вариант. Но даже в этом случае сильно сомневаюсь, если же вы ищите developer'а, то, на мой взгляд, нужен человек способный видеть несколько дальше типов данных и всей этой хрени, которую вы спрашиваете.
  • –5
    Что-то низкий проходной у вас уровень, ребята) Я ни в коем разе не девелопер и уж тем более не програмист, работаю совершенно в другой сфере и девелопмент для меня - скорее хобби, чем профессиональная сфера, но я бы ответил на все вопросы, и еще с довеском. Видимо, говнопрогеров действительно уже слишком много, раз кадровые вопросы решаются подобными собеседованиями))
    • +10
      Поверь мне, большинство "программистов" засыпаются уже на первых вопросах.
      • +8
        Это не программисты, а недоучившиеся отморозки какие-то.
        Лучше пусть при таком уровне подготовки идут мести асфальт.
        • 0
          Они думают иначе.
          • +6
            Think Different!? =D
        • +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
          • –1
            А можно и онлайн ;)
      • 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.
                        • 0
                          Я и не путаю, просто первое объяснение что такое мнимая единица, которое я получил было именно таким. Это только потом начали объяснять что это не совсем так...
                    • 0
                      на ноль не только в школе делить нельзя.
                      А про байты... Во времена моего школьного возраста ещё вовсю использовались машины с длиной слова не кратной восьми. Правда их байтами не называли.
                    • 0
                      На ноль вообще делить нельзя. Хоть в школе, хоть в аспирантуре.
                      • 0
                        А что будет тому кто поделит? Накажут?
                        "Делить нельзя" это арифметика, в математике можно
                        • 0
                          Ошибка будет. А там уже смотря по ситуации. Может и так накажут, что вообще делить разучишься. Не путайте теорию пределов и обыкновенное арифметическое деление.
                          • 0
                            так а какая же все таки будет ошибка?
                            Мне казалось, что будет бесконечность. Если конечно же в числителе тоже ноля не стоит.
                            • 0
                              Бесконечность не число. А условное обозначение. Она будет под знаком предела. Но никак не в выражении, скажем, 5/0.
                  • 0
                    Как и школьная задача про бассейн с 2 трубами :)
                  • 0
                    ещё у них параллельные прямые не пересекаются
                  • 0
                    А 7-битовые байты до сих пор используются. В SMS например :)
            • НЛО прилетело и опубликовало эту надпись здесь
              • –1
                "дурацкая идея"... Мда. Вы хотя бы прочитали, что уважаемый Кодд писал, прежде чем так отзываться.
                • НЛО прилетело и опубликовало эту надпись здесь
                  • 0
                    Болею я вот и шуток не понимаю...
                    А где ссылка на википедию по поводу того, что такое сарказм? :)
                    • НЛО прилетело и опубликовало эту надпись здесь
                • –1
                  Это был сарказм вообще-то. :)
                  • +1
                    Если сарказм или шутка, имхо стоило смалик оставить. Я не раз встречался именно с такими "программистами", которые не знают кто такой Кнут, что такое НФ и тем не менее считают и считаются хорошими программистами. Да сортировка у них только пузырьком и почтовый адрес в БД строкой полностью хранится. Знаете ли, поимел много экстремального секса, получив вот такой вот проект.
                    • –1
                      А лучше просто говорить "лопата".

                      ЗЫ: это сарказм, 8)
                    • –1
                      ой, а можно узнать чем вам e-mail в одном поле не угодил?
                      • 0
                        Адрес в смысле физический, индекс, город, улица и т.п.
                        PS сразу видно - сказывается специфика работы :)
                      • 0
                        почтовый, а не электронный
                      • 0
                        возможно, наш уважаемый коллега имеет дело с офлайновыми лицами, имеющими офлайновые адреса. смайлик. это, ксати, сарказм.
                    • 0
                      А что, если не улыбнуться после шутки, она не будет смешной?
              • –2
                Доля смысла в словах khim-а есть, я тоже зачастую непонимаю нафига мне эта БД. В том смысле, что её реляционность мне вообще не упёрлась.

                Например разбейте обьект с произвольным набором полей различных типов _красиво_ на таблицы. А потом попробуйте с этим стадом таблиц поработать. Ни джоины ни фига остальное просто не работает.

                Ещё интересный момент - различные костыли типа поисковых движков, которые к базе как таковой не имеют никакого отношения, хотя (по сути) выполняют её задачи (поиск необходимых rows).

                Я конечно не ахти какой архитектор, но мне тоже зачастую кажется, что каким-то образом надо это мироустройство менять.
                • 0
                  Собственно мой проект
                  INDEX PARTITION 316
                  TABLE PARTITION 111
                  SEQUENCE 9
                  PROCEDURE 435
                  LOB 4
                  PACKAGE BODY 30
                  PACKAGE 30
                  TRIGGER 118
                  FUNCTION 318
                  TABLE 258
                  INDEX 594
                  VIEW 359
                  SYNONYM 56
                  TYPE 6
                  и это только 1 из 5 схем. Все отлично работает. Конечно это не web проект.
                  А на счет поисковых движков это вы верно сказали, только на всяких gfs вряд ли можно построить более-меннее бизнес логику, имхо.
                  • 0
                    Ну и? Какие объёмы данных и сколько QPS вот это чудо может выдержать? Какое железо потребно? Реляционная база может быть полезна когда вам нужно описать сложную модель и вас интересует корректность но практически не интересует эффективность. Железо на современном PC может обработать десятки тысяч запросов в секунду, реляционная база - дай бог пару сотен. Это - плата за удобство. Вы либо соглашаетесь с ней, либо нет. Но на практике зачастую сначала люди создают всё "по науке" в сложной реляционной базе, а потом начинают "вставать на уши", когда выясняется что у них железо нагрузку не тянет. В то время как на самом-то деле нужны в реляционной базе у них и в помине не было.
                    • 0
                      Таможня РФ довольна. Железо хорошее, но ведь и web сервера не на celeron'e работают. А нужда есть, железо всегда можно купить и помощнее. А для того, чтобы не вставало все на уши нужны грамотные админы и хорошие разработчики, которые не просто знают, что существует outer join, но и знают все тонкости своей субд. Вы уж извините, но если что-то встает на уши у вас. это только показатель вашей некомпетентности в вопросах настройки сервера или написания запросов.
                      • 0
                        А нужда есть, железо всегда можно купить и помощнее
                        Никакое железо вам не поможет обработать 10'000 QPS если вы данные сдуру засунете в нетривиальную базу.

                        Если что-то встает на уши у вас. это только показатель вашей некомпетентности в вопросах настройки сервера или написания запросов.
                        Если бы. Увы, но это показатель недееспособности реляционной модели. Если вы не знаете примерно - через какие стадии проходит ваш запрос и как устроена примерно ваша СУБД - вы никогда не добьётесь хорошей скорости. Добиться структуры которая хорошо бы работала независимо от используемой СУБД - это что-то из области фантастики. Фактически единственный способ добиться разумной скорости - это спроектировать вашу базу на уровне более низком, чем реляционная модель (на уровне реализации вашей СУБД) и потом перевести на язык реляционной алгебры (с чем тоже иногда возникают проблемы). Спрашивается: нафига нам такая абстракция, которая ничего на самом деле не абстрагирует?
                        • 0
                          Вы смешиваете понятия ER модели и физической реализации. Эффективная физическая модель всегда должна строиться на основе особенностей. пример попытки реализации БД для всех СУБД я наблюдал уже.
                  • 0
                    А как побороть то, что ломается обновление materialized view, если между репликой и мастером сетка минут на 5-20 пропадает? И как объяснить, что после перевоза реплик-серверов на новую площадку ( неск. часов простоя) те же самые вьюхи прекрасно поднимаются сами, без пересоздания?

                    И почему время от времени ломаются очереди (queues), и хотя в dequeue процедуре стоит dbms_aq.FIRST_MESSAGE, а в табличке явно есть записи, процедура не возвращает ни одной строчки?
              • –1
                Идея не была дурацкой. Друакцой была идея описывать подобным образом устройство мира. Как математическое описание - годится, вот только либо всё работает меееедленно-меееедленно либо нужно понимать как реально внутри там в Oracle всё это дело хранится и как ваши запросы оптимизируются и обрабатываются. Но если мы спускаемся на этот уровень, то нафига нам все вышележащие уровни абстракции?
                • –1
                  А вы думаете зачем нужны разработчики БД? Именно для того, чтобы знать, что где как и по сколько.
                  • 0
                    Да, но если вы откажетесь от фундаментальной (и безумной) идеи о том, что мир можно (и нужно) описывать в рамках реляционной алгебры, то вы немедленно переносите СУБД с уровня фундаментального средства на уровень примерно Flex'а и Bison'а. Да - полезные игрушки. В определённых (и довольно редких) ситуациях. Не более того.
                    • 0
                      Я вообще не пойму, с чего вы взяли, что я предлагаю все описать весь мир а терминах реляционной алгебры?
                      А для высокопроизводительных приложений свой инструментарий, уж извините, должны знать на 100%
                • НЛО прилетело и опубликовало эту надпись здесь
  • –6
    Хорошего разработчика, конечно, так не найти, но для быдлокодера, который только и должен выдавать тонны требуемого PHP кода, вполне.
  • 0
    По поводу задачи на сообразительность (про то, как поменять местами А и В). Там какого типа переменные? ПХП вообще не знаю, просто задачка заинтересовала. :)
    • 0
      integer, задачка не привязана к языку программирования...
      • +1
        Привязана. Решения для языка Python, к примеру:

        (a, b) = (b, a)
        • –1
          Тут всё равно промежуточная переменная :)
          На php так же можно: list(a, b) = each(Array(b, a))
          • 0
            Тут всё равно промежуточная переменная :)

            Где? Как называется? Давайте я ещё так то же выражение запишу (я предпочитаю выражение со скобками - читается проще - но это тоже корректный python-код):

            a, b = b, a

            Вы всё ещё видите тут промежуточную переменную? Тут можно глубоко и наглухо уйти в вопросы семнтики.
            • 0
              Справа запаковка кортежа, слева распаковка. Создается промежуточный кортеж, по крайней мере теоретически, хотя, возможно, такие действия оптимизированы.
              • 0
                Гррр... Ну сравните с "классическим" ответом:

                a = a + b
                b = a - b
                a = a - b

                Согласно вашей логике тут создаются три временные переменные (по одной в каждой строчке). Так почему это решение лучше того, где создаются две временные переменные?

                Да, есть решение совсем без временных переменных:
                a ^= b
                b ^= a
                a ^= b

                Но требовать его от соискателя - это уже перебор IMHO... Не все даже про существование оператора ^= знают, тем более не знают как его с пользой применить...
                • 0
                  Ну, вот требовать это от соискателя или нет, каждый сам решает :)
                • 0
                  в первом варианте за переполнением не следят
                  а если следить, то лучше уж дополнительную переменную использовать
                  • 0
                    Целые числа в компьютере образуют кольцо, там что за переполнением следить и не нужно. Но это уже факт для продвинутых программистов...
                • 0
                  не расскажете что ^= делает? )
                  • 0
                    Всё понял )) простите..
                • 0
                  По-моему, решение этой задачи вообще не стоит требовать. Задача дурацкая, из разряда про лампочки и крышки люков — она никак не характеризует соискателя.
                  • 0
                    Почему бы не дать человеку подумать над интересной задачей? :-)
                    • 0
                      Она неинтересная — в смысле, либо в башке щелкнет, либо нет. Или, что еще более вероятно, он просто ответ знает.
                      • 0
                        Так ведь от человека и требуют, чтобы он ответ знал :)
                        • 0
                          Дано:

                          $a = 3;
                          $b = 10;

                          Задача: необходимо поменять местами значения переменных без введения дополнительных переменных.

                          Решение:

                          $a = 10;
                          $b = 3;

                          С уважением,
                          Капитан О.! ;)
                • 0
                  Задав такую задачу, можно попробовать понять учился ли человек на программиста. Она из области фольклора, и, скорее всего, человек в профильном ВУЗе с ней бы столкнулся.
                  • 0
                    Я в профильном вузе не учился, но ответ на эту задачу знаю. Даже оба (и с +, и с ^=). Я даже знаю как на асме значение 2х регистров одной командой процессора поменять. Вот только ИМХО PHP-прогеру эти знания без надобности.
                • 0
                  Зато про XOR то уж должны знать.
                  В школе не догадался то классического способа с суммой и вычитанием, и решил через xor. =)
                • 0
                  a^=b^=a^=b;
          • 0
            each лишний, то что это переменные не обозначено, строка не закрыта
            list($a, $b) = array($b, $a);

            тут промежуточная переменная используется не явно
            • 0
              Да, спасибо.
              По идее, промежуточная "переменная" всегда будет. Даже в вышепреведенном
              a ^= b.
              • 0
                промежуточная, но не новая - под нее не будет выделяться дополнительная память
            • 0
              Переменная - именованная ячейка памяти. Выделение памяти - не есть переменная.
              • 0
                не придирайтесь к понятиям - смысл перестановки без использования промежуточной переменной именно в том, чтобы не использовать лишнюю память
                • 0
                  Это не возможно в принципе. Вызов любой функции есть запись адреса в стек. Неиспользование памяти возможно только в ассемблере при использовании регистров.
                  • 0
                    Самое смешное, что оттуда у задачки уши и торчат. Практически нигде больше эта задача практического смысла не имеет. А вот когда у тебя четыре регистра и обращение к памяти занимает умопомрачительное количество тактов, тогда и начинаешь над этим задумываться. В текущем опросе эта задачка смотриться чужеродно.
      • 0
        но "привязана" к типу.
        Со строками будут проблемы.
      • 0
        Элементарная логика:
        a = 3;
        b = 10;
        a = b-a;
        b = b-a;
        a = b+a;
        В результате а = 10, b = 3
        • 0
          ээ... Если 3 и 10 посчитать по вашему решению, то будет 14 и 7..
          • 0
            После первого присваивания: a == 7, b == 10.
            После второго присваивания: a == 7, b == 3.
            После третьего присваивания: a == 10, b == 3.

            В чём проблема?
            • 0
              Хм.. Сижу и пытюсь понять как я 14 и 7 получил O.o
              Извиняюсь, не выспался.. :)
      • 0
        а... ну тогда всё понятно :)
      • 0
        можно и string, пример на js:
        a = "раз";
        b = "два";
        a = a + b;
        b = a.replace(b,"");
        a = a.replace(b,"");
        • НЛО прилетело и опубликовало эту надпись здесь
          • НЛО прилетело и опубликовало эту надпись здесь
          • 0
            Прошу прощения поторопился, но вот так работает:

            a = "раз";
            b = "ни разу";
               document.write(a + ", " + b + "<br/>");
            a = a + b;
            b = a.substr(0,a.length - b.length);
            a = a.substr(b.length,a.length - b.length);
               document.writeln(a + ", " + b);
          • 0
            Плюс за наблюдательность )))
            • НЛО прилетело и опубликовало эту надпись здесь
              • 0
                JS я использовал для наглядности, а объекты-обёртки даже при банальном сложении создаются, но задача выполнена.
                За плюсик пожалуйста )
  • 0
    - Знаешь что такое уровни модели OSI? Назови хотя бы их количество. (это вопрос на "пять")
    7 штук, модель оказалось слишком сложной и в реальности (тцп/ип [кстати, ответ на следующий вопрос!]) используется 4 уровня.
    • 0
      В реальности этих уровней может быть сумасшедшее количество. Если использовать разные технологии типа PPPOE, GRE и прочее. 7 уровней модели OSI никогда не использовались и не используются людьми, которые реально разрабатывают сети: для одних целей это слишком грубая модель, для других - слишком подробная (знаете сколько на самом деле уровней только в 802.11? а OSI всё это запихивает в один второй уровень). Модель OSI используется только в академических институтах чтобы придать всему процессу больше наукобразия, но на практике от неё больше вреда, чем пользы - так что чем скорее вы об этом уродце забудете - тем лучше...
      • 0
        Да я её и не сильно помню :) Знаю, что она на практике ни разу не применялась. Вреда, думаю, от неё нет — общее теоретическое представление на её основе можно получить. А на практике и так умные люди все делают, им OSI ни куда не упирается :)
    • –1
      вполне разумный ответ, я признаться их и не помню, но для меня главное понимание человеком основ, и я буду уверен что мне не прийдется заново строить фундамент его знаний (кстати по протоколам и по модели OSI и стеку TCP/IP в моем универе гоняют целый семестр на большинстве специальнсотей)
      • +2
        Ok. Если вы такой умный - может объясните что и на каких уровнях у вас происходит если вы подключились к провайдеру через PPPOE, но тут выяснилось что Intenet вам отрубили за неуплату и вы зашли на Хабрахабр через NSTX ? Там как раз семь уровней получается :-)

        Ну неприменима эта модель к реальной жизни, неприменима!
        • 0
          Просто чтобы вы могли представить - что там происходит. TCP пакет (верхний уровень) заворачивается в IP пакет (второй сверху уровень), который заворачивается в UDP пакет (третий уровень), который заворачивается в IP пакет (четвёртый), дальше это всё дело закручивается в PPP-пакет (уже пятый), тот - в Ethernet пакет (шестой) и, наконец, всё это хозяйство засовывается в провод с использованием, к примеру, 8B10B NRZ (седьмой уровень). Это если у вас Ethernet проводной. А если он беспроводной - там ещё уровни появляются (навскидку не помню точно сколько и это зависит от стандарта). А если вы ещё поверх этого подняли туннель для IPv6...

          Ну и где здесь модель OSI и как она вам поможет?
    • 0
      Совсем забыл спросить: ну как, берете? :)
  • +1
    Было бы интересно почитать подобную статью по .net собеседованию.
    Может кто нить напишет?
    • 0
      И по java!
      • 0
        О java-собеседовании читай тута
        • 0
          Спасибо!
          • 0
            Скачайте certification guide и не парьтесь. А лучше и экзамен сдайте. Вопросов не возникнет ни у вас ни у вашего работодателя.
            • 0
              Давно планирую...
  • 0
    насчет типов я бы посторил ) у меня даж стринг свой )
    ___
    а так только с оси я не знаком, да и нахрен )
    я куда не поступал меня в основном почему то всякой туфтой стпрашивали )
    очень смешные тесты. я аж сам им говорил, что это депрекатед уже, а вот тут кто так пишет, тому надо руки оборвать.
  • НЛО прилетело и опубликовало эту надпись здесь
  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      Не поверите, последнее время больше 7 вопросов задавать не приходиться...
      • НЛО прилетело и опубликовало эту надпись здесь
        • +2
          хотя бы то, что у него пока не было причин это узнать
          • НЛО прилетело и опубликовало эту надпись здесь
            • 0
              боюсь что для junior специалистов наличие портфолио - скорее исключение из правил. а многие еще стесняются показывать работы сделанные просто так (кстати зря)
        • 0
          ну всё же странно, если программист на PHP за несколько лет работы не удосужился узнать, что такое php.ini

          как и идея хирурга, который не очень в курсе где сердце и мотивирует это тем, что "ну вы мне пальцем покажете если чо"
  • 0
    "Назови по памяти функции для работы с массивами, строками" — все назвать? :)
    • –1
      Все не надо, хотя бы пять... для junior'а этого вполне хватит...
      • 0
        По моему Вы всё таки слишком много времени уделяете теории. Это важно, я не спорю, но практика в данном случае покажет всё таки больше.
        • –1
          Практика будет на испытательном сроке ;)
      • +2
        Про функции на память порадовало, конечно.

        Вот смотрите — я использую Pascal/Delphi более 13 лет точно. Написано туева хуча всего, в том числе достаточно глобального. И спроси меня сейчас некто — "а перечислите мне на память методы класса..., функции для работы с..." — пошлю в пешее эротическое. Потому как не помню, что не мешает мне их успешно применять по памяти. Такая ситуация называется "неявное знание" — когда человек не может словесно сформулировать инструкцию для того, что он делает. Плюс никто в здравом уме не будет держать в "оперативной памяти мозга" список функций для работы чего-то с чем-то, за исключением периода времени, когда он учится или готовится к подобному собеседованию ;-)

        p.s. как хорошо, что я никогда в жизни не ходил на собеседования...
        • 0
          очень сильно поддерживаю, сам такой
        • 0
          Попробовал припомнить методы класса String в джаве... Навскидку - пять штук.
        • 0
          здесь ищут не практиков, а теоретиков. чтобы можно было поговрить о модели ОСИ за чашечкой чая, пока нормальные кодеры просто садятся и пишут (используя гугл и документацию)
    • +1
      для PHP их можно только заучить наизусть, или воспользоваться поиском на php.net — с их-то нотацией :)
      то у них функции пишутся слитно, глагол впереди: addslashes() или setlocale(),
      то вдруг глагол в конце: wordwrap()
      потом вдруг через подчёркивание, глагол снова впереди: convert_cyr_string(),
      то вдруг глагол оказывается снова в конце: number_format() или html_entity_decode()
      • НЛО прилетело и опубликовало эту надпись здесь
  • 0
    Мне кажеться после всяких тестов, нужно просто посмотреть на код !
    он все покажет .
    я более 4х тел постояно распутываю чужой код ) , и реально много можно сказать, подойдет ли человек на работу или нет.

    А так спрашивать по функциям в пхп имхо дурость, так как все можно в справке посмотреть, просто мне кажеться у програмистов срок примерно 3 года или он в теме будет или нет(качательно всех языков не обязательно пыхпыпха) .
  • +3
    По-моему, тест сложный. Я бы не прошел, если бы передо мной был бы только лист белой бумаги в клеточку и шариковая ручка. Я привык решать реальные задачи, которые сам себе и ставлю, анализируя ТЗ или ту или иную идею. Наизусть помнить столько всего просто нет возможности...
    • 0
      Когда вы ездите на машине, вам тоже нет возможности помнить наизусть, какая педаль находится с какой стороны, за что какая кнопка отвечает, как называется та хреновина под правой рукой, и в какой момент ее надо дергать туда-сюда? И каждый раз при повороте на перекрестке, вы ставите себе задачу, анализируете, смотрите мануал и тогда уже совершаете необходимые действия? Так ездить конечно возможно, но извините, вы крайне неэффективный разработчик.

      Тест в топике настолько наипростейший, что я бы не стал даже на основании его полного и бойкого прохождения по всем пунктам как либо положительно судить о разработчике. Все равно что у кандидата в пилоты формулы-1 спрашивать сколько колес и передач у автомобиля.
      • 0
        Каждый раз на повороте на перекрестке я тщательно анализирую ситуацию на дороге и принимаю решение. Что, кстати, и Вам советую.
        • 0
          Да, очень удачный метод полемизирования - вырвать одну фразу из общего контекста и ответить лишь на нее, опуская общий смысл.
        • +1
          Лезете в мануал? =)
      • 0
        > Тест в топике настолько наипростейший, что я бы не стал даже на основании его полного и бойкого прохождения по всем пунктам как либо положительно судить о разработчике.

        Некоторые вопросы пожалуй действительно слишком просты. Но если чел сходу называет все 8 типов данных это однозначно опытный девелопер. Естественно, с тем условием что он НЕ ЗНАЕТ какие именно вопросы будут на собеседовании.
    • 0
      Можно нескромный вопрос. а стаж программирования какой? И какая должность?
  • 0
    Вообщим, если прочитать все эти комменты, то можно устроиться на работу PHP developerом =)
    Имхо, все вопросы из университетской программы асушников на уровне 2ого курса. Не знаю, что за дуралеи не могут ответить на Ваши элементарные вопросы =\
    • +1
      Вообще-то не во всех университетах PHP в программу входит.
    • 0
      полно дуралеев, шлющих пачками резюме, с "опытом работы на PHP". спросишь что такое ссылки (&) - это те по которым в интернете переходить можно?
      • НЛО прилетело и опубликовало эту надпись здесь
        • 0
          что то тут совсем комментарии посъезжали...я имел ввиду $a = &$b, а не побитовое И
    • НЛО прилетело и опубликовало эту надпись здесь
  • +2
    личное имхо
    всегда поражался вопросов типа:
    1."Почему PHP": зачем его задавать если человек пришел на конкретный язык!!! этот вопрос логичен и уместен когда чувак пришел просто програмить и заявляет, что он будет делать все на php, а вам интересно почему именно на нем,
    2. "на память вспомить функции": тоже как по мне просто тупой вопрос.. зачем мне их помнить, если у меня под рукой мануал есть.. кнешно т.к. я шас именно работаю за php я их помню, потому что каждый божий день их юзаю, а если я пол года не программил?? да я забуду их и не покраснею... главное знать где искать! Впринципе понятен смысл этого вопрос - чтоб просто узнать работает ли человек с php или просто слушал о нем, так это можно просто так влоб спросить "когда ты сидел за этим языком последний раз? "
    • 0
      второй пункт смешной у вас :)
      Получается пришел чувак на вакансию программиста, а код уже пол года не писал, перед собеседованием не готовился. Пришел так и сказал: "Я мегакрут, только не помню нихрена. Готовиться было влом, но вообще то я профессионал. Возьмите меня!"
      • 0
        а что, на работу только профи берут?? понятное дело, если чувак идет на тим-лидера, то я думаю, что ему свои вопросы задают (и не будут у него просить назвать пару строковых функций), а есть и просто когда берут на работу человека, а не "машину для производства"... даже если он и пол года не программил, то зачем ему тратить свое время на повторение это, если его не возьмут на работу, лицо там просто не понравится и все... а вспомнить все фукнции и как что делаеться в конекретном языке, я думаю что ему недели хватит... а логическое мышление и т.д. что нужно будет ему - он и так или знает, или не знает.. вот что нужно узнавать у человека...
        опять же, это мое личное имхо...

        я считаю, что все такие собеседования, на которых не спрашивают в общем с чем ты знаком, а хотят конкретики вплодь до написания кода - это все взято с больших компаний, на которых ты - как офисный планткон или машина для работы, а не как человек... мне как-то на таком же собеседовании потом сказали "а накатай-ка код, мы для примера хотим посмотреть.."... блин, мне нужно 24 часа на этот код потратить за который мне никто не собирается пока платить!!! и даже после того как все написано и работает они рассказывают, что у меня php-ный код открывается не " ", а " ". Ну пипец просто, нашли к чему доебаться (извините, по другому и не скажешь)...

        когда я пришел на работу на которой уже работаю не первый год спросили "Имя, где я учился, и вообще просто посидели и пообщались чтоб узнать что я за человек"... а потом уже на ИСПЫТАТЕЛЬНОМ СРОКЕ смотрели что я умею, что пока нет и как я умею учится...
        вотъ
        • +1
          Просто вам повезло. Однако большинство больших компаний рассматривают разработчиков именно как рабочий инструмент. Поймите, ген. директора не интересуют душевные переживания рядового программиста и красота кода. Главное чтобы заказчик был доволен.
          • 0
            Бедные большие компании. Они и не подозревают о собственном глубоком структурном кризисе. Особенно те, в которых сохраняется такой "морской" подход к сотрудникам.
            • +1
              Бедные программисты больших компаний, живущие в дорогих домах и разъезжающих на дорогих автомобилях, они даже не представляют в какой плохой фирме они работают. Но когда они это осознают, оня обязательно уволятся и будут работать за еду.
              • 0
                Программисты в больших компаниях за еду не работают, но и на Бентри не катаются. И многие в конечном итоге сбегают туда, где от них хотят чего-то кроме тупого выполнения инструкций.
                • 0
                  На бентли конечно не, Mercedes ML, Subaru Impreza. Ну это смотря какие компании. Что-то я слышал, чтобы кто-то жаловался. У нас вот например машин дешевле 15000$ нет.
                  • 0
                    Тут интересно другое - сколько нужно работать у вас программисту чтобы заработать на Subaru Impreza, ну или хотя бы $15000?
                    • 0
                      Смотря какой у него уровень и как работать станет. В принципе как везде. Опять же проект раньше сдал - денег больше получил. При нормальном уровне и желании можно и за год купить. Без старания и мозгов можно никогда не заработать. Хотя з/п у нас далеко не самые высокие.
            • 0
              Вы даже не представляете, что снится Балмеру, Гейсту и Ларри Пейджу. Они прям в холодном поту просываются.
          • +2
            вот это и расстраивает... зато в той компании, в которой вот так я буду работать (тфу-тфу-тфу) как офисный планктон, тогда как пробьет 6 часов, я встану и уйду домой.. и хрен я больше сделаю, чем успею за оффициальное время... а вот на той компании, которая ко мне как к человеку относится - я и бесплатно переработаю и на ночь останусь, если действительно надо будет )))
            • –3
              А оно вам надо? У западником вообще крайне негативное отношение к такому вот сидению после работы. Если ты сидишь => не успел сделать работу, за которую тебе платят, вовремя. Значит тебя можно либо уволить либо понизить зарплату. Имхо очень разумный подход, который заставляет человека хоть как-то самоорганизовываться. Особенно учитывая нашу широкую русскую душу и советский менталитет.
              • 0
                "широкую русскую душу и советский менталитет." :))) что верно-то верно...
                но у меня часто бывает что мне днем вот не хочется работать и все.. ну не идет... + хочется(надо) выйти днем с другом встретиться ... зато вечером посижу и сделаю то что не сделал днем... может лучше стоит смотреть на конечный результат ?? )))
                • 0
                  Стоит. Но не во всех компаниях есть возможность удаленно работать и оставаться по вечерам. И обычно так именно в крупных компаниях. Вот и все, что я хотел сказать
              • 0
                Странно - я не один год проработал в западных компаниях и нигде вот такого вот негативного отношения не замечал. Слышал - да, но на себе - не замечал.
                • 0
                  Опять же повезло. Особенно это у немцев это развито.
                  • 0
                    Почему повезло? Я просто не хотел (и не искал) работу "винтика". Не обязательно у немцев - у IBM тоже такой подход практикуется, а это не немецкая компания ни разу...
                    • 0
                      Винтики из MS и Oracle что то не сильно жалуются на жизнь. Всегда обеспечены бесплатным лицензионным ПО, хорошей заработной платой и т.п.
                      А маленькие конторы можно найти и на западе. Я же говорил о работе в действительно крупных компаниях.
              • 0
                По-моему требование к программисту приходить в 9 и уходить в 6 - извращенный садизм. В западных компаниях была такая тенденция раньше, сейчас тенденция обратная.
              • 0
                Творчество, творческий подход, вдохновение... Это все не по расписанию при ходит...
                • 0
                  Можете не поверить, но начальникам глубоко положить на ваше творчество, вдохновение и подход. Они деньги вам платят за результат, а не за творческие метания. Пора бы уже вырасти из детских штанишек.
                  • 0
                    Мои штанишки уже далеко не детские, а вот тем, кто думает, что миллион обезьян за печатными машинками напишет войну и мир стоит за свои штанишки обеспокоиться, они вполне могут сесть в лужу с таким подходом.

                    Многие современные большие и не очень компании практикуют более человечный подход к людям и это приносит свои плоды. Надеюсь время хорошенько накостыляет оставшимся закостенелым божкам со снобизмом взирающих вокруг и считающим, что за деньги могут получить все и сейчас.
                    • –1
                      Дискуссия закрыта. Говорить не о чем.
              • 0
                Пример навскидку - в фирме Intel у программистов довольно свободный график afaik. Главное - выполнить заданный объём. Когда ты его делаешь - никого по большому счету не волнует. Вполне нормальная ситуация, когда программисты только к 10-11 подтягиваются, а уходят в 8-9 вечера. Так что не надо про западников.
  • 0
    ненавижу собеседования. глупые вопросы, я устраиваюсь программистом а не журналистом.
    так что если надо проверить мои знания то дайте тестовое задание, а не просите меня рассказать, да еще и с выражением про программирование..
    часто так и в школах, институтах бывает, люди которые умеют хорошо объяснять получают хорошие оценки, а те кто действительно соображают низкие, тока за то что не умеют достаточно хорошо объяснить.
    • +2
      Нет ясности в голове - нет ясности и в ответах. Я постоянно консультирую нашу девочку по подбору персонала, что такое xml, ООП, С#, Java, Oracle и т.п. И она почемуто меня понимает, несмотря на то, что учится на 4 курсе химического института.
      Действительно знающий человек может объяснить на пальцах так, чтобы понял даже сантехник. но это только мое мнение, сложившееся годами.
      • –1
        ну вот и возьмите эту девушку на роль php программиста.
        • +3
          Обиделись? Зря.
          Контора - золотой партнер Oracle. Нет у нас php, да и не так вы поняли, что я хотел сказать. Если человек не может объяснить что-то => он это не до конца понимает. Только и всего.
          • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      Неумение четко выражать свои мысли хотя бы словесно порождает сомнение в способности четко выражать свои мысли в коде. А плохой код даром никому не нужен. Как и его автор.
      • –1
        возможно и порождает сомнение, но 1ое не обязательно означает 2ое. таким же темпом можно сказать что если человек плохо выглядит, значит он плохой программист.
      • 0
        Когда я еще работал, был у нас в отделе парень. Аутист. Не здоров от рождения. Он за неделю делал работу всего отдела. И платить ему не надо было много. Начальник так и делал.
        • 0
          Имхо не пример. У него просто проблемы с взаимодействие с окружающим миром, поэтому и не было связности в разговоре. А начальник, вы уж извините мой французский, гондон.
  • +1
    list($a, $b) = array($b, $a); =)))
    • НЛО прилетело и опубликовало эту надпись здесь
      • 0
        Проблема в том, что никто толком не знает как работает интерпретатор PHP :) Не потому что это знание недоступно, просто никого это не парит, как оно там работает :)

        А в идеале могло бы выглядеть так:

        push ax
        push bx
        pop bx
        pop ax
      • 0
        Проблема в том, что никто толком не знает как работает интерпретатор PHP :) Не потому что это знание недоступно, просто никого это не парит, как оно там работает :)

        А в идеале могло бы выглядеть так:

        push ax
        push bx
        pop bx
        pop ax
        • 0
          Стек юзаете, это тоже память. К тому же гораздо дольше чем все сделать в регистрах классическим способом.
          • 0
            Ну привет. Работа со стеком - самая быстрая операция по работе с памятью. А через регистры классическим способом (add/sub) Вы флаги поменяете, т.е. обмен через регистры надо будет в pushf / popf завернуть.
            • 0
              А про неизменность влагов условия не было. ;) Так что никакие пуши/попы не нужны.
        • 0
          два раза подряд неправильный код

          а всё из-за неправильно выбранного инструмента...
  • +1
    Я думаю, что для полноты картины было бы интересно видеть название компании или, хотя бы, посмотреть на проекты, которые сделали люди, получившие положительный ответ после прохождения данного интервью.
  • 0
    Да, с программистами на php есть напряженка, но вопросы как-то уж слишком легкие, для меня куда важнее посмотреть на код человека и на его общую грамматность.
    • 0
      грамотность превыше всего! ;-)
      • 0
        Буду ставить смайлы тогда. Или слова в кавычки брать.
  • НЛО прилетело и опубликовало эту надпись здесь
  • +1
    Бедные господа работодатели. Нельзя быть такими жадными. На настоящего разработчика у вас все-равно никогда не хватит денег. Не мучайте молодежь. Берите молодые ростки и прививайте корпоративную культуру - они будут лояльны и благодарны, и сделают много хорошего для вас. Настоящий разработчик от вас рано или поздно все-равно уйдет.

    Бедные господа программисты. До каких пор вы будете терпеть эти издевательства? Поднимите голову от клавиатуры, посмотрите вокруг - в мире столько возможностей! До каких пор можно работать за зарплату?

    Я знал одного великолепного прогера - просто маниак! Сидел по 24 часа (в прямом смысле - ел таблетки, чтобы не спать), кодил молниеносно. Но единственное, чего он не мог понять, так это откуда в Интернете деньги... Жалко его.
    • 0
      1) Работодатель берет молодого, молодой возмужал и ушел. Компания в заднице. Компании неприятно.
      2) Программист поднял голову, ударился в развлечения. Уволили. Программист в заднице. Программисту неприятно.

      Все должно быть в меру. Опять таки в небольших конторах трудно получить большой опыт. В крупных трудно работать. Просто каждый решает сам кем быть и где работать.
      • 0
        Сразу виден в вас представитель компании, иначе Вы бы в п.2 такого не написали:)

        Ваша ошибка в том, что считаете программистов недееспособными. По Вашему программист способен только на то, чтобы выполняя команды начальства заставлять интерпретатор выполнять команды языка программирования?

        Почему программист возмужал и ушел, а не остался? Это ошибка компании. Не смогла удержать. Компании не приятно осознавать то, что она не привлекательна для возмужавшего программиста. Компании проще об этом не думать.

        Или же просто в этой компании возмужавшему программисту и делать-то нечего? Может эта компания - просто дешевый ляпило сайтецов для палаточников? Тогда и нечего рассчитывать на профи. Студент - единственный возможный работник этой компании. И надо быть ему благодарным, что вообще прочел объявление о вакансии.
        • 0
          Да, я представитель компании, но это не меняет моего отношения к окружающим меня людям. Я не люблю тупых программистов, которые считают себя мегакрутыми, не представляя из себя ничего. В этом топике, такое ощущение, собралось много 14 летних идиотов, которые нехрена не понимают, но вставляют свои 5 копеек.
          Почему возмужал и ушел - причин может быть много. Но главной, я считаю, остается узкая направленность компании и работы. Через год-два надоедает делать однотипные проекты. а другого компания предложить не может.
      • 0
        Извините, кажется обознался - Вы не представить компании :)
        • 0
          Смотря что вы имеете ввиду. Контора большая и хорошая. Я ведущий эксперт.
  • 0
    А не ужели программист должен знать этот пункт " - Опыт работы с различными CMF/CMS?"
    Нормализация, денормализация - существует, если мне не изменяет память 5 нормальных форм, сомневаюсь что все используют 5 нормальную форму
    • –1
      БКНФ вполне достаточно.
      • –1
        Кто то несогласен? Давайте обсудим, а вот так ставить минус имхо тупо.
        • +1
          А это еще тупее.
          Ты хоть пукнул бы, милый. Аноним трусливый.
    • 0
      Я думаю, что на практике никто не использует 4ю и 5ю нормальную формы - это больше из области теории. Да и вообще в больших проектах приходится денормализовать БД для повышения быстродействия. Имхо, неплохо сначала проектировать БД в BCNF, потом прикинуть, где могут возникнуть проблемы с производительностью при больших объемах данных и денормализовать базу.
      • 0
        Вы уж выбирайте - вам скорость или база данных. Эти вещи плохо совмещаются.
        • 0
          Неужели ни разу не получилось объединить эти 2 пункта?
          • 0
            Почему же - получалось. Но как правило путём отказа от "высокой науки" и тупого продумывания тракта, через который проходят запросы. Это уже не реляционная алгебра - это тупое использование системы хранения деревьев на диске с не очень удобным синтаксисом обращения к ним...
            • 0
              Ну естественно. Я это и пытаюсь донести. Странно что вы до сих пор этого не поняли. Каждый занимается узким куском работы, которую он делает от и до. А не дебил, который не представляет, что такое ООП и не может слепить базу из 5 таблиц.
              • 0
                вы вот так вот сходу только что оскорбили примерно 5-5,5 миллиардов людей...
                • 0
                  Пусть занимаются своим делом, а не понижают общий уровень ийтишников.
                  Другой вариант выйти из категории идиотов путем прокачки собственных мозгов.
                  • 0
                    они и занимаются своим делом. и большинство из них не имеет представления не только о том , что такое ООП, а и о многих других вещах. А некоторые из них даже и компьютер в глаза никогда не видели. И кстати говоря, без этих самых, как вы выразились, дебилов, вам бы либо есть было нечего, либо пришлось бы вспоминать, что значит копать огород и выращивать скот.
                    кроме того - знание ООП - это не встроенное с рождения качество человека. Все когда-то начинали и учились. В вашем случае это, конечно, не так - вы таким и родились. ;)