На собеседовании было два задания. Первое заключалось в проектировании сервиса геопоиска с нуля. Дословно: «У нас есть база с координатами кафе, у пользователя есть устройство с GPS навигатором и он может нам передать свои координаты + радиус поиска, а мы должны выдать все, что есть в указанном радиусе от него. Неторопливо, с чувством, с толком, с расстановкой». Мне казалось, что я за час спроектировал всё. Всё. Вообще всё. Только штат сотрудников не набрал :) Ну там было много наводящих вопросов, были подсказки. Однаков внутренне я ликовал — я спроектировал 2ГИС!
Вторым была анкетка. Листочек А4, двухсторонний. Вот такой. Список терминов по группам, оценка по каждому термину от 0 до 4.
Если class — это знакомый термин, ставим [ 1 ]; если можешь рассказать что это такое, то [ 2 ]; если приходилось сталкиваться на практике, то [ 4 ]. По каждому блоку считаем сумму балов, пишем рядом с блоком, затем суммируем по всем блокам.Хм. А я, оказывается, знаю не всё. Оказывается, я много чего не знаю. Особенно грустно, что это уже тогда использовалось в компании. Могу ли я считаться ведущим, если вот так вот первый встречный в компании расскажет мне о том, о чём я даже не догадывался.
Этот листок долго лежал у меня на столе. Месяц за месяцем я «чекрыжил» в нём пунктики. Некоторые были интересные, некоторые скучные. Из всего этого процесса особенно меня бесил подсчёт баллов. В оригинале это надо было посчитать на калькуляторе, но у меня же есть JavaScript! Сделал версию на KnockoutJS, счёт пошёл быстрее.
Затем я использовал этот документ для помощи своим коллегам. Теперь уже мы вместе работали над повышением своего уровня, проводили митинги-обзоры. Те, кто рассказывал, получал двоечку, а те кто слушал — единичку. Бывает и на практике что-то применяли.
За это время PHP чуть-чуть повысил циферку своей версии. Стало быть надо дополнять анкету новыми понятиями, терминами. Значит то, что вчера было оценено на максимум баллов или 100%, сегодня стало меньше. А ещё появился ReactPHP. А ещё новые версии фреймворков. И приложение стали разбивать на фронт и бэк. И на фронте jQuery начали заменять на Backbone, Ember, Knockout, Angular.
Стоило только включить или дополнить анкету терминами, оценки мигом скатывались вниз. Самое главное — теперь я не знал, что именно нужно включить в список, слишком много разделов, я не успевал сканировать разделы, чтобы дополнять анкету. Мы разделились. Часть команды изучала технологии на фронте и постепенно дополняли анкету, другие уточняли сведения по бэку.
В прошлом году я проводил небольшое исследование по этой анкете. В опросе приняли участие 40 человек разного уровня владения веб-технологиями, от школьников до архитекторов. В моём исследовании был такие вопросы:
Узнал ли ты что-нибудь новое для себя просто просмотрев список терминов во время опроса?Из 40 опрошенных 75% дали ответ «Да, я нашёл то, что было мне не известно».
Планируешь ли поискать что-нибудь из того, где поставил отметку 1?32 из 40 ответили «Да».
Планируешь ли попробовать что-нибудь из того, где поставил отметку 1 или 2?19 из 40 ответили «Да».
Ещё одно исследование я делал среди айтишников, в чьих резюме или на их веб-страницах встречались оценки своих навыков, такие графики с процентами. Скиллбары или скиллбублики. «Я знаю JavaScript на 90%». С ними я созванивался через Skype и выяснял, как они вычисляют свой процент владения технологиями, задавал вопросы по своему же опроснику. В общем нет у них тех процентов, как и у меня когда-то не было. Потому что они не знают эталона, по которому нужно проводить измерение. Их ход мыслей при выставлении оценок примерно такой: «100 не поставлю, чтобы не придирались; но я же не идиот, уже 3 года вожусь с этим — поставлю себе 83%». Пальцем в небо, с потолка. Не верьте скиллбарам.
Сегодня я хочу отдать сообществу эту анкету в формате SaaS для обсуждения, дополнения и использования в практике.
up.uptlo.com
Анкета может быть использована для личных нужд, можно создавать новые разделы. Анкета не требует авторизации, сохраняется в localStоrage.
Последней фразой я хочу открыть вам путь к непрерывному обучению:
Желаю вам никогда не получать 100%!
Комментарии (21)
oxidmod
12.02.2019 10:06ИМХО, анкета по ссылке немного бестолковая.
Я вот только слышал о MooTools, Prototype, Dojo и ExtJS. А табличную верстку только в письмах видел да паре легаси проектах. Но учить их не собираюсь. Это лишь инструменты, причем некоторые из них устаревшие давно. Подобные анкеты в мире фронтенда будут устаревать быстрей, чем вы их соберете.
uzverkms
12.02.2019 11:14Тема, конечно, любимая холиварная. Но не могли бы вы описать, в чём суть _методологий_ Waterfall и Agile? Кажется мне, что и остальная часть этого опросника — набор случайных слов из разных предметных областей.
Один из важных советом по прохождению интервью: никогда не верить перечисленным в вакансиях спискам требований и технологий. Всегда на месте выяснять что же на самом деле нужно работодателю.
Oxoron
12.02.2019 11:28В свое время видел такую шкалу:
Оцените ваши знания инструмента:
1. Не слышал.
2. Слышал.
3. Видел, как используют.
4. Пробовал.
5. Регулярно использую.
6. Обучаю пользоваться.
7. Читал исходники
8. Реквестил патч-фикс
9. Мейнтейню репозиторий.
10. Я — автор.Koneru
12.02.2019 11:55+2Есть ситуации, к применению С++, даже 10 по этой шкале, означает 70% знания. Бьёрна Страуструп.
Cerberuser
12.02.2019 15:09+1По своему опыту могу сказать — 7 и 6 (и даже 8 и 5) могут идти и в обратном порядке: например, заслал фикс для какого-нибудь маленького модуля в большом фреймворке, который применил в одном проекте и больше не трогал. Хотя это, конечно, скорее исключение, чем правило.
urtow
12.02.2019 12:26592, но я не web программист, думаю простительно.
Список хороший, но получив такое на собеседовании, я предложу уволить архитектора. Потому что в теории это все выглядит красиво, а на практике смесь из нескольких php фреймворков и других языков программирования. Да еще и erlang. И зоопарк из ОС. И еще зачем-то указание Linux, после двух разных дистрибутивов.
Оно вам точно все вместе надо?
Если это web студия, пишушая на заказ, тут другой вопрос конечно, да.copist Автор
12.02.2019 12:41На практике 100% никому не нужно. Достаточно одного из МVCшных фреймворков на бэке и желания изучить другой. То есть проходной порог может быть 25-30%
Vadem
12.02.2019 13:24Не нашёл как прямо там написать комментарий, поэтому напишу сюда.
По ООП:
final — это, может быть ключевое слово из Java, Kotlin, C++ и наверняка из каких-то других языков. Надо, наверное, уточнять язык. А то непонятно.
attribute — может быть из C#, C++, Rust, наверное ещё откуда-то. Может быть общее поняти из ООП.
Короче, есть рац. предложение уточнять откуда понятие.Vadem
12.02.2019 13:27+1Посыпаю голову пеплом. Это всё, наверное, из PHP. Я просто с этим языком практически не знаком. Не догадался.
ReaderReader
12.02.2019 19:50+1мне в руки попался интересный документ, который не даёт успокоиться до сих пор. Он мешает мне поставить самому себе 100% владения айтишными хард и софт скилам.
Вот это на мой взгляд очень важно для любого разработчика. Не придти в состояние уверенности «всезнания» или почти «всезнания». Встретить что-то (книгу, анкету, статью, доклад, не суть важно), что покажет тебе, что на самом-то деле ты ничего не знаешь. Что в казалось бы изученной тобой вдоль и поперек области еще столько всего, что даже непонятно, с какой стороны начать все это изучать. И не забывать про это в дальнейшем. У меня лично это была книга Andrei Alexandrescu «Modern C++ Design: Generic Programming and Design Patterns Applied» после первых же глав которой я с очумелым видом, понял, что вообще ничего не знаю о C++
KTG
13.02.2019 04:41Когда оценка знаний по технологиям и программированию сводится к знаниям фреймворков — это тупиковая ветвь развития.
Жизненный цикл у них с каждым новым всё меньше и меньше, не говоря уже о разнообразии, которые выражается не только в синтаксисе, но и в походе к решению задач в целом.
Простой пример:
Сегодня ты знаешь Angular — завтра его не стало. Тебя на свалку.
Сегодня ты знаешь JS — завтра не стало Angular. Ты до сих пор знаешь JS.
Хотя если не стало JS, то копаем глубже к знаниям основ программирования, алгоритмов.
Мысль: Жизненный цикл ЯП выше чем фреймворков.
Если ты не знаешь/не сталкивался/не работал с Ember, Backbone или ещё каким фреймворком, то это не значит что ты не знаешь JavaScript.
kein
sijinjoseph.com/programmer-competency-matrix
copist Автор
Да, эту таблицу видел. Спасибо.