Попросили руководителей и опытных разработчиков рассказать, чего они ждут от джуниоров. Эта информация поможет новичкам комфортнее чувствовать себя на собеседованиях, а также легче адаптироваться на первом рабочем месте.
Эксперты ответили на пять вопросов:
Ответы ниже.
Нет :-) В них довольно мало смысла, потому что большинство можно получить просто упорством или даже обманом. Упорство, конечно, хорошее качество, но далеко не главное.
Я бы добавил, что хекслетовские лычки немного внимание всё-таки привлекают, и это даже правда, но боюсь, как-то слишком рекламно выглядеть будет :-) Но пару ребят полгода назад ваших взяли, не пожалели.
Да, зачастую это является огромным плюсом как минимум для ускорения отбора. К кандидатам с кодом всегда отношение лучше, особенно если есть какие-то проекты, где можно посмотреть на навыки декомпозиции, а не просто пара файлов в git.
В таких случаях можно поговорить о его коде и задавать вопросы по нему, а не сочинять что-то на ходу или давать какие-то заготовленные задачки. Да и самим кандидатам обычно легче, новая задача заставляет нервничать и тупить, в своём коде они зачастую ориентируются свободнее, что помогает оценить уровень отдельно от текущего морального состояния :-)
Зависит от того, для чего идёт набор. Если нужен просто упорный и старательный человек, который в начале карьеры будет счастлив заниматься тем, что старшие коллеги уже называют рутиной, то основное, пожалуй, это git и хотя бы поверхностное представление о фреймворке, который используется на проекте, или хотя бы о каком-нибудь схожем. Если же «на вырост», то в первую на кругозор, в какую сторону он вообще развивается и как это делает — выбор книг, конференций, блогов, всего такого.
Есть ли какие-то теоретические знания и вообще интересен ли человеку computer science как таковой, или он просто хочет код за деньги писать одного и того же качества день за днём. Ну и в этом случае, даже если не знает вообще ничего и приходит на вакансию стажёра — тогда что-нибудь по алгоритмам, пока не наткнемся на задачу, которую кандидат не знает. Объясняем, даём похожую, если справился и глаза загорелись — значит обучаемый и с этим можно жить :-)
Ну, тут довольно банально. Уверенность в себе, умение четко формулировать мысли, какая-то общая адекватность и неконфликтность. Но всё зависит от команды, главное чтобы вписался.
Что он будет задавать правильные вопросы и не бояться ошибаться :-) Это, пожалуй, самое главное. Худшее, что может сделать новичок — закопаться в задачах сам, никого не спрашивая и не прося помощи. И скрывать свои косяки. Джунов почти всегда берут «на вырост», и именно на этом росте стоит фокусироваться. Либо же компании нужен очень старательный человек на рутину, но тут опять же, пока не спросишь — не узнаешь.
Виктор Ижокин, старший разработчик ЦФТ Базис.
Дипломы и сертификаты не интересуют, но вот в ходе их получения человек мог сделать какие-то интересные проекты — их надо размещать на GitHub и показывать. Особенно студентов касается, можно курсовые или диплом написать кое-как, а можно выбрать хорошую тему и опубликовать результат.
Портфолио полезно, чтобы получить общее представление об опыте разработчика, конечно его интересно посмотреть. Но больший вес будет иметь конкретный код, который можно посмотреть — на GitHub или другой платформе.
Есть два варианта. Либо человек должен хорошо знать прикладную область и по ходу дела суметь разобраться с технологиями, либо человек должен хорошо знать применяемые технологии и по ходу дела разобраться с прикладной областью. Под технологиями подразумеваю язык программирования, базы данных, библиотеки и фреймворки и так далее.
Джуниор должен хорошо знать теорию, и как что можно сделать. Сеньор должен иметь достаточно опыта чтобы знать как делать не надо :-)
Ну и английский язык не знаю, надо ли упомянуть: его конечно надо знать, чтобы читать документацию и писать комментарии в коде.
Умение аргументировать свою позицию в обсуждениях технических вопросов и понятно объяснять свои идеи. В команде надо уметь не только сделать, но и убедить других, почему сделано так, а не иначе.
Должна быть любовь к своему делу. Я сужу по себе — над чем-то скучным можно максимум пару месяцев работать, после этого хочется компьютер выключить и уйти в лес. А когда задачи интересные, то тогда работа идет. Поэтому должна быть совместимость между задачами в компании и интересами разработчика.
Меня зовут Владислав Завьялов, я работаю в Serokell. Компания разрабатывает софт на Haskell, а я занимаюсь улучшением нашего главного инструмента — GHC, это компилятор Haskell.
Читайте также: Что требуют от джуниоров работодатели: анализ вакансий для младших программистов
Дипломы и сертификаты могут быть важны для получения визы. Некоторые страны просто не дадут визу, если диплом не по специальности. Или для компании в целом, но во время интервью диплом является скорей предлогом для обсуждения, нежели необходимостью для получения вакансии.
Например, лично для меня важно, какие предметы вызывали наибольший интерес для человека во время обучения, чем ему хотелось заниматься и что ему нравится делать и изучать в своей профессиональной области. Такие темы могут быть хорошим предлогом обсудить разные области математики и CS, а также возможностью задать вопросы по алгоритмам, дискретной математике, и так далее в случае релевантности.
Разумеется, просим. Оценка способностей человека только лишь по короткому собеседованию может быть не совсем точной. Если у человека есть портфолио, то оно может помочь составить более полный портрет навыков и показать, как разработчик расставляет акценты во время разработки: какие инструменты и сторонние сервисы использует и, как следствие, знает, ценит ли читаемость кода и документацию. Это значит, что и во время собеседования можно сэкономить время и обсудить только релевантные вопросы.
Ожидается, что джун будет знаком с основами языка программирования Haskell, а именно:
К сожалению, так как Haskell всё ещё не является очень популярным языком программирования, не всегда получается найти человека, знающего основы языка и экосистемы. На моём опыте было много случаев, когда нанимали интерна совсем без знания Haskell — студент знал только Java или OCaml. При таких обстоятельствах мы тратим первые пару недель на работе, чтобы помочь человеку изучить основы Haskell. В таком случае важным является усердие, терпение и желание заниматься, поскольку Haskell не всегда является простым и дружелюбным языком для изучения.
От джуна ожидаем трудолюбие, терпение, общительность, любознательность. В зрелом проекте далеко не всё может быть понятно новичку, поэтому не надо бояться задавать вопросы, уточнять детали реализации и не стесняться предлагать свои идеи. Свежий взгляд и мнение даже от джуна может быть крайне ценно!
Самое главное в джуне — желание учиться и разбираться в проекте. От компании я ожидаю менторство и помощь начинающим разработчикам. Но не всегда менторы могут быть рядом, чтобы объяснить все мелочи. Желание работать, тратить время и развиваться, чтобы набрать опыт и впитать практики разработки — основные качества, которые я ожидаю от джуна.
Меня зовут Дмитрий Коваников. Ранее преподавал курс прагматичного Haskell в Университете ИТМО. На текущий момент имею опыт разработки 4 года на языке программирования Haskell в продакшене. Сейчас я работаю как Quantitative Developer в банке Standard Chartered в Лондоне. Пишу на языке программирования Haskell и решаю следующие задачи: реализация и поддержка трейдинговых сервисов, разработка билд-тулов, анализ и улучшение производительности сервисов, поддержка сервисов деплоймента и Continuous Integration.
В свободное время я активно занимаюсь разработкой опенсорсных библиотек и приложений на Haskell в организации Kowainik, которую мы создали, чтобы улучшать экосистему Haskell, развиваться самим, а также помогать людям изучать язык и контрибьютить в опенсорс по мере наших возможностей. Являюсь активным участником Haskell-сообщества, спикером на конференциях и митапах, автором множества блог-постов по теме функционального программирования и Haskell.
Мой личный сайт, Twitter, LinkedIn.
Не особо, только если были приложены в CV и ресурс имеет высокий траст. Сейчас почти все курсы раздают сертификаты, но по факту не все из них доказывают реальный опыт или качественное изучение темы.
Явный плюс, если имеется. Просим что-то из GitHub/Bitbucket/Gitlab или ссылки на проекты. Таким образом можно достаточно точно прикинуть уровень собеседника.
Базовые знания Git, уверенная работа с любым из редакторов, хорошая коммуникабельность.
Я не стал писать про «чистый и понятный код», тестирование, знание ООП и тому подобное. Обычно это всё приходит с опытом работы в команде, когда человек применяет локальные стандарты, скрипты, архитектуру, и они, как правило, разнятся от компании к компании.
Базовое понимание сферы, в которой придётся работать, внимательность, обучаемость, заинтересованность. Желательно, чтобы был опыт в создании каких-то личных проектов, не обязательно удачных или масштабных.
Быстрое обучение, рост опыта, становление мидлом или синьором.
Александр Тешабаев, основатель сервиса комментариев AnyComment.
Я занимаюсь разработкой более 10 лет, имел собственный стартап и побывал во многих компаниях, наблюдал и участвовал в поиске новых разработчиков. В Студии Олега Чулакова мы занимаемся разработкой сложных высоконагруженных веб-сервисов для крупного бизнеса и постоянно пополняем свою команду талантливыми и перспективными ребятами. Исходя из этого опыта, я хочу поделиться с вами собственными наблюдениями и нашими требованиями к потенциальному соискателю на вакансию Junior Developer.
Наличие хорошего технического образования, особенно по ИТ-специальности, конечно, является важным фактором при устройстве к нам. Но необходимо понимать, что академические знания, полученные в вузе, лишь формируют техническое сознание и умение мыслить в нужном нам направлении и дают некую базу не прикладного характера.
Мы очень часто нанимали отличных специалистов без профильного технического образования. Важно, чтобы наш потенциальный junior-разработчик умел мыслить алгоритмами, грамотно выражал мысли в плоскости веб-разработки и результативно взаимодействовал с коллегами. Жизнь и работа в Студии построена на эффективных коммуникациях между командами, специалистами и руководителями.
Мы признаем только правдивые резюме. Если человек указал что-то, чем по факту не владеет, это будет большим минусом, и, скорее всего, мы не сработаемся. Честность и открытость — то, что мы ценим. Наличие в портфолио соискателя собственных наработок на GitHub/GitLab дает нам возможность посмотреть его код до очного знакомства и сделать для себя выводы о его прикладном минимуме.
В Студии существует четкий бизнес-процесс подбора, найма и собеседования с разработчиками. Техническое собеседование обычно проводит тимлид, senior-разработчик или CTO. Эта часть собеседования состоит из теоретического интервью и тестового задания. Тестовое задание может выполняться до или после устного собеседования, на усмотрение старшего специалиста, который производит отбор кандидатов. Устное собеседование проходит в неформальной обстановке: наша цель — взять себе в команду лучших, а не напугать молодых специалистов. Соискателю задаются технические вопросы по языкам, алгоритмам и методологиям.
При проведении собеседования с начинающим junior-специалистом мы смотрим на то, как человек мыслит и находит логические решения проблемного вопроса. Правильность ответов важна, но еще важнее логика рассуждения отвечающего. Мы всегда просим мыслить вслух, размышляя над проблемой.
Во время испытательного срока наш junior-разработчик должен показать, что он готов быстро обучаться в режиме 24/7 и применять полученные знания на практике. Он должен стать частью нашего профессионального и дружного коллектива. С первых дней работы мы ставим реальные задачи, уровень и сложность которых возрастают вместе с ростом скилов специалиста. Первыми словами, которые новичок услышит от своего наставника в компании, будут: обучение, трудолюбие, ответственность и инициатива.
Также полезно: Как джуну написать сопроводительное письмо, за которое его возьмут на работу
Илья Караваев, Backend Teamlead, Oleg Chulakov Studio.
Хочу начать с того, что компания у нас небольшая — менее 100 человек, поэтому джуниоров набираем не часто. Это довольно большая ответственность: нужно помочь человеку влиться и обеспечить ментором.
Тем не менее положительный опыт найма джунов, которые впоследствии становились незаменимыми людьми в компании, был.
На этапе собеседования не проверяем, обычно доверяем информации в резюме. На этапе приема на работу диплом требуется для оформления документов.
Обычно самые значимые проекты соискатели сами указывают в резюме. Если информации недостаточно и сложно понять уровень, запрашиваем ссылку на GitHub или портфолио дополнительно.
Хард-скилы зависят от проекта, на который ищется человек. Если говорить в общем, то обращаем внимание на базу: HTML, CSS, JS, у нас нет деления на просто верстальщиков и JS-программистов.
Если на проекте используется фреймворк, то требуется минимальный опыт работы с ним, потому что рассчитываем, что человек сразу сможет выполнять задачи.
Теоретические знания на собеседовании не проверяем, строим интервью таким образом, чтобы понять, как человек мыслит и подходит к решению задач. Также уделяем внимание стремлению изучать что-то новое.
Важны ответственность, инициативность, коммуникабельность.
Важно, чтобы человек не ждал, пока у него спросят, как дела, или потребуют предоставить результат.
Если есть вопросы, нужно сразу их задавать, если есть проблемы — пытаться найти решение или того, кто поможет. На мой взгляд, начинающему разработчику важно не бояться делать ошибки и признавать их.
Мы ценим желание не просто сделать задачу, а сделать ее хорошо, чтобы впоследствии можно было гордиться сделанным проектом.
Искренность, открытость, желание расти. В нашей профессии важно не останавливаться и каждый день учиться новому — и это касается не только джунов.
У меня есть любимая цитата: «The more you know, the more you know you don't know».
Когда я слышу от разработчика любого уровня, что он не читает статьи или не ходит на митапы, потому что «там ничего нового», я начинаю сомневаться в его опыте.
Анна Селезнёва, Lead Frontend Developer @ Spiral Scout.
Диплом или сертификат — скорее приятное дополнение к портфолио и резюме, чем необходимость. Для проверки мне более интересны конкретные навыки и технологии, которыми владеет кандидат в связке с задачами, которые он может решать.
Да, конечно. Должен быть практический опыт, даже если это дипломный проект, который делался при окончании курсов или проект, который сделан для воображаемого клиента. Это важно, чтобы мой технический директор смог сделать обзор кода, найти сильные и слабые места, чтобы было понятно, как дальше вести разговор с кандидатом.
Ключевое умение — самостоятельно выполнять несложные и чётко поставленные технические задачи. Также важно понимание не только что он делает, но и почему именно так. Конечно, ошибки будут — без этого никуда. Поэтому джуниор всегда работает под руководством технического директора или более опытного коллеги — обсуждает с ним план по реализации задачи и полученный результат.
Большинство софт-скиллов проявляются уже в работе. Но, для начала, будет три банальных пункта:
Готовность работать в таком режиме:
Учиться новому => применять на практике => получать обратную связь о результате => учиться новому => применять на практике => …
Сергей Иванов, руководитель команды веб-разработчиков и соавтор курса по продажам для фрилансеров
Сразу скажу, я работаю в опенсорсе. И тут есть два варианта:
Так вот, джунов на платной основе в опенсорсе я лично ни разу не видел. Отвечаю на вопрос: ни для первого, ни для второго варианта работы ни разу не слышал, чтобы проверяли дипломы или просили сертификаты. Для того, чтобы работать на коммерческой основе, важно то, что вы уже сделали.
Но для того, чтобы помочь любимому проекту на бесплатной основе однозначно ничего предъявлять не нужно. В опенсорс-проектах важно то, что вы делаете и как вы это делаете. Если джуниор захочет сделать что-то в опенсорс-проекте, и сделает это что-то качественно, то никто даже и не узнает, что это был джуниор.
Конечно! GitHub в опенсорсе — это своего рода single source of trust. Если мы говорим про наём, то это в основном единственное, на что смотрят. Хотя многие компании такие как Cypress.io, хотя и являются опенсорсом, нанимают на позиции ровно так же, как это делают коммерческие компании.
Но и опять, повторюсь, для того чтобы сделать просто коммит в опенсорс, вам не нужно ничего доказывать. Нужно просто желание сделать и понимание того что вы делаете.
Поделюсь своими личными ожиданиями. Если бы я брал джуна на работу, то ожидал бы одного – чтобы горели глаза. То есть было бы реальное желание учиться, что-то делать и развиваться. Знание технологий конечно важно, но гораздо важнее умение и желание научиться. Помимо этого, однозначно ожидал бы уже готовых проектов, на которые можно посмотреть, пощупать и задать вопросы – что да как.
Дмитрий Коваленко, Material UI core member. Профиль в Twitter.
Если у вас есть вопросы к экспертам или вы хотите поделиться собственным опытом, пишите в комментариях.