Страницы

Поиск по вопросам

воскресенье, 9 февраля 2020 г.

Senior Python Developer?

#python


Часто вижу в заголовках вакансии слово Senior, и далее большие суммы которые готовы
платить этому человеку. Закономерно возникает вопрос, кто такой Senior?
Какие критерии существуют чтобы определить senior человек или не senior?
Какие вопросы задают senior python девелоперу на собеседовании?    


Ответы

Ответ 1



Очень сложный вопрос ) Все равно человека собеседует человек, у которого имеется своё представление о том, кто такой Senior. Для кого-то это чел, который знает как оценить сложность алгоритма и который на листочке напишет сразу несколько способов сортировки. Для кого-то это чел, который ответит на вопрос вроде "В чем разница между synchronized, ReentrantLock и AtomicReference?" Для меня градация приблизительно такая: Junior Базовые знания core java (типы коллекций и разница между ними, остановка/запуск потоков, что такое generics, три "слона" ООП). По библиотекам вопросы чисто поверхностные. Developer Всё что junior + хорошее знание библиотек, которые перечислены в резюме и которые мне нужны. Если написано, что человек знает XSLT, а мне это щас не надо и я знаю что в проекте это не нужно, то я и не спрашиваю. Ну и вопросы уже более глубокие, например как работает наследование в generics, как синхронизировать потоки, что быстрее: LinkeList или ArrayList и почему, класслоадеры и т.д., базовые паттерны типа синглтон, фасад, итератор и т.д. Senior Developer Всё что developer + рассадник вопросов "Почему". Здесь человек сознательно загоняется в тупик разными "почему, зачем, нафига" и смотрится его реакция. Здесь очень удобно использовать предыдущий опыт кандидата, обсудить его проекты. Например "Вот ваш мегапроект из резюме, стоит на Spring, WebServices и JPA. Зачем вам JPA? Какой JPA, чем один от другого отличается? Почему именно так, а не иначе? Как бы вы сделали по-другому/быстрее/удобней/красивее?" При этом ответы типа "Так сделали до меня" или "Просто так прикольно" автоматом идут в минус. Если человек не понимает, для чего нужно так или иначе в своей родной среде, то извините, это никак не Senior. Здесь важно умение аргументировано выбирать лучшее решение и доказывать, что именно так будет лучше, чем по-другому. Чем больше библиотек и фреймворков в резюме, тем лучше. Тут такое можно развести... Ну, сами понимаете :) Team Lead и Архитектор это уже другая песня. P.S. Мнения типа "На такие вопросы даже моя бабушка ответит" можно даже не высказывать. Я ж не говорил, что после ответа вопрос сразу зачислю претендента в ту или иную группу. Обычно кандидат плавает из одной в другую. Помимо этого есть ещё немало критериев вроде коммуникабельности, умения грамотно выражать свои мысли чтобы остальным было понятно что вы щас сказали и т.д. Никогда не делал большого упора на знание алгоритмов. Может человек и знает 8 способов сортировки, 6 способов обхода графа, может легко написать ОПЗ/ППЗ любого арифметического выражения, да еще и знает область применения LL1 грамматик, поклоняется книгам Кнута, а Дейкстра - его герой, но это всё в проекте мало применимо, потому что там надо тупо данные передавать из места "А" в место "Б" используя Spring, WS и сделать для этого UI на GWT (всё как пример), но он в этом ноль, то что прикажете с ним делать? :) Ну не нужно в проекте ничего сортировать, обходить и считать. Все его знания для проекта нафиг не нужны. Нужно просто знать как работать со Spring, GWT и WS. Всё зависит от проекта и решаемых им задач. Точнее, даже всё. Если ваш проект - новый язык программирования, то человек вам подходит. Если проект - очередной спринг + обвес, то это не ваш разработчик. Важен баланс. Важно и знание основ, алгоритмов, и знание того, с чем 90% разработчиков работают. Это идеал. Кардинальный перевес кандидата в какую-то сторону может ему как дать преимущество, так и не дать. Всё зависит от проекта и ожиданий того, кто вас собеседует. А то щас подумаете, что достаточно досконально знать кучу либ и больше ничего не надо. Надо, очень надо. Это вам надо в первую очередь. Как-то так :) Источник

Ответ 2



Какие критерии существуют чтобы определить senior человек или не senior? Обычно список требований пишут сразу в объявлении, но в общем это не только хорошее знание языков программирования и алгоритмов, но и человек имеющий реальный опыт в создании реальных программных продуктов. Так же желателен опыт в руководстве людьми.

Комментариев нет:

Отправить комментарий