Навыки на 100%, а лучше меньше

    В 2011 году при собеседовании на позицию ведущего разработчика мне в руки попался интересный документ, который не даёт успокоиться до сих пор. Он мешает мне поставить самому себе 100% владения айтишными хард и софт скилам. И надеюсь, теперь помешает и тебе.

    На собеседовании было два задания. Первое заключалось в проектировании сервиса геопоиска с нуля. Дословно: «У нас есть база с координатами кафе, у пользователя есть устройство с 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

      +2
        0
        Да, эту таблицу видел. Спасибо.
        +1
        ИМХО, анкета по ссылке немного бестолковая.
        Я вот только слышал о MooTools, Prototype, Dojo и ExtJS. А табличную верстку только в письмах видел да паре легаси проектах. Но учить их не собираюсь. Это лишь инструменты, причем некоторые из них устаревшие давно. Подобные анкеты в мире фронтенда будут устаревать быстрей, чем вы их соберете.
          0
          Как минимум раз в год надо чистить, согласен

          Табличную вёрстку учить несложно, а вот тестировать письма — это тот ещё гемор. Но сейчас есть фреймфорки типа такого mjml.io конечно, он берёт на себя эти знания древних технологий.
            0
            А, это про Google Doc? Там технологии 2011 года. Старые, да.
            +1

            Там в опроснике в паттернах опечатка — composit вместо composite и 3 (три) паттерна под названием mixin.

              0
              Исправил
              +1
              Тема, конечно, любимая холиварная. Но не могли бы вы описать, в чём суть _методологий_ Waterfall и Agile? Кажется мне, что и остальная часть этого опросника — набор случайных слов из разных предметных областей.
              Один из важных советом по прохождению интервью: никогда не верить перечисленным в вакансиях спискам требований и технологий. Всегда на месте выяснять что же на самом деле нужно работодателю.
                +4
                В свое время видел такую шкалу:
                Оцените ваши знания инструмента:
                1. Не слышал.
                2. Слышал.
                3. Видел, как используют.
                4. Пробовал.
                5. Регулярно использую.
                6. Обучаю пользоваться.
                7. Читал исходники
                8. Реквестил патч-фикс
                9. Мейнтейню репозиторий.
                10. Я — автор.
                  +2
                  Есть ситуации, к применению С++, даже 10 по этой шкале, означает 70% знания. Бьёрна Страуструп.
                    0
                    Интересная шкала, но не очень линейная. середину нужно чуть более дробную.
                      +1

                      По своему опыту могу сказать — 7 и 6 (и даже 8 и 5) могут идти и в обратном порядке: например, заслал фикс для какого-нибудь маленького модуля в большом фреймворке, который применил в одном проекте и больше не трогал. Хотя это, конечно, скорее исключение, чем правило.

                      +1
                      В шаблонах проектирование mixin встречается 3 раза подряд.
                        0
                        да, удалю лишние копии
                        0
                        592, но я не web программист, думаю простительно.

                        Список хороший, но получив такое на собеседовании, я предложу уволить архитектора. Потому что в теории это все выглядит красиво, а на практике смесь из нескольких php фреймворков и других языков программирования. Да еще и erlang. И зоопарк из ОС. И еще зачем-то указание Linux, после двух разных дистрибутивов.
                        Оно вам точно все вместе надо?
                        Если это web студия, пишушая на заказ, тут другой вопрос конечно, да.
                          0
                          На практике 100% никому не нужно. Достаточно одного из МVCшных фреймворков на бэке и желания изучить другой. То есть проходной порог может быть 25-30%
                          0
                          Не нашёл как прямо там написать комментарий, поэтому напишу сюда.
                          По ООП:
                          final — это, может быть ключевое слово из Java, Kotlin, C++ и наверняка из каких-то других языков. Надо, наверное, уточнять язык. А то непонятно.
                          attribute — может быть из C#, C++, Rust, наверное ещё откуда-то. Может быть общее поняти из ООП.
                          Короче, есть рац. предложение уточнять откуда понятие.
                            +1
                            Посыпаю голову пеплом. Это всё, наверное, из PHP. Я просто с этим языком практически не знаком. Не догадался.
                              0
                              Да, это PHP. Надо уточнять, согласен.
                              +1
                              мне в руки попался интересный документ, который не даёт успокоиться до сих пор. Он мешает мне поставить самому себе 100% владения айтишными хард и софт скилам.

                              Вот это на мой взгляд очень важно для любого разработчика. Не придти в состояние уверенности «всезнания» или почти «всезнания». Встретить что-то (книгу, анкету, статью, доклад, не суть важно), что покажет тебе, что на самом-то деле ты ничего не знаешь. Что в казалось бы изученной тобой вдоль и поперек области еще столько всего, что даже непонятно, с какой стороны начать все это изучать. И не забывать про это в дальнейшем. У меня лично это была книга Andrei Alexandrescu «Modern C++ Design: Generic Programming and Design Patterns Applied» после первых же глав которой я с очумелым видом, понял, что вообще ничего не знаю о C++
                                0
                                Когда оценка знаний по технологиям и программированию сводится к знаниям фреймворков — это тупиковая ветвь развития.
                                Жизненный цикл у них с каждым новым всё меньше и меньше, не говоря уже о разнообразии, которые выражается не только в синтаксисе, но и в походе к решению задач в целом.
                                Простой пример:
                                Сегодня ты знаешь Angular — завтра его не стало. Тебя на свалку.
                                Сегодня ты знаешь JS — завтра не стало Angular. Ты до сих пор знаешь JS.
                                Хотя если не стало JS, то копаем глубже к знаниям основ программирования, алгоритмов.
                                Мысль: Жизненный цикл ЯП выше чем фреймворков.
                                Если ты не знаешь/не сталкивался/не работал с Ember, Backbone или ещё каким фреймворком, то это не значит что ты не знаешь JavaScript.

                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                Самое читаемое