Pull to refresh

Comments 22

Скажите пожалуйста, дает ли подобный сертификат реальные преимущества при устройстве на работу в России и за ее пределами?
И, если я правильно понимаю, вопросы, по сути, на знание документации, то есть наличие такого сертификата никак не отражает способность человека программировать?

P.S.
Забавно, тестируют людей на знание документации, в которой местами нет даже логики порядка передачи аргументов в функции…
Скажите пожалуйста, дает ли подобный сертификат реальные преимущества при устройстве на работу в России и за ее пределами?
За рубежом небольшой бонус есть, т.к. там понимают что это за сертификат. В россии нет. Но это опять же, относится только к вакансиям на среднего программера. На топ уровне этот сертификат преимущества не дает.

И, если я правильно понимаю, вопросы, по сути, на знание документации, то есть наличие такого сертификата никак не отражает способность человека программировать?
А что такое «способность программировать»? Есть, например, вопросы на паттерны. Есть вопросы «что даст такой-то код при выполнении».

Забавно, тестируют людей на знание документации, в которой местами нет даже логики порядка передачи аргументов в функции…
Так потому и тестируют. Была бы логика — тестирования не надо было бы, точнее достаточно было бы 1 вопроса. А раз логики нет, то надо тестировать, иначе как Вы код будете писать? В мануал лезть каждые 5 минут?
Спасибо за ответы!

А что такое «способность программировать»? Есть, например, вопросы на паттерны. Есть вопросы «что даст такой-то код при выполнении».


Согласен, довольно абстрактный вопрос задал.

Так потому и тестируют. Была бы логика — тестирования не надо было бы, точнее достаточно было бы 1 вопроса. А раз логики нет, то надо тестировать, иначе как Вы код будете писать? В мануал лезть каждые 5 минут?


Этот момент не совсем понял :) В реальной жизни у меня есть ide, которая поможет мне вспомнить порядок аргументов в str_replace
В реальной жизни у меня есть ide, которая поможет мне вспомнить порядок аргументов в str_replace
Это если Вы пишите код, да и то, сверяться постоянно с подсказкой или написать на автомате — разница есть.

А что если Вы смотрите чужой код в поисках ошибки, а ошибка может быть в перепутанных местами аргументах? Вот тут знание документации будет совсем не лишним.
> За рубежом небольшой бонус есть, т.к. там понимают что это за сертификат. В россии нет.

Мне кажется, это потому что здесь понимают, что это за сертификат :-)

> что такое «способность программировать»

Понимать и составлять алгоритмы, структуры данных, архитектуру приложения.

> раз логики нет, то надо тестировать, иначе как Вы код будете писать? В мануал лезть каждые 5 минут?

На php пишу уже 11 лет. Порядок аргументов в не самых часто используемых функциях-методах не помню, и не собираюсь: в IDE всегда есть подсказка, которая читается за ту 0.1 секунды, пока нажмешь enter в списке автокомплита.

Код написать — это вообще не проблема, основная проблема — подумать, спроектировать приложение, разработать алгоритмы. Тест на code monkey.
Мне кажется, это потому что здесь понимают, что это за сертификат :-)
Скорее наоборот:)
В россии, например, бытует мнение, что это «какая-то фигня в онлайне, школьника друга попросил, он пройдет и все».
На деле же для сдачи все же требуется определённое количество знаний (учитывая цену теста в 100+ баксов готовится приходится достаточно серьезно, с запасом), на тест надо приходит с 2 документами (т.е. васю не попросишь прийти) и начитить невозможно (смартфоны, учебники — все за классом остается).
И да, там есть вопросы на xml парсинг (требующие логики), на знание паттернов (требующих не просто знания языка), на знание owasp тех же (что тоже полезно) и так далее.

Понимать и составлять алгоритмы, структуры данных, архитектуру приложения.
Но это же тест на знание PHP. На кой черт в тесте на знание PHP тестировать знание архитектуры приложения? Ведь это не языкозависимый навык.

Порядок аргументов в не самых часто используемых функциях-методах не помню, и не собираюсь:
В тестах только часто используемые:)

в IDE всегда есть подсказка, которая читается за ту 0.1 секунды, пока нажмешь enter в списке автокомплита.
Т.е. Вы код только пишите? А чужой не читаете?:) Например, на предмет ошибок? Не доводилось? За 11 лет-то?:) Или Вам при чтении кода порядок аргументов тоже автокомплит подсказывает?

Код написать — это вообще не проблема, основная проблема —
Основная проблема не в том, что бы написать код и даже не в том, что бы спроектировать приложение. Основная проблема в людях, которые считают что написать код это вообще не проблема:)
Так, например, мы через раз встречаем мануальные функции реализованные программером, который не читал мануал и не в курсе что они в языке есть. sic! Вдумайтесь! В проекте на 120кб кода около 40кб кода это реализация и так существующих штатных php функций. sic!

Тест на code monkey.
Это тест на знание языка программирования, чего-то другого от него ожидать это странно.
Вы-то чего от него ожидаете-то? Вопросов про расчет оптимальной траектории полета до солнца на сверхпротонных фазерах?:)
> Но это же тест на знание PHP

«Знание языка» — это само по себе бесполезно. Если человек выучил язык наизусть, но не способен написать нормальную программу, от него нет никакого толка.

В PHP есть моменты, которыми действительно можно проверить опыт работы: приведение типов, скажем, или особенности array(), или SPL. Но конкретно зендовский тест… Я его видел (правда, старый). Вопросы типа «как называется функция — libxml_get_error, libxml_get_errors или get_libxml_errors» не имеют права на существование, для ответа на этот вопрос существует IDE. С порядком аргументов — какой-нибудь str_replace спросить можно при острой нехватке вопросов, но не более. Или вон там вопросы про mysqli — простите, но если человек помнит, как напрямую работать с mysqli, то одно из двух — он либо разрабатывает DBAL (и то, почему не PDO?), либо говнокодер.

> Т.е. Вы код только пишите? А чужой не читаете?:) Например, на предмет ошибок? Не доводилось? За 11 лет-то?:) Или Вам при чтении кода порядок аргументов тоже автокомплит подсказывает?

Если порядок аргументов нарушает контракты методов — IDE подсказывает, конечно. Если нет — такие вещи должны выявляться юнит-тестированием.

А так, конечно, всякое говно читать приходилось, и портянки с echo и mysql_query, и тд. Не, на самом-то деле я примерно помню большинство даже редких (а где засомневаюсь — кликну и IDE подскажет, да). Но на подобные вопросы отвечать иначе чем «идите в жопу с такими вопросами» считаю унизительным для разработчика уровнем выше кодера.

> Так, например, мы через раз встречаем мануальные функции реализованные программером, который не читал мануал и не в курсе что они в языке есть

Знать, что есть, и помнить точное название и порядок аргументов — две большие разницы. Можно и не знать, можно предположить название и увидеть в автокомплите или найти в мануале. Написать что-то, не проверив наличия готового — это даже не code monkey, это какой то code donkey.

По практике же найма, опытный Python- или Java-разработчик после месяца изучения пишет на PHP уверенно и хорошо, а вот опытного кодера на вордпрессах и прочих джумлах обучить невозможно вообще.

> Вы-то чего от него ожидаете-то?

Ничего не ожидаю, я его видел. :-)

Про composer там спрашивают? Про юнит-тестирование? Ну или, скажем, что такое SOLID или DDD? Вот то-то и оно. Registry, блин, еще бы про синглтон спросили.
«Знание языка» — это само по себе бесполезно.
Т.е. Ваша претензия к самому факту существования теста на знание языка?:) А не к его наполнению и качеству?
Достаточно странная идея, с нашей точки зрения, отрицать полезность для разработчика на php знать язык php.
Это было между прочим, основная проблема, конечно, в качестве.

Я не против существования теста на знание языка и его стандартных библиотек, но он должен соответствовать реальности. В реальности, скажем:
— с mysqli никто вручную не работает, для этого есть DBAL/ORM;
— как называется функция — spl_register_autoload или spl_autoload_register — никто не помнит: механизм понятен, но сам никогда не писал, потому что это делал фреймворк или composer;
— или вот отличный вопрос, специально открыл zend-php.appspot.com, просто жесть:

Which of the following functions is used to determine if a given stream is blocking or not?
stream_get_blocking
stream_get_meta_data
stream_is_blocking
stream_get_blocking_mode

Вот это — «знание языка»? Это бред собачий. Кому хоть раз в жизни вообще может понадобиться это узнать? Один раз поставил сокет в нужный режим — и работаем.

Ну и PHP, знаете, такая особая штука. Сам по себе язык, в отрыве, вообще непригоден для работы. Что-то даже простенькое сделать на php без фреймворка приводит к написанию мини-фреймворка. И вот в этой ситуации — нет ни одного вопроса на инфраструктуру, без которой разработку на php представить нельзя (composer, phpunit...), зато есть вот ЭТО.
— с mysqli никто вручную не работает, для этого есть DBAL/ORM;
Вот так в резюме появляются фразы «отличное знание jquery, с javascript не знаком»:)
Или еще круче бывает, wordpress программист не знающий половины базовых php функций даже в контексте их существования, но знакомый с codex-ом.

Так не проходите тест на php, если Вы работаете с ORM. Идите найдите тест на ORM и пройдите его.
В чем проблема-то? Вы с php функциями не работаете, но обижаетесь что их знание обязательно для прохождения теста на язык php, жесть просто.

По остальному — если Вы знаете php и постоянно работаете с ним, никакой проблемы с приведенными Вами примерами нет.
Если же Вы только что пришли «с другого языка» или «работали только с надстройками над php типа ORM», то этот тест Вы не пройдете и… это будет абсолютно справедливый результат, потому что языка Вы не знаете, пусть даже программист Вы великолепный.
Еще раз.

Знать — не значит постоянно пользоваться и помнить все детали.

Знать, что есть mysqli, как он работает, и при необходимости уметь написать свою обертку — надо.
Помнить, как там что называется, кроме самого распространненного — это странно.

Вот вам вопрос в стиле Zend Certification (чур, не подглядывать).

Как получить дополнительные результаты multiquery-запроса?

1) mysqli::get_more_results()
2) mysqli::more_results()
3) mysqli::get_multi_results()
4) mysqli::multi_results()

Знать, что есть mysqli, как он работает, и при необходимости уметь написать свою обертку — надо.
Это уровень образовательного учреждения. Ничего не знать, но знать где найти. Это и называется «знать со словарем».

Помнить, как там что называется, кроме самого распространненного — это странно.
А вот это уровень практика не только знающего язык, но и практикующего его.

Вот Вы вроде по русски пишите, вероятно знаете русский язык.
Задумайтесь — Вы в принципе «правила русского языка знаете, знаете как составлять предложения, знаете где ставить Ъ» (тот подход что рекламируете Вы) или же не задумываясь пишите правильно и в фразе «извени за кофе она ни остылл» Вам на автомате что-то режет глаз?
Так вот тест на язык подразумевает второй тип знания, а не первый.
Вы не ответили на самую интересную часть. :-)
Нет правильного ответа у Вас там.

В тему топика как раз статья появилась habrahabr.ru/post/259865 — задумайтесь.
> Нет правильного ответа у Вас там

Верно. А в мануал подглядывали? :)

> задумайтесь

О чем? Все, кроме хака с переопределением true в неймспейсе — знал, а за применение же в продакшен-коде подобных трюков надо бить по рукам указкой.
Верно. А в мануал подглядывали? :)
Не-а. Просто мы пишем на php. Но если бы писали на «вордпресс, джейквери или ОРМ», то конечно не ответили бы на этот вопрос из теста по php:)

О чем? Все, кроме хака с переопределением true в неймспейсе — знал
О том что там почти все вопросы требуют знания языка куда выше чем уровень "Помнить, как там что называется, кроме самого распространненного".
Ну вообще, если вы не работаете с mysqli, это не значит, что никто не работает: )
Точно так же и с написанием автолоада — иногда это приходится делать.
Поэтому, вероятно, дело не в том, что это все «бред собачий», а в том, что вы немного в другой сфере работаете.
UFO just landed and posted this here
Если честно, то я ожидал тест хотя-бы уровня среднего разработчика. Но там нет ничего выше джуниорского уровня.
А почему? Почему в тесте на знание php Вы ожидали тестирование на разработчика?

А вы ошибки методом чтения кода находите?
Сначала запускаются тесты, потом отладчик на сломанных.
Это из серии «знаю английский со словарем» или «подумаешь что я ничего не знаю — в гугле найду». Программист на php якобы знающий php и не способный прочитав код увидеть ошибку — вызывает уныние.
Впрочем да, сейчас пошла такая тенденция, «я программист, на фига мне знать язык, посмотрю в документации, подскажет ide, если что маме позвоню». Обычно это какие-нибудь сишники или явовцы, которые «точно знают» что php фигня и учить его не надо. По нам так гнать таких прогеров тряпками. Архитектор ведущий проект может не знать не то что порядок аргументов, вообще языка. Но программер заявляющий что он знает php и при этом не знающий его азов (которые при практическом использовании, а не теоретических рассуждениях, заметим, невозможно не знать!) — что он вообще знает тогда? — это нонсенс.
Но там нет ничего выше джуниорского уровня.

Вы ошибаетесь, там достаточно много сложных вопросов.
Сдавал тест на 5.3, попались вопросы на безопасность,
были вопросы на неочевидные особенности языка (очень много!),
были вопросы по SQL,XML
были вопросы по тонкостям наследования, late static binding и прочее.
Не уверен как сейчас, в то время тест был очень сложен для middle не то что junior
Проходил сертификацию очень давно — www.zend.com/en/yellow-pages/ZEND005322

Пока работу или работников не ищите — разницы нет. Как начинаете искать — очень даже разница есть :)
Sign up to leave a comment.

Articles