Дмитрий Цыганов

Дмитрий ЦыгановКруг Зенона

Так получилось, что в последнее время я провожу множество технических интервью. В том числе пару раз в составе команды из нескольких интервьюеров собеседовал кандидатов в стажеры. Среди множества всевозможных вопросов и задач встречался один невинный вопрос: "Как бы Вы сами оценили Ваши знания Java по пятибальной шкале?". Все кандидаты давали оценку 4/5. Дальнейшие вопросы показывали, что реальный разброс уровня владения языком очень большой.
Это показалось мне интересным, и я задумался, как бы я оценил свои собственные знания по этой самой пятибальной шкале. С одной стороны у меня уже шестилетний опыт профессиональной разработки на Java, несколько успешных проектов и десяток прочитанных книжек. С другой стороны определенные пробелы в том, как jvm устроен внутри, да и библиотек мог бы знать и побольше. Выходит тоже где-то 4/5. Спрашивал коллег, большинство сказало 4/5. Таким образом если сформулировать в виде закона: субъективная оценка собственных знаний у большинства разработчиков не зависит от реальных знаний (и для Java равна 4/5 :) ).

P.S.: Почему пост называется "Круг Зенона"? Есть такая красивая легенда про древнегреческого философа и его ученика. Хорошо подходит под вышеприведенное наблюдение :)

Комментарии

  1. В начале своей карьеры, то ли на втором, то ли на третьем курсе, я проходил собеседование в компании Транзас. Его проводили для отобранных студентов с "кафедры Парфенова" и других хороших мест работники этой компании перед тем как читать курс лекций по C++ и ООП, чтобы просто понять общий уровень группы. Кстати, было очень познавательно. Я имел наглость ответить, что знаю C++ на 9/10... у проводившего собеседование просто загорелись глаза, когда он это услышал )))... оговорки, что это среди сокурсников, меня не спасли...

    Причем после прохождения этого курса, я уже думал, что знаю где-то на 8/10, но уже с новыми знаниями =).

    Так что разброс действительно может быть очень огромным, ведь оценка дается субъективная - она основана на своем понимании что такое 5/5 :).

  2. По моему естественно. Оценка вида x/y - это уравнение с двумя неизвестными. И свой объем знаний _x_ можно назвать только зная общий объем знаний по теме и объем своих незнаний по теме; первое субъективно складывается из своего опыта и опыта коллег, второе из того что "слышал есть такое, но пока не разбирался"

  3. Ок, тогда мое знание Java - 4/5) Дима, возьми меня на работу!

  4. С удовольствием! Только для начала нужно проверить как они коррелируют с моими 4/5 :)

  5. Промахнулся чуть выше. Бывает.
    Лично я бы оценил свои знания в программирования уж точно не выше оценки 0 из 1000. И тут дело не столько в моем полном отсутствии знания как Javascript или PHP. Просто таково мое личное понимание самих языков программирования. В них нельзя знать все и знать всех возможных решений и применения. Хотя это не аксиома. Для меня существует тот, кто знает 1000 из 1000. И это человек способный создавать сами языки программирования. Хотя здесь я малость ввожу в заблуждение. Человек сам не может обладать знаниями на 1000 оценку. Но может создать систему, способную выполнять задачу программиста этого уровня. Фактически это уже ИИ, или точнее Интерфейс Управления ИИ.
    Именно компьютер сегодня выполняет главную задачу программиста. Автоматизацию.
    А работа программиста создание простейших автоматизаций по средством написания простейших задач. Это не программирование. Человек тратит на написание кода максимум день. Но сам исполнять всю работу этого кода человек будет годами. Или еще дольше.
    И тот программист, который пишет наиболее автоматизированные программы. Тот лучший программист. А тот кто сможет написать автономные алгоритмы. Тот лучший из лучших. И именно они обладают наиболее точными познания сути программирования.
    Языки программирования или быстро развиваются, или быстро устаревают. И в итоге перед тобой выбор: всю жизнь до последнего дня изучать и так и не изучить, или сдаться и перестать быть актуальным.
    Лично я точно оцениваю свои знания равные 0 из 1000 возможных.