Pull to refresh

Comments 168

> Дизайнер нарисовал картинку со множеством кнопочек. Необходимо нарезать кнопки и вставить в дизайн. Как вы будете это делать?

Типичная задача для JS-программера, но думаю лучше перевесить это на проектировщика БД — ему это будет ещё сподручнее.
:) не сомненно. Но нам нужен такой человек, который будет отстаивать своё мнение перед верстальщиком, а для этого худо-бедно вёрстку-то нужно знать, а?
Крепкий JS программист должен знать вёрстку довольно хорошо. А вы ему детский сад про подвал и ниспадающее меню задаёте вопросы.
Последнее предложение сумбурно:
А вы ему, как в детском саду, про подвал и ниспадающее меню задаёте вопросы.
ок. Какие же вопросы ему задавать, чтобы проверить знание вёрстки? Для того тест и выложил, чтобы валидировать вопросы.
Вы мою мысль не поняли. Если человек, который позиционирует себя как крепкий JS-программист ещё и демонстрирует свои знания в своём деле, то вёрстку он почти точно знает на «удовлетворительно», а скорее всего и на «хорошо».

Распечатайте макет, на листике, и пусть он с помощью ручки покажет, кто и как должно быть навёрстано. Заодно и посмотрите, как человек защищает свою точку зрения. Он сам, на автомате, расскажет вам всё что нужно.

А ещё вопрос 8.4 удивил. Это тот вопрос, на который ответить нужно одним предложением?
См мой следующий коммент: проблема в том, что на эту вакансию приходят, скажем так, не самые крепкие люди. Задача состоит в том, чтобы отсечь часть народу перед приглашением на собеседование.
Смысл отсеивания теряется — гуглится же всё элементарно.
человек, который достаточно быстро может нагуглить решения по смежной области, не так уж плох, как тот, который и нагуглить-то не сможет ;)
Человек может вполне удачно гуглить, но может плохо применять полученную информацию на практике.
практику мы проверим на личном собеседовании, а умение гуглить — это не такой уж и плохой бонус, не так ли?
я думаю, что такое бывает редко. (особенно если он сиожет объяснить то, что нагуглил)
А ещё вопрос 8.4 удивил. Это тот вопрос, на который ответить нужно одним предложением?

может ни ждут возгласа типа «боже-ж мой, как несемантично сделаны две колоноки!» !? хотя не зная что скрывается за «cell» сказки про семантику и «убожество табличной верстки» не конают. может там табличные данные, просто конкретно в этом месте в таблице всего одна строка, а завтра будут «тысячи их» :D

Браузеры
1. С какими браузерами вы работали?
2. Расскажите про отличия между ними.

мне больше п.2 доставляет. ответ начинается с «Ну… это… (начинает загибать пальцы на одной руке, потом на второй)…… и заканчивает поверхностный доклад об основных отличиях часа через два» :D
да, я уже подумываю исключить пункт про браузеры из теста :) Как справедливо отметили ниже, отвечать на up40 вопросов — очень накладно и, вообще, не хочется :)
И, да, нужно понимать, что это тот тест, который мы будем высылать по емейлу. И вёрстка в этом тесте является важной, но не ключевой точкой принятия решения о приглашении на собеседование.
UFO just landed and posted this here
ну ключ к тесту я же не выкладывал? :) Тут не выложено, на что в ответах мы будем обращать внимание, а на что — нет. Там есть несколько ловушек, которые нельзя обойти простым гуглением, нужен ещё и опыт.

Ну и основная задача — всё же отсеять заведомо слабых кандидатов перед личным собеседованием. Если человек умеет пользоваться поиском — это уже неплохой бонус.
UFO just landed and posted this here
и не надо все способы помнить — для этого теста достаточно описать несколько известных, чтобы мы смогли убедиться, что человек в теме
6.1. Скажите что вы хотите услышать тут. Скорость сложения очень зависит от того что складываем, хотя при 20 строках любой способ будет давать отличие в пределах погрешности измерений.
хочется увидеть, что человек скажет о сложении строк в принципе.
тут видимо подразумевается [«foo»,«bar»,...,«figabar»].join("")
Мда, после таких постов отчетливо понимаешь, какой ты не js-программист.

Очень будет интересно узнать мнение самих разработчиков теста по каждому пункту. :) Ну или почти по каждому.

Как насчет передачи опыта? ;-)
Ну мы предлагаем адекватную зарплату frontend разработчика. Потому, конечно, хочется увидеть человека, который способен эту зарплату отработать.

Предполагается, что этот тест мы будем высылать людям, которые мало указали примеров своих работ в резюме и у нас возникли сомнения по скилам. Ну и потом, в любом случае, ещё будет личное собеседование. Причём приглашать буем, если человек наберёт хотя бы треть баллов от максимума по данному тесту.
Я даже одной десятой не наберу, так что не претендую :-\
Честно говоря, я этим не опечален :)

Так как насчет передачи опыта ;-)
какие именно вопросы вас заинтересовали?) Отвечу, как смогу.
Честно? :) Все :)

На самом деле «по-верхам» я знаком почти со всеми пунктами. Но эти знания сводятся к примерному пониманию «what is it» и «где копать, если надо узнать подробнее».

Может быть вы для простоты дадите почитать ответы соискателей вакансии? Без личной информации разумеется.

В общем интересно (для самоапгрейда) все, кроме п 8.8 (общую концепцию представляю), 8.11 (озираюсь в поисках стены) и 8.12 (недобрыми словами вспоминаю своего… «дизайнера»)

Ну и пожалуй по Аяксу вопросов нет. Не скажу, что я его знаю в достаточной мере, просто это отдельная история.
Ключи к тесту публиковать рано, пока не взяли человека. Но всё, в общем-то, элементарно гуглится кроме некоторых хитрожопых вопросов. Вот, к примеру, ключ к одному из пунктов:

Расскажите, какие методы межсерверных запросов вы знаете и применяете
+10 Ключевое слово JSONP
+7 Через подгрузку (вставку элементов) внешних CSS/скриптов с другого сервера
+1 использую такой-то фреймворк
Ах да, это же тест с ключами… Виноват, не сообразил.

На самом деле наибольшее любопытство вызвало следущее:
# Что вы можете рассказать о таком коде: cellcell?
#… вёрстка на дивах?… Какие есть недостатки? В каких случаях её лучше не применять?
5.3 — Синглтон
# Тестирование:
2. На какие вещи необходимо обращать внимание при тестировании вёрстки?
3. Как вы отлаживаете JS код?
4. На что обращаете внимание при тестировании JS?
Как обычно забыл про теги :)
про код — чисто на знание HTML. Неплохо бы указать tbody и ещё кое-что, совсем неплохо — рассказать, как можно улучшить код.

синглтон — один из вопросов на паттерны, в принципе, стандартная штука :)

про вёрстку — существуют определённые вещи, которые замеряются при приёмке кода. Типа выравнивания, ну и далее до кучи.

Отладка кода производится не только через firebug и dragonfly. Есть и иные методы. Если человек знает их — отлично. Если знает про автоматическое тестирование (какой-нибудь селениум), юнит тесты и т.д. и даже может написать их — совсем хорошо.

про то, на что нужно обращать внимание при тестировании JS говорится много. Самое простое — это переполнение буффера/переполнение стека браузера и т.д.
Благодарю.
Что-нибудь посоветуете по #comment_2231628?
Интересно а у меня почему то методы межсерверных запросов ассоциируется GET,POST,PUT,DELETE,HEAD и т.д.
Это c вопросом 2.1 про методы HTTP запросов должно ассоциироваться :) Межсерверные — это когда клиент подгружает/отправляет данные с другого сервера, что по идее запрещено в JS
Вроде это называют как то так «кросдоменные». А слово межсерверный запрос говорит сам за себя, что общение идет между серверами, и никакого упоминания о клиенте :)
Ну если считать «кросс»==«меж», а «домен»==«сервер», то разницы, в принципе нет. Да и домены, по идее, сами, без клиента, между собой должны общаться при кроссдоменном запросе :)
ну, «кросс-» == «меж-», а вот «домен» != «сервер»… и здесь отличие принципиально.
Но вообще где-то было сравнение требований веб-программисту и автомеханику. Очень такое забавное сравнение… от механика требуют меньше, чем от веб-программиста :)
Ну вот скажем 80% знаний я приобретаю, когда в них возникает необходимость. Это сойдет за «обучаемость»? :)

Вот скажем те же самые XSS-атаки. Не сталкивался, проблемы такой передо мной не вставало, информации не имею и более того, она для меня сейчас бесполезна.
Конечно сойдёт. Если есть скилы писать нужный нам код «здесь и сейчас» то просто берём на работу и по мере его написания указываем на ошибки и рассказываем, как это делается. Если же сами не знаем, как это делается, то садимся все вместе и думаем :)
просто берём на работу и по мере его написания указываем на ошибки и рассказываем, как это делается.

Завидую вашему коллективу. :)
Мы не первый год в IT индустрии и сами когда-то начинали :) Никто не знает всего, часто давлеет узкая специализация (вот тут я — гуру, а вот тут только слышал)

Бороться можно исключительно через самообучение.
Кстати правда, было бы очень интересно посмотреть на то, как вы сами ответите на вопросы. Приглянулось пару-тройку вопросов, ответы на которые интересуют особо.
UFO just landed and posted this here
Пускай идёт! Если не испугался — уже отлично! :)
Да-да, работаю Робин Гудом для ищущих работу.
Сам я отвечу на любые вопросы из этого теста кроме круговой диаграммы :) Задачу по диаграмме подкинул другой человек, я над ней ещё не размышлял.
Ну так давайте, разметите в бложике своём, например. И ссылочку в комментарии.
Разместите. Простите за опечатки.
ответ на вопрос про круговую диаграмму? :)
Да бог с ней, с диаграммой — про неё можно забыть. А вот про всё остальное — было бы приятно увидеть ответы.
Ну что ж вы, давайте что ли развёрнутый ответ на все вопросы кроме диаграммы :)

Вы же согласны с тем, что пред тем как давать тест, необходимо самому на него ответить?
я на него отвечу, иначе бы такие вопросы не формулировал :) Когда возьмём JS программера обязуюсь выложить ключ для теста с баллами, по которым мы будем решать, приглашать ли человека на личное собеседование.
Не, всё остальное ;-)
Вакансия в меньшей мере на JS программера (и тем более «крепкого»). Скорее, на «всё-в-одном фронтэндера»: верстальщика, дизайнера, чего-то там знающего про HTTP протокол, ну и JS вдогонку, чтобы всё это свёрстанное оживить.

Но в целом, для вакансии «всё-в-одном на фронтэнд позицию» может и подойдёт. Однако, прошедший все эти пункты кандидат, может быть весьма посредственным JS программером. Поэтому, возможно лучше изменить вакансию на «Frontend developer» — это будет подразумевать знания JS + всё перечисленное в пунктах.
Мы не будем заставлять делать вёрстку — для этого есть отдельные люди. Для нас важно, чтобы писался JS, а остальное — чтобы человек понимал, где могут быть подводные камни.
> Для нас важно, чтобы писался JS

Ну да, прикладной повседневный (возможно, поверхностный) JS, как дополнение к вакансии «Frontend developer». Я говорю, последнее определение больше подходит для вакансии. Вы из JS вообще мало, что спросили по пунктам (в сущности, если говорить о «крепком» JS программере — вообще ничего не спросили). С другой стороны — для прикладного эффективного Frontend программера, вопросы подходящие.
нет, ну не спрашивать же человека в тесте, который мы посылаем по email «что такое замыкания» и «за сколько он напишет нам DoJo»?
Замыкания — это вообще основа для позиции, которую вы обозначили ;) Понимание, как они работают и почему — это самые азы для «крепкого JS программера».

Я чисто объективно предложил вам переименовать вакансию в более подходящую — «Фронтэнд разработчик».

Однако, решать вам ;)

Успехов.
Я обычно спрашиваю как сконвертировать массив чисел в массив функций, возвращающие числа, было a[i] == 5, стало a[i]() == 5. Если человек решит это без eval, то замыкания он скорее всего понимает и можно продолжать разговор.
В остальном согласен с dsCode, чтобы найти Javascript разработчика, нужно и тестировать Javascript. Иногда достаточно спросить какой результат выражения +!{}[0], почему?
Какая хорошая задачка! А можете привести ответ? Я могу предположить, что 1, потому что:
{} -> Object
{}[0] -> false
!{}[0] -> true
+!{}[0] -> 1
Верно? Или как-то иначе всё происходит?
Всё правильно. Задачка не сложная, но вы не поверите сколько кандидатов на JS позицию она отсеяла. :)
Спасибо за задачку :) Но при всём при том, как-то глупо брать на позицию JS девелопера на 60% связанную с работой с DOM моделью человека, который не знает методы защиты от XSS. Потому вместе с задачкой на чинтаксис языка нужно и спрашивать о смежных технологиях. Не на40 же тысяч в месяц человека берём?)
Вы же в данном тесте просто хотите отсеять тех что не знает язык, на котором будет писать. Потом на face2face интервью вы уже можете спросить про XSS и прочее.
в принципе верно, да
> +!{}[0]

Забавный тест ;)

Ещё как варинат: (для квадратных скобок суть меняется):

!+[0]
!-[1]
var i = [1,2,3],counter=0;
while(i[counter]){
i[counter]=(function(i){return function(){return i}})(i[counter++]);
}

i[0]()

Если я не ошибаюсь то так.
var a = [1,2,3]; a.map(function(v, i, a) { a[i] = function() { return v; }; });
Подводные камни.

Посоветуйте, как донести до дизайнера мысль (а по факту необходимость) семантичной верстки?

А то вот месяц фачим друг другу моск в очень простой ситуации: science.mwanted.spb.ru
(мой движок и прикручивание jQuery aHover plugin), его дизайн.

Оба меню генерятся динамически, и траблы с левым. Как это выглядит в «дизайне»

На всякий случай даю ссылку на «исходный дизайн» — science.mwanted.spb.ru/index_n1.html

Ага, меню выглядит именно так. Потом на это навешивается плагин и в IE/FF2 наблюдаем крайне забавные вещи — вываливаются из общей последовательности и начинается такая каша… Что во всем опять виноват PHP-программист (то есть я).

Причем меня обвиняют в «окончательной сдвинутости на вебдваноль» и «порче strict-верстке»
:(
В общем не вставился кусок кода, в хтмлке он идет в районе: <!-- make a shadow 1px bottom -->
вторая страница не открывается.

а какое отношение дизайнер имеет к семантической вёрстке? Он одновременно и верстальщик, что ли?
Мм… а теперь? science.mwanted.spb.ru/index_n1.html

Как бы у нас нет в «конторе» ни дизайнера, ни верстальщика. В результате «гендиректор» (это конечно страшно звучит для конторы, в которой работает 2.5 человека) занимается одновременно и дизайном и версткой.

Такая вот беда. :(
попробуйте рассказать о поиске и SEO :) обычно, семантическая вёрстка этому способствует. Другие профиты обычно сложно донести не-программерам.
Не помогло :(

Процитирую кусочек переписки:
прости, пожалуйста, тебя что, вообще никакие дизайнерские элементы разметки не устраивают? совсем съехал на web 2.0? ЕЩЁ РАЗ напоминаю — ты программист, следовательно, должен принимать текущий шаблон дизайна и корректно обрабатывать его, в соответствии пожеланиям заказчика. Если тебя не устраивает корректный strict код — ты должен либо отказаться от своих претензий программиста, либо найти вариант решения (как насчет найти еще какой-нибудь вариант реализации .ahover'a)
как бы, если оно ещё и с матом, то, может быть, стоит рассмотреть вариант разрыва сотрудничества с данной персоной, а?

С точки же зрения делового процесса, иногда бывает так, что проще делать много какашек задёшево, чем один большой проект, но за нормальные деньги. Возможно, что всё дело именно в этом.
Мысли о разрыве отношений уже крутятся, но к сожалению это не фриланс и только середина проекта. :(
а насколько большой у вас опыт?
Не умею петь дифирамбы своему опыту, так что просто скажу — маленький.

Подробнее сейчас напишу в личку.
генерируются динамически, это в смысле ты json'ом менюху пункты грузишь и потом генерируешь код? живая версия что-то не работает? 403

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

а у тебя там
ul
div>li
div>li
/ul

так не бывает :) я не знаю в чем там проблема, потому что в живую на сайт не смог глянуть, но первым делом посоветовал бы привести в порядок голову. «дизайнера» тоже можешь послать куда подальше за его труды такие ;)

Не-не, PHP-шкой вынимаются названия статей из базы и по ним в цикле генерится 6 элементов меню. Причем я то как бы в курсе, что так нельзя. И валидная верстка
ul
li /li
li /li

/ul
с плагином дружит великолепно.

Вот только дизайнероверстальщик приносит мне (уже пятый раз) совершенно уродскую конструкцию вида:

ul
div li /li /div (этот див задает полосочку красненькую под пунктом меню)
div /div (а этот — синенькую еще ниже)
следущий пункт меню…
/ul

И ругается матом, что я совсем съехал на вебдваноль, никудышный программист (ну выше я цитировал кусок переписки)

А ссылочка: science.mwanted.spb.ru/index_n1.html — только что проверил, надеюсь не хабраэффект. Смотреть от [div id=«tech_menu»]
дай ему линк на xhtml пусть почитает. а лучше сам переверстай. если уж так нужны эти дивы, запихни их внутрь. по index_n1 не видно что-то джейквери и зачем оно нужно.
в index_n1 jQ и нет, это «оригинал-макет верстки», на который я должен привинтить все остальное.
короче
validator.w3.org/check?uri=http%3A%2F%2Fscience.mwanted.spb.ru%2Findex_n1.html&charset=%28detect+automatically%29&doctype=XHTML+1.0+Transitional&group=0&user-agent=W3C_Validator%2F1.654

тебе надо ему объяснить, что верстка его не «не семантичная», а «не валидная». и что при таком количестве ерроров следует ожидать чего угодно.
непонял только одного, зачем тебе отдельный плагин под это дело если это вешается на
$('li').hover(), а внутри animate() на он и офф ховер.
За багрепорт спасибо. Передам :)
UFO just landed and posted this here
А как брать новых сотрудников? Совсем новых и малоопытных?
это тест, который будет посылаться по e-mail людям, которые не указали достаточно информации у себя в резюме. + не у всех есть развёрнутое публичное портфолио.
UFO just landed and posted this here
Мы планируем захватить мир, это так естественно! :)
К тому же, в описании вакансии все эти слова есть.
Если ответ на вопрос 7.2 («отличия между браузерами») займёт по времени менее 18 часов — на работу ни в коем случае не брать. ;-)
Думаете, стоит добавить «в паре предложений и про ИЕ нецензурно не выражаться»? :)
Если будет нцв про IE — это первый признак того, что перед вами скорее измученный верстальщик, чем js-программист. Так что вполне себе хорошее предложение для отсева… ;-)
ну в ИЕ с JS тоже не всё гладко :)
Может быть добавить пункт «расскажите что-нибудь хорошее про ИЕ»? ;-)

Этакий тест на креативность? :)
Отличная идея! Спасибо! :)
Мне кажется у Вас перебор с вопросами. Я бы не стал отвечать на 40 вопросов только ради приглашения на собеседование. Эти вопросы хорошо подойдут как список вопросов, которые можно задать при личном собеседовании. Выборочно задать 5-10 вопросов и посмотреть как человек будет на них отвечать. А так… Если уж Вам кто-то пришлет на них все правильные ответы — выдавайте сертификат «Advanced JS Programmer».
Спасибо за отзыв. Я, вот, тоже смотрю сейчас и думаю: не многовато ли для отсевного теста вопросов?

С точки зрения же сертификата — я подумаю :) может быть сделаю сайтик с тестом а-ля теста «мамбы» для пых программеров.
Когда сделаете, обязательно скиньте ссылочку или напишите статью.

По теме: удачи в поисках роскошного кандидата! :)
Первые 4 и с 9 по 12 в части про верстку я бы убрал, все же к JS это не имеет прямого отношения. Да, скорее всего, опытный программер ответил бы что-нибудь, но не более того.

Вообще пора отвыкать от того что js программист знает верстку, ему, по-хорошему, это не нужно, т.к. в 95% случаев необходимо и достаточно применять смену классов для соответствующих объектов, а не устанавливать style. Не требуют же верстки от сервер-сайд программеров.

Про js-фреймворки только ничего нет — странно. Опять же полезно знать про unobtrusive скрипты.

А вообще вопросы собраны хорошие, я бы на вакансию где это все требуется пошел бы =)
Спасибо за ответ! :)

Про вёрстку — да, наверное перегружено. Тут уже отмечали, что много вопросов, неплохо бы подсократить, тем более, что потом ещё будет и личное собеседование.

> Вообще пора отвыкать от того что js программист знает верстку, ему, по-хорошему, это не нужно

Вот с этим несогласен. Вёрстку знать нужно, поскольку 70% работы JS программера связано с DOM моделью и он должен уметь отстаивать своё мнение перед верстальщиком.

Про JS фреймворки написано в самой вакансии, если ещё с чем-то бвла работа — это, несомненно, в плюс.
Мнение перед верстальщиком отстаивать это правильно, но мнение редко бывает связано с версткой. Например, программеру всеравно, как прилеплен футер на странице, если ему нужно его скрывать/показывать. То же самое с размещением блоков и т.п. Структура документа опять же редко бывает критически важна в обычной практике.

Да, программер должен знать и предупреждать верстака, что ни каких селекторов вида #objectId в css быть не должно, и что текст, который нужно менять, должен быть внутри отдельного блока и т.п. Но по сути, это не верстка, в моем понимании, т.к. верстка это скорее умение заставить страницу выглядеть одинаково в соответствии с дизайном во всех браузерах.

Я бы назвал этот пункт «знание dom/html/css», но не верстка.

И это все не холивора ради, а просто личное мнение =)
UFO just landed and posted this here
Ну а что делать, если на роль JS девелопера в основном косяками тянутся PHP программеры, из портфолио которых видно исключительно хорошее владение плагинами jQuery? Тет же не предполагает 100% знание всех затронутых тем, меня, лично, удовлетворило бы знание на уровне 30% каждой «главы» :)
UFO just landed and posted this here
см. первый апдейт к посту: при таком потоке кандидатов всех собеседовать очень долго.
исключите из вакансии требование jQuery. Если человек знает JS то с jQuery проблем не будет.
в общем-то, верно…
А у вас вакансия так составлена, что вполне подходит под знания и опыт типичного «быдлокодера» типа меня. С ходу смутило только «опыт работы с web фреймворками (GWT);» — пришлось гуглить, что это такое. Спасибо, что натолкнули, интересная штука, скачал учебник, сейчас буду читать для общего развития :)

Если интересно, то могу попунктно расписать почему я формально подхожу под требования вакансии, не смотря на то, что без гугла максимум на десяток вопросов из теста отвечу, и те к JS никакого отношения не имеют
расскажите :) мы поправим вакансию, есличо

Только нужно понимать, что если к нам придёт человек с недостаточными знаниями JS, но хорошим опытом решения задач и обучаемостью — мы его просто возьмём и обучим.
>опыт разработки web проектов не менее года;
О, первый свой проект я в прошлом веке разработал и с тех пор ни года без проекта (про масштаб, качество и судьбу проектов скромно забыл)

>понимание HTTP протокола;
А что там понимать — браузер запросы шлёт, заголовки всякие, куки, сервер их анализует и сам ответы шлет, тоже с заголовками разными и куками, чаще всего и тело ответа идет на HTML (ну или файл) — галочка

>отличное знание HTML+CSS;
Ну а кто его сейчас не знает, не в блокноте же писать, есличо автокомплит подскажет, да и не на верстальщика же берут — галочка

>владение фреймворком jQuery или Prototype;
Drupal когда мучал — что-то там делал с jQuery, а в symfony с Prototype и scriptaculous баловался, ну и почитаю доки перед собеседованием — галочка

>знания OO, design patterns
наследование, инкапсуляция, полиморфизм — это я знаю. синглтон, фабрика, обозреватель, что-то еще… еще книжку почитать — галочка

>английский на уровне чтения технической документации.
да будь я и негром преклонных годов… на нем пишут доки — галочка

>опыт разработки серверной части приложений на любом языке (PHP, Perl, Java);
пых наше всё :) — галочка

>опыт программирования на OO языках (Python, Java, Scala, etc.);
А пых не ОО? Ну ладно, были C++ и, о позор на мою седую голову, VB — галочка

>опыт кроссбраузерной вёрстки;
пару раз делал, проклял всё, но сверстал кроссбраузерно и даже валидно — опыт есть, галочка

>владение принципами семантической вёрстки;
ага, и эти пару раз были «семантические» — дивы и спаны, списки в ul засунуты, даже акронимы использовал по назначению — галочка

>опыт работы с web фреймворками (GWT);
чёрт, нагуглил что это такое, учебник прочитал — на php фреймворки не похоже, ну ладно, это привествуется, а не требуется, тем более хоть предсталвение есть теперь — вопросик

>опыт работы с XML/XSLT шаблонизаторами;
сложно назвать это опытом, тем более успешным, но работало же. — галочка

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

>владение *nix на уровне пользователя;
да даже дев-сервак могу поднять из консоли по ssh (если это debian/ubuntu будет) — галочка

Вот так и получается, что практически ничего не зная отлично (и мало что хорошо), просто в целом интересуясь веб-разработкой и программированием вообще чуть ли не с детского сада и имея небольшой опыт создания хомяков и визиток формально под вакансию подхожу. А реально, даже со всеми вашими допусками (нагуглить ответы, чтоб хотя бы 30% было верных, недостаточные знания JS и т. п.), у меня резюме отправить совести не хватает, ладно бы еще Junior была бы вакансия. А вот у кого-то хватает, судя по вступлению к топику :(
Ну да, видимо, всё так и происходит! :) спасибо за отзыв!
Опять же, если мы видим скилы у человека — ему и тест такой высылать не надо — сразу пригласим и отсобеседуем :)
А можно по подробнее про 10.1 и 10.2
С точки зрения обычного клиента( давайте даже будем считать что ИЕ )
1. таймер
2. через дом модель
WW ещё в драфте и доступен не является стандартом. Но и кроме таймеров есть ещё несколько способов запускать потоки :)
но нет в других браузерах, а это — более 60% рунета
ээх… рунет-рунет:)
для того и существуют кроссбраузерные библиотеки — в остальных воркеры эмулируются.
Мне кажется что есть смысл использовать — у 40% кастомеров будет летать.
Хотя… все зависит от задачи:)
именно что зависит от задачи :)
ага, тоесть синтетическая, дискретная, многозадачность и мьютексы варианта it-depends
( ждем, ждем товарищи html5 )
давно уже ждём, но на свет выползает он очень медленно :)
Простые вопросы для JS программиста:
1) сделайте синтаксис возможным: a = (5).plus(3).minus(6); //2
2) сделайте синтаксис возможным: var a = add(2)(3); //5
3) найдите наибольшее число в массиве чисел без использования циклов. Используйте для этого Math.max.

есть еще несколько интересных.
О! Спасибо большое!
еще плюс 5 копеек:
4) сделайте синтаксис возможным

var s = make(1)(2)(3)(4)(5);
s(add); // 15
s(mul); // 120

где
var add = function (a, b) { return a + b; };
var mul = function (a, b) { return a * b; };
ну эт не на JS, а на программирование вцелом задача
То есть JavaScript это не программирование совсем?
Я бы реализовал так:
var add = function (a, b) { return a + b; };
var mul = function (a, b) { return a * b; };
var make = (function() {
  var cache = [],
      local = [],
      cacheHandler;

  cacheHandler = function(value) {
    if (typeof value === 'function') {
      local = [];
      while(cache.length != local.length) {
        local.push(cache[local.length]);
      }
      do {
        local.unshift(
          value(local.shift(), local.shift())
        );
      } while (local.length != 1);
      return local.shift();
    } else {
      cache.push(value);
      return cacheHandler;
    }
  }

  return cacheHandler;
}());

var s = make(1)(2)(3)(4)(5);

console.log(s(add) === 15);
console.log(s(mul) === 120)

а как можно еще круче?
function make(x, numbers) {
    var result;

    numbers = numbers || [];
    
    if (typeof x === 'function') {       
        numbers.map(function(v, i, a) {
            if (result === undefined) {
                result = v;
            } else {
                result = x(result, v);
            }
        });
        
        return result;
    } else {
        numbers.push(x);
        return function(x) { return make(x, numbers); };
    }
}

var add = function (a, b) { return a + b; };
var mul = function (a, b) { return a * b; };

var s = make(1)(2)(3)(4)(5);

console.log('add:', s(add)); // 15
console.log('mul:', s(mul)); // 120
var make = (function () {
  var nums = [];
  return function add (n) {
    return typeof n === 'function'
      ? nums.reduce(n)
      : (nums.push(n), add);
  }
})();
UFO just landed and posted this here
ну ок, а вот так лучше?:
1-2) что такое chaining, пример реализации (это вопрос специалистам jQuery)
3) что такое apply, чем отличается от call

и не говорите что от чейнинга и колл апплай в реальном проекте нет толка:)
UFO just landed and posted this here
Если кто-то не можете сходу ответить на такие вопросы, то этот человек не Javascript разработчик.
Знаете — еще иногда полезно поспрашивать алгоритмическую базу( временая сложность и так далее )
А вообще мне нравятся конструкции вида
— как обьявляется переменая внутри функции
+ var a=0;
— а чего за вар такой?
+ ааа, ээээ, всегда писал, чтобы, чтобы… о! чтобы переменая была локальной а не ушла в глобал
— зачем?
+ ну глобальные переменые — это плохо
— почему?

и так далее, чтобы человек сам научился отвечать на некие вопоросы, а не повторять дейсвия за другими

ps: дурацкий вопрос, а почему задачу нельзя записать в виде
var s = make(1)
[tab][tab][tab].push(2)
[tab][tab][tab].push(3)
[tab][tab][tab].push(4)
[tab][tab][tab].push(5);
такие вопросы надо на личном собеседовании задавать :)
Абсолютно согласен. Они слишком простые для человека за компьютером. Такие вопросы нужно уметь решать на бумажке в присутствии вопрошающего.
ато:) #jsquizz рулит
спасибо
сдается мне это вопросы из блога Дмитрия Барановского?
Именно они:)
см. комментарий выше
спасибо, посмотрим :)
Очередная полная чушь. Помнится, про php тут всё писал один человек, тоже полсотни таких же идиотских вопросов, тоже клинический случай.
Тут очевидно что собеседователь получает скрытое удовольствие от того какой он умный.

Я тоже легко могу подобрать большое число подобных вопросов, тоже все по JS, тоже все будут казаться очевидными, которые должен знать каждый js-разработчик, но автор не на один не ответит. Хватит уже страдать извращением. Собеседуйте людей, а не роботов.
не могу с вами не согласиться — лично мне наиболее симпатичен подход Dion\а в недавнем посте, однако у каждого свои предпочтения по собеседованиям, да и при отсеивании кандидатов на этапе переписки (при условии что у кандидата нет реализованных проектов в портфолио — всякое бывает-) мне кажется миниопросник вполне реальный выход. Правда я бы его сделал не таким как автор — меньше теоретических вопросов, больше минизадачек.
вы уверены, что от собеседования можно получить удовольствие, когда за день прогоняются по 10 человек?
UFO just landed and posted this here
Задавать вопросы не зная, что хочется на них услышать — глупость. У нас есть к этому тесту ключ, по которому кандидат набирает от -200 до +400 баллов. Если баллов больше 200 — на собеседование.
зарплатная вилка у нас только начинается от 40)
Вот иногда читаю такие анкеты по приёму на работу и думаю — если буду менять работу, то перебью собеседование и сам буду задавать вопросы. Но это так, шутка. Эта анкета из разряда договоров, которые подписывают, например, с операторами сотовой связи, где оператор мне ничего не должен, а я только за то, что подержал договор в руках уже обязан заплатить за просмотр и при этом говорят — «да вы подпишите — это стандартный договор», а при этом их юристы может не один месяц его вылизывали, чтобы не подкопаться было.

Сколько вы на составление анкеты времени потратили? выходные? Вот и время на собеседование тоже отводите два дня. Чем претендент хуже вас? Многие вопросы, которые вы тут задаёте, разработчик решает на подкорке иногда сам не понимая, почему так показалось лучше, а вам ещё и точку зрения свою доказать должен.

По мне так пусть исходный код покажет и у вас будет предмет для разговора (опять же покажете свою компетентность кандидату, если она есть. Мне как кандидату это было бы приятно, что человек не голословно мне вопросы задаёт). Пусть чужой код почитает и объяснит, что он увидел. Вот и собеседование. В конце концов не только на JS приходится работать. А так, выпендриваться вопросам, что такое ООП, да почему браузер должен его на завтрак под соусом JS употребить или чем JS от jQuery отличается — это у студентов на зачётах спрашивайте, когда они слова «объектная модель» впервые на экзамене слышат.

Моё резюме вашей анкеты — общайтесь с человеком в живую, чего прятаться за вопросы? Если хотите её всё таки использовать то выложите её на общедоступный ресурс для письменных ответов кандидатами. Это будет ходя бы подобие честности, а так, сыпать такие вопросы на собеседовании, да ещё с приставкой «почему» — некрасиво. Это же собеседование (от слова беседа), а не экзамен, где балы выставляют.
собеседование? предлагаю, всё же, внимательно прочитать то, что написано:
Разумным выходом является тест, по результатам которого некоторую часть кандидатов мы приглашаем на собеседование.

Эта анкета высылалась кандидатам на email и учитывает то, что кандидаты, не умеющие пользоваться гуглом, в общем-то, нам не подходят. Ещё вопросы?
Ну да, не до конца прочитал (как-то обидно даже читать такие анкеты, как буд-то из списка QXXXXXXX со знаком вопроса), а там действительно — отправка анкеты по почте. И сразу «Ещё вопросы?» ))) Обидно?

Просто я без Гугля и интелисенс уже и писать нормально не могу, когда приходится в клиенте писать на JS, на сервере на PHP и в базе данных запросы сочинять… Нет, ребята, мне цель интересна, а не JS.

Вот пока не хочу идти к вам работать! Есть чем ещё заманить? Или думаете, что только деньгами можно привлечь? Деньги-то не главное, тем более, что на зарплатах больших денег не сделать. (Заметьте, что я не спрашиваю есть ли вакантные места, я в общем) ;)
Обидно?

выражение «ещё вопросы?» обычно их прекращает :)

Вот пока не хочу идти к вам работать! Есть чем ещё заманить? Или думаете, что только деньгами можно привлечь?

Боюсь, в тот стартап, что мы делали — уже поздно. После ссоры с инвестором компанию прикрыли. А в моей компании вакансий пока нет :)
Нормально.

Ого! Даже прикрыли!? Наверное из-за денег ссора. Ну да ладно. Была компания и нету…

Приятной и плодотворной работы вам в вашей компании. )))
Sign up to leave a comment.

Articles