Зарплатный коуч.
Моя позиция Lead\Senior Full-Stack Software Engineer. У меня за плечами более 5 лет коммерческой разработки программного обеспечения.
Основная специализация Java\Kotlin\TypeScript, в данный момент для компании разрабатываю проекты с использованием Spring и Angular.
Я прошёл более 60 очных собеседований на различные IT должности, в компании разных размеров, на ЗП от 500$ до 8000$.
Работал во всемирно известных немецких, американских и русских компаниях.
За эти года я просмотрел тысячи резюме и провёл больше сотни собеседований на должности Backend и Frontend разработчиков.
Жизнь закидывала меня в разные ситуации, я проходил собеседования и принимал на работу.
Если вы хотите повысить шанс успешного прохождения собеседования, то я объясню, что может оттолкнуть и расположить к себе интервьюеров.
Ссылки:
* https://ru.stackoverflow.com/users/184435/komdosh - более 10к репутации
* https://github.com/Komdosh - развиваю личные проекты
* https://komdosh.pro/ - личный сайт
Моя позиция Lead\Senior Full-Stack Software Engineer. У меня за плечами более 5 лет коммерческой разработки программного обеспечения.
Основная специализация Java\Kotlin\TypeScript, в данный момент для компании разрабатываю проекты с использованием Spring и Angular.
Я прошёл более 60 очных собеседований на различные IT должности, в компании разных размеров, на ЗП от 500$ до 8000$.
Работал во всемирно известных немецких, американских и русских компаниях.
За эти года я просмотрел тысячи резюме и провёл больше сотни собеседований на должности Backend и Frontend разработчиков.
Жизнь закидывала меня в разные ситуации, я проходил собеседования и принимал на работу.
Если вы хотите повысить шанс успешного прохождения собеседования, то я объясню, что может оттолкнуть и расположить к себе интервьюеров.
Ссылки:
* https://ru.stackoverflow.com/users/184435/komdosh - более 10к репутации
* https://github.com/Komdosh - развиваю личные проекты
* https://komdosh.pro/ - личный сайт
Stack Overflow на русском
Участник Komdosh
Вопросы и ответы для программистов
Отказ. Про деревья не расскажу.
На одно из собеседований на Senior Java пришёл к нам Lead Java Developer.
Резюме у него было составлено как надо, 15 лет работы по специальности Java программистом,
в свободное время также уделяет своим проектам, в общем по описанию надо было его урвать
всеми силами с руками и ногами. И вот пришло время технического интервью, где мы смогли
поговорить по душам. С моей стороны посыпались технические вопросы по Java и Spring,
на удивление он смог правильно ответить только на половину из них, ещё на небольшую часть
он смог ответить только с большими подсказками. На собеседовании очень важно понимать уровень
подготовленности человека, он действительно может забыть, как проходить собеседования и в жизни он
не замечал, как использовал что-то из заданных вопросов, мы делаем на это поправку. Всё стало совсем
странно, когда я предложил ему ответить на несколько вопросов по деревьям. Ему не предлагалось реализовывать
AVL-дерево, только обсудить основные моменты данных структур, вследствие чего он чуть ли не выкрикнул, что не будет
рассказывать про деревья ни в каком виде. Он считает, что понимание не нужно, все алгоритмы реализованы
и расписаны в гугле, а сами деревья ему ни разу не пригодились. Это странное поведение на собеседовании,
особенно для человека с 15 годами опыта. То, что он за эти 15 лет не встречался с ними, не означает,
что это не потребуется на новой работе. В конце ему был предложен вопрос на архитектуру,
с которым он справился достаточно хорошо, однако мнение интервьюеров уже было сформировано, этому человеку необходимо дать отказ.
По общению с ним было понятно, что он несколько отдалился от непосредственной разработки и написания кода,
а больше занимался задачами менеджера.
Отказ был дан по большей части из-за резкого и снисходительного общения с интервьюерами. Он открыто критиковал
и пытался переформулировать вопросы в свою сторону. Отказ от ответа на основании того, что вы считаете вопрос
странным, является неправильным ходом, лучше сказать, что вы недостаточно осведомлены, но попробуете. Лучше
попытаться ответить на вопрос, интервьюер смотрит на то, как вы мыслите, а не как вы заучили учебник.
Никогда не теряйте самообладание и ведите себя максимально уважительно, вам с этими людьми ещё работать.
На одно из собеседований на Senior Java пришёл к нам Lead Java Developer.
Резюме у него было составлено как надо, 15 лет работы по специальности Java программистом,
в свободное время также уделяет своим проектам, в общем по описанию надо было его урвать
всеми силами с руками и ногами. И вот пришло время технического интервью, где мы смогли
поговорить по душам. С моей стороны посыпались технические вопросы по Java и Spring,
на удивление он смог правильно ответить только на половину из них, ещё на небольшую часть
он смог ответить только с большими подсказками. На собеседовании очень важно понимать уровень
подготовленности человека, он действительно может забыть, как проходить собеседования и в жизни он
не замечал, как использовал что-то из заданных вопросов, мы делаем на это поправку. Всё стало совсем
странно, когда я предложил ему ответить на несколько вопросов по деревьям. Ему не предлагалось реализовывать
AVL-дерево, только обсудить основные моменты данных структур, вследствие чего он чуть ли не выкрикнул, что не будет
рассказывать про деревья ни в каком виде. Он считает, что понимание не нужно, все алгоритмы реализованы
и расписаны в гугле, а сами деревья ему ни разу не пригодились. Это странное поведение на собеседовании,
особенно для человека с 15 годами опыта. То, что он за эти 15 лет не встречался с ними, не означает,
что это не потребуется на новой работе. В конце ему был предложен вопрос на архитектуру,
с которым он справился достаточно хорошо, однако мнение интервьюеров уже было сформировано, этому человеку необходимо дать отказ.
По общению с ним было понятно, что он несколько отдалился от непосредственной разработки и написания кода,
а больше занимался задачами менеджера.
Отказ был дан по большей части из-за резкого и снисходительного общения с интервьюерами. Он открыто критиковал
и пытался переформулировать вопросы в свою сторону. Отказ от ответа на основании того, что вы считаете вопрос
странным, является неправильным ходом, лучше сказать, что вы недостаточно осведомлены, но попробуете. Лучше
попытаться ответить на вопрос, интервьюер смотрит на то, как вы мыслите, а не как вы заучили учебник.
Никогда не теряйте самообладание и ведите себя максимально уважительно, вам с этими людьми ещё работать.
Зачем на собеседованиях спрашивают алгоритмы?
Понимание алгоритмов не только показывает ваши познания и уровень образованности. Почти все задачи, которые задаются на техническом собеседовании подразумевают умение подобрать подходящий готовый алгоритм.
Задав вопрос про эффективный поиск элемента в отсортированном массиве, скорее всего интервьюер
желает услышать, знает ли кандидат про бинарный поиск. Дело в том, что при коммерческой разработке, очень часто возникает ситуация когда задача поставленная менеджером может быть легко сведена к одному из известных алгоритмов. Не стоит пренебрегать ими, но и отдавать предпочтение только им не следует.
Важно запомнить и общий алгоритм решения задач на собеседовании:
Внимательно выслушайте задачу
Представьте пример
Опишите решение в лоб
Оптимизируйте
Проведите пошаговый разбор
Только после этого приступайте к коду
Протестируйте своё решение.
Вам не обязательно уметь реализовывать алгоритм на языке программирования, важно понимать его суть, если вы продемонстрируете понимание интервьюеру, то это сразу ставит вас в выгодное положение.
Понимание алгоритмов не только показывает ваши познания и уровень образованности. Почти все задачи, которые задаются на техническом собеседовании подразумевают умение подобрать подходящий готовый алгоритм.
Задав вопрос про эффективный поиск элемента в отсортированном массиве, скорее всего интервьюер
желает услышать, знает ли кандидат про бинарный поиск. Дело в том, что при коммерческой разработке, очень часто возникает ситуация когда задача поставленная менеджером может быть легко сведена к одному из известных алгоритмов. Не стоит пренебрегать ими, но и отдавать предпочтение только им не следует.
Важно запомнить и общий алгоритм решения задач на собеседовании:
Внимательно выслушайте задачу
Представьте пример
Опишите решение в лоб
Оптимизируйте
Проведите пошаговый разбор
Только после этого приступайте к коду
Протестируйте своё решение.
Вам не обязательно уметь реализовывать алгоритм на языке программирования, важно понимать его суть, если вы продемонстрируете понимание интервьюеру, то это сразу ставит вас в выгодное положение.
Отказ. Мастер на все руки.
К моим знакомым в компанию по мобильной разработке срочно потребовались люди. Их всего было трое, один разобрался с Android, другой с Django (Python) и один стал менеджером.
И вот пришёл к ним на собеседование парень 1 курс магистратуры ИТМО, 4 года коммерческой разработки на Android, резюме было на английском с ошибками, но очень красочное, знает Kotlin, Java, работал с потоками, оптимизировал Garbage Collector и многое другое. Уж не знаю чем он зацепил этих троих, но они его взяли ... на должность Middle Android Developer за 2000$ в месяц. Захожу я к ним в офис (попросили помочь с WebSocket), а мне сразу показывают это чудо. С гордостью заявляют: "смотри кого мы отхватили, учится в ИТМО, просит всего 2000$ и весь SDK Android знает, правда по-русски не говорит. Сейчас он рефакторит всё и с Java на Kotlin переводит, пойди посмотри". Он провёл меня к своему рабочему месту, показывает код и как "рефакторит", тут мне стало смешно, я начал его спрашивать: "Ты ведь понимаешь, что просто нажать конвертировать Java код в Kotlin не достаточно, Android Studio конечно умная, но она шаблонно переделывает код, от такого рефакторинга выгоды нет". Он похоже не понял ни единого моего слова, я решил задать вопрос по-английски, но и здесь было 0 эмоций. Оказалось, что он ни по-русски, ни по-английски не понимает, это показалось странным. Тут я начал его пытать, кто он, какой у него опыт, задавал ему простейшие вопросы: что такое Fragment, Handler и т.п. Он мне рассказал о себе на очень корявом английском, ответов на мои вопросы я получил ровно 0. Просмотрел его код и позвал ребят, начал показывать его ошибки и комментировать его работу, после чего парень сдался и как бы это странно не звучало, он попросил быть его ментором.
Ребята не смогли мне внятно объяснить из-за чего они его взяли, то-ли из-за репозиториев, которые он явно скопировал, то ли из-за 4х лет разработки в компании (которые тоже видимо выдуманные). Ему дали испытательный срок в 1 неделю, но через 2 дня сами убедились, что он ничего из себя не представляет и попрощались с ним. Самое забавное, что через месяц он подал резюме на мою вакансию, но с опытом Spring и JS.
К моим знакомым в компанию по мобильной разработке срочно потребовались люди. Их всего было трое, один разобрался с Android, другой с Django (Python) и один стал менеджером.
И вот пришёл к ним на собеседование парень 1 курс магистратуры ИТМО, 4 года коммерческой разработки на Android, резюме было на английском с ошибками, но очень красочное, знает Kotlin, Java, работал с потоками, оптимизировал Garbage Collector и многое другое. Уж не знаю чем он зацепил этих троих, но они его взяли ... на должность Middle Android Developer за 2000$ в месяц. Захожу я к ним в офис (попросили помочь с WebSocket), а мне сразу показывают это чудо. С гордостью заявляют: "смотри кого мы отхватили, учится в ИТМО, просит всего 2000$ и весь SDK Android знает, правда по-русски не говорит. Сейчас он рефакторит всё и с Java на Kotlin переводит, пойди посмотри". Он провёл меня к своему рабочему месту, показывает код и как "рефакторит", тут мне стало смешно, я начал его спрашивать: "Ты ведь понимаешь, что просто нажать конвертировать Java код в Kotlin не достаточно, Android Studio конечно умная, но она шаблонно переделывает код, от такого рефакторинга выгоды нет". Он похоже не понял ни единого моего слова, я решил задать вопрос по-английски, но и здесь было 0 эмоций. Оказалось, что он ни по-русски, ни по-английски не понимает, это показалось странным. Тут я начал его пытать, кто он, какой у него опыт, задавал ему простейшие вопросы: что такое Fragment, Handler и т.п. Он мне рассказал о себе на очень корявом английском, ответов на мои вопросы я получил ровно 0. Просмотрел его код и позвал ребят, начал показывать его ошибки и комментировать его работу, после чего парень сдался и как бы это странно не звучало, он попросил быть его ментором.
Ребята не смогли мне внятно объяснить из-за чего они его взяли, то-ли из-за репозиториев, которые он явно скопировал, то ли из-за 4х лет разработки в компании (которые тоже видимо выдуманные). Ему дали испытательный срок в 1 неделю, но через 2 дня сами убедились, что он ничего из себя не представляет и попрощались с ним. Самое забавное, что через месяц он подал резюме на мою вакансию, но с опытом Spring и JS.
Принят. Без коммерческого опыта разработки.
На собеседованиях попадаются как прожжённые специалисты, так и учащиеся университетов без опыта, но страстно желающие работать. В некоторых случаях такие ребята показывают результаты сильно лучше, всё дело в их желании развиваться. Совсем недавно, я удачно собеседовал студента без коммерческого опыта разработки на должность Middle разработчика. Он подал заявку на вакансию в моей компании, по началу я хотел отклонить его заявку, из-за отсутствия опыта, но решил дать ему шанс из-за описания в разделе обо мне. Казалось бы человек без опыта, да ещё и на очной форме обучения, он должен пройти максимум на Junior и то скорее на стажировку. Однако практика показывает, что увлечённые студенты лучше разбираются в технологиях и подходах к программированию. Вот и этот кандидат показал отличное понимание работы компонентов Spring, структур данных, архитектур Web приложений. У него имелись GitHub репозитории с актуальным кодом, где он выкладывал не учебные, а личные проекты. В них он демонстрировал решение реальных задач, не те глупые "создать REST контроллер с репозиторием данных и выдать данные по запросу", а например построение маршрутов с сохранением истории запросов пользователя. Более того у него был живой аккаунт на HackerRank и StackOverflow, что тоже подкупает интервьюеров. Спустя пол года работы, я понял, что принятие его на работу было правильным решением, он не подвёл мои ожидания.
Мне пришлось пересмотреть свои автоматические фильтры и убрать требования к опыту работы. Не стоит воспринимать эту историю, как руководство к действию и бежать искать студентов, у меня было много негативного опыта с ними, так как многие бесцельно проводят время в университете на специальности, которая им даже не нравится, а просто считается модной. Однако и пренебрегать такими кадрами не стоит.
На собеседованиях попадаются как прожжённые специалисты, так и учащиеся университетов без опыта, но страстно желающие работать. В некоторых случаях такие ребята показывают результаты сильно лучше, всё дело в их желании развиваться. Совсем недавно, я удачно собеседовал студента без коммерческого опыта разработки на должность Middle разработчика. Он подал заявку на вакансию в моей компании, по началу я хотел отклонить его заявку, из-за отсутствия опыта, но решил дать ему шанс из-за описания в разделе обо мне. Казалось бы человек без опыта, да ещё и на очной форме обучения, он должен пройти максимум на Junior и то скорее на стажировку. Однако практика показывает, что увлечённые студенты лучше разбираются в технологиях и подходах к программированию. Вот и этот кандидат показал отличное понимание работы компонентов Spring, структур данных, архитектур Web приложений. У него имелись GitHub репозитории с актуальным кодом, где он выкладывал не учебные, а личные проекты. В них он демонстрировал решение реальных задач, не те глупые "создать REST контроллер с репозиторием данных и выдать данные по запросу", а например построение маршрутов с сохранением истории запросов пользователя. Более того у него был живой аккаунт на HackerRank и StackOverflow, что тоже подкупает интервьюеров. Спустя пол года работы, я понял, что принятие его на работу было правильным решением, он не подвёл мои ожидания.
Мне пришлось пересмотреть свои автоматические фильтры и убрать требования к опыту работы. Не стоит воспринимать эту историю, как руководство к действию и бежать искать студентов, у меня было много негативного опыта с ними, так как многие бесцельно проводят время в университете на специальности, которая им даже не нравится, а просто считается модной. Однако и пренебрегать такими кадрами не стоит.
А нужно ли вам идти в программисты?
Серьёзно, задайте себе вопрос, готовы ли вы всю жизнь посвятить программированию и всему что с ним связано. Сейчас об IT говорят абсолютно все, люди стремятся бросить стройки, такси, юриспруденцию, экономику и стать джунами в 30-40 лет. Школьники старших классов выбирают программерские направления в университетах. Самое ужасное в этой ситуации, что люди идут за деньгами, а не потому что им это нравится.
Все мы жаждем хорошей жизни, но вы должны трезво оценивать свои желания и возможности. Если у вас не будет страсти к этому виду деятельности, то на зарплату в 80-120к, и уж тем более, в 200-400к в месяц вы не выйдете. Самая большая проблема в знаниях. Те кто выбрал путь программирования без увлечения, будут знать сильно меньше, чем те, у кого есть огромный интерес. Ни один университет, ни один курс не привьёт вам страсть к этой профессии и не положит в ваш мозг те знания, которые вам будут необходимы для работы.
В моей группе в университете, по специальности программирование, на 1 курс поступило 30 человек, из них только 15 закончили бакалавриат и 11 магистратуру. Самое интересное, что только 6-8 человек пошли работать программистами. Многие мои одногруппники поняли, что сделали ошибку и начали её исправлять, один пошёл в театральный, другой стал монтировать видео, третей была интересна бизнес-аналитика. Это прекрасно, что они вовремя осознали, что выбрали неверный для них самих путь. Они демонстрируют отличные успехи в той области, что им по душе.
В одной книге прочитал, несмотря ни на что, можно стать специалистом в любой области, достаточно потратить 10000 часов на практику. Вот и считайте, сколько лет у вас займёт кодинг без желания, уделяя по 2 часа после работы.
Серьёзно, задайте себе вопрос, готовы ли вы всю жизнь посвятить программированию и всему что с ним связано. Сейчас об IT говорят абсолютно все, люди стремятся бросить стройки, такси, юриспруденцию, экономику и стать джунами в 30-40 лет. Школьники старших классов выбирают программерские направления в университетах. Самое ужасное в этой ситуации, что люди идут за деньгами, а не потому что им это нравится.
Все мы жаждем хорошей жизни, но вы должны трезво оценивать свои желания и возможности. Если у вас не будет страсти к этому виду деятельности, то на зарплату в 80-120к, и уж тем более, в 200-400к в месяц вы не выйдете. Самая большая проблема в знаниях. Те кто выбрал путь программирования без увлечения, будут знать сильно меньше, чем те, у кого есть огромный интерес. Ни один университет, ни один курс не привьёт вам страсть к этой профессии и не положит в ваш мозг те знания, которые вам будут необходимы для работы.
В моей группе в университете, по специальности программирование, на 1 курс поступило 30 человек, из них только 15 закончили бакалавриат и 11 магистратуру. Самое интересное, что только 6-8 человек пошли работать программистами. Многие мои одногруппники поняли, что сделали ошибку и начали её исправлять, один пошёл в театральный, другой стал монтировать видео, третей была интересна бизнес-аналитика. Это прекрасно, что они вовремя осознали, что выбрали неверный для них самих путь. Они демонстрируют отличные успехи в той области, что им по душе.
В одной книге прочитал, несмотря ни на что, можно стать специалистом в любой области, достаточно потратить 10000 часов на практику. Вот и считайте, сколько лет у вас займёт кодинг без желания, уделяя по 2 часа после работы.
Зачем меня спрашивают про другие языки и библиотеки?
Всё дело в кругозоре, если человек кроме одного языка ничего не видел, то скорее всего он либо новичок, либо ему программирование в целом не доставляет удовольствия и он просто погнался за деньгами. Мышление интервьюера в такой ситуации следующее: если человек писал даже простейшую программу, на языке, который сильно отличается от его основного (например C++ и Java), то скорее всего у него больше заинтересованность в том, что он создаёт и делает. Действительно, такие кандидаты показывают лучше результаты, так как понимают, что некоторые из задач бизнеса гораздо быстрее и проще решить используя более проработанный подход, нежели изобретать велосипед.
Тем не менее стоит разборчиво отнестись к подходу поиска языка или технологии, необходимо их подбирать на основе ваших предпочтений и сферы деятельности.
Всё дело в кругозоре, если человек кроме одного языка ничего не видел, то скорее всего он либо новичок, либо ему программирование в целом не доставляет удовольствия и он просто погнался за деньгами. Мышление интервьюера в такой ситуации следующее: если человек писал даже простейшую программу, на языке, который сильно отличается от его основного (например C++ и Java), то скорее всего у него больше заинтересованность в том, что он создаёт и делает. Действительно, такие кандидаты показывают лучше результаты, так как понимают, что некоторые из задач бизнеса гораздо быстрее и проще решить используя более проработанный подход, нежели изобретать велосипед.
Тем не менее стоит разборчиво отнестись к подходу поиска языка или технологии, необходимо их подбирать на основе ваших предпочтений и сферы деятельности.
🔹А вдруг я вам подойду? 🔹
На очередное собеседование, к нам на вакансию Java разработчика, подал резюме студент 2 курса магистратуры, который начал свой путь в IT на Python. У него было несколько заманчивых репозиториев на Github и год опыта коммерческой разработки, так что я решил связаться с кандидатом в онлайн-режиме и пообщаться.
Разговор начался с нескольких простых технических вопросов и немного затронули сам язык Java. В целом он смог сообразить как на них ответить, но у меня закралось чувство, будто он не совсем понимает, что говорит. Далее мы обсудили его желания по поводу проекта и технологий и вот здесь вскрылся важный момент, он не совсем понимал, что он хочет от компании и от проекта. Затем я прямо спросил, хватит ли ему знаний по Java, чтобы пройти техническое интервью, он решил не подавать виду. На вопрос как вы оцениваете свои знания по Java от 0 до 10, он ответил 8, я предложил ему получше оценить свои знания, так как далее последуют технические вопросы на основе этой оценки. Кандидат хмыкнул и ответил: "Ладно, на 7 твёрдо знаю". После этого ответа, от меня посыпались несложные вопросы, однако было видно, что он сильно плавает в тематике, более того, он плохо разбирался в типах и структурах данных, имел отдалённое понятия зачем нужны интерфейсы. Задача с наследованием поставила его в тупик. В то время когда я задавал вопрос, было слышно, что он пытается загуглить информацию. Вопросы были из разных категорий, так что он вполне мог проявить себя со знаниями Python, но и этого не произошло.
За 30 минут разговора стало понятно, что кандидат кроме как на Python ничего и не писал. Более того мы обсудили его репозитории и стало понятно, что он в коде очень плохо разбирается. Не могу судить о его опыте, впрочем, есть подозрение, что и он "нарисованный". В конце нашего разговора, я спросил зачем же он с опытом Python хочет пойти на Java, ответ поступил незамедлительно: "А вдруг я именно вам и подойду. Я на шару попробовал. У вас ЗП хорошая. Какая разница, какой язык? Все языки одинаковые, то что вам нужно - вы же и научите.". Такой настрой конечно порадовал, но пробелы в основах программирования и желание получать ЗП минимум 120к выглядит смешно.
На очередное собеседование, к нам на вакансию Java разработчика, подал резюме студент 2 курса магистратуры, который начал свой путь в IT на Python. У него было несколько заманчивых репозиториев на Github и год опыта коммерческой разработки, так что я решил связаться с кандидатом в онлайн-режиме и пообщаться.
Разговор начался с нескольких простых технических вопросов и немного затронули сам язык Java. В целом он смог сообразить как на них ответить, но у меня закралось чувство, будто он не совсем понимает, что говорит. Далее мы обсудили его желания по поводу проекта и технологий и вот здесь вскрылся важный момент, он не совсем понимал, что он хочет от компании и от проекта. Затем я прямо спросил, хватит ли ему знаний по Java, чтобы пройти техническое интервью, он решил не подавать виду. На вопрос как вы оцениваете свои знания по Java от 0 до 10, он ответил 8, я предложил ему получше оценить свои знания, так как далее последуют технические вопросы на основе этой оценки. Кандидат хмыкнул и ответил: "Ладно, на 7 твёрдо знаю". После этого ответа, от меня посыпались несложные вопросы, однако было видно, что он сильно плавает в тематике, более того, он плохо разбирался в типах и структурах данных, имел отдалённое понятия зачем нужны интерфейсы. Задача с наследованием поставила его в тупик. В то время когда я задавал вопрос, было слышно, что он пытается загуглить информацию. Вопросы были из разных категорий, так что он вполне мог проявить себя со знаниями Python, но и этого не произошло.
За 30 минут разговора стало понятно, что кандидат кроме как на Python ничего и не писал. Более того мы обсудили его репозитории и стало понятно, что он в коде очень плохо разбирается. Не могу судить о его опыте, впрочем, есть подозрение, что и он "нарисованный". В конце нашего разговора, я спросил зачем же он с опытом Python хочет пойти на Java, ответ поступил незамедлительно: "А вдруг я именно вам и подойду. Я на шару попробовал. У вас ЗП хорошая. Какая разница, какой язык? Все языки одинаковые, то что вам нужно - вы же и научите.". Такой настрой конечно порадовал, но пробелы в основах программирования и желание получать ЗП минимум 120к выглядит смешно.
Техлид или багфиксер?
В последнее время всё больше и больше вакансий стало появляться на должность Тех- и Тимлида. Но не всё так радужно, как может показаться на первый взгляд.
В начале описания вакансии вас завлекают тем что вам действительно хотелось бы видеть на данной должности: поиск и выбор технологий, разработка архитектуры, управление командой разработки с технической стороны и т.п. В общем всё по делу, то что и должен делать настоящий лидер, а именно вести команду разработки к решению бизнес проблем. Однако далее описание дополняется довольно интересными требованиями. Приведу некоторые из них и ранжирую в порядке популярности:
- Доступность 24/7
- Сопровождение ночного деплоя (Частота разная, от 1 раза в месяц, до 1 раза в неделю)
- Немедленное исправление критичных багов, о которых сообщает QA или тех. поддержка
- Доработка функционала за другими участниками проекта в сжатые сроки
Встречаются и другие уникальные требования, но те, что указаны выше встречались в двух и более вакансиях. Некоторые из этих требований всплывают в рамках собеседования, их умышленно скрывают, чтобы не оттолкнуть потенциального кандидата.
А теперь задумайтесь, если проект уже стоит на рельсах и вы вступаете в должность лида, то скорее всего все архитектурные и технологические решения уже были приняты и повлиять на них становится труднее. При этом, чем дольше проект находится в эксплуатации, тем больше исправления багов будет требоваться. Тем меньше спокойных ночей и выходных у вас будет + бесконечные неоплачиваемые переработки. Никто не будет вам давать выходной, если ночью вы исправляли баг в проде.
На собеседовании обязательно проговаривайте все требования. Решите нужно ли вам подрываться в 3-4 утра в воскресенье и бежать исправлять баги, потому что разработчик Василий неправильно использовал функцию и это выяснилось только в проде. Задайте себе вопрос, хотите ли вы этим заниматься. Да заработная плата может быть не маленькой и первое время покажется, что можно и потерпеть, но через пол года вы выгорите, а компания просто пойдёт искать следующую жертву, которая продлит жизнь проекту ещё на пол года.
В последнее время всё больше и больше вакансий стало появляться на должность Тех- и Тимлида. Но не всё так радужно, как может показаться на первый взгляд.
В начале описания вакансии вас завлекают тем что вам действительно хотелось бы видеть на данной должности: поиск и выбор технологий, разработка архитектуры, управление командой разработки с технической стороны и т.п. В общем всё по делу, то что и должен делать настоящий лидер, а именно вести команду разработки к решению бизнес проблем. Однако далее описание дополняется довольно интересными требованиями. Приведу некоторые из них и ранжирую в порядке популярности:
- Доступность 24/7
- Сопровождение ночного деплоя (Частота разная, от 1 раза в месяц, до 1 раза в неделю)
- Немедленное исправление критичных багов, о которых сообщает QA или тех. поддержка
- Доработка функционала за другими участниками проекта в сжатые сроки
Встречаются и другие уникальные требования, но те, что указаны выше встречались в двух и более вакансиях. Некоторые из этих требований всплывают в рамках собеседования, их умышленно скрывают, чтобы не оттолкнуть потенциального кандидата.
А теперь задумайтесь, если проект уже стоит на рельсах и вы вступаете в должность лида, то скорее всего все архитектурные и технологические решения уже были приняты и повлиять на них становится труднее. При этом, чем дольше проект находится в эксплуатации, тем больше исправления багов будет требоваться. Тем меньше спокойных ночей и выходных у вас будет + бесконечные неоплачиваемые переработки. Никто не будет вам давать выходной, если ночью вы исправляли баг в проде.
На собеседовании обязательно проговаривайте все требования. Решите нужно ли вам подрываться в 3-4 утра в воскресенье и бежать исправлять баги, потому что разработчик Василий неправильно использовал функцию и это выяснилось только в проде. Задайте себе вопрос, хотите ли вы этим заниматься. Да заработная плата может быть не маленькой и первое время покажется, что можно и потерпеть, но через пол года вы выгорите, а компания просто пойдёт искать следующую жертву, которая продлит жизнь проекту ещё на пол года.
Помогут ли курсы попасть в IT?
На просторах интернета всё больше рекламы различных IT курсов: "Стань Junior разработчиком с ЗП 500к", "Научись DevOps и получай 300к в час", "Data Scientist профессия будущего, 400к в секунду".
Большинство начинающих программистов прекращают заниматься на первых этапах обучения из-за возрастающей сложности. После написания калькулятора, начинается изучение пугающих тем, которые вам обязательно зададут на собеседовании: Структуры данных, алгоритмы, асимптотическая сложность алгоритмов, паттерны и т.п. Это звучит не так заманчиво, как написать своего чат-бота или социальную сеть. Попробуйте начать обучение бесплатно. Найдите несколько бесплатных обучающих роликов на YouTube по интересующей вас теме, обычно там даются домашние задания, попробуйте выполнить их. Если вы видите, что вам эта тема интересна, вам хотелось бы обсуждать свои проблемы с ментором и вы хотите продолжать обучение, то только тогда стоит задуматься о платных курсах.
Стоимость данных курсов от 30к до 500к. Где-то имеется только видео, хотя на мой взгляд такие источники надо обходить стороной, так как практической пользы мало, а стоимость, мне кажется, неоправданной. Лучше зайти на тот же CourseHunter, где вы получаете доступ к тем же видео с множества ресурсов, стоимостью 2-3к за ГОД. Другие курсы предлагают менторов и преподавателей, с ними уже интереснее, но там и ценник выше.
Полезны ли курсы? - Частично да. В них информация структурирована. Однако дело в мотивации, кого-то будет мотивировать, то что они отдают деньги за обучение. Кому-то нужно общение с ментором, чтобы постоянно допытывать его вопросами. Если вы мотивированы стать программистом, то обязательно им станете. Не так важны инструменты достижения цели: книги, курсы, менторы. Важно лишь ваше желание.
Помогают ли курсы найти работу? - Сложно сказать, у некоторых курсов есть договорённости с определёнными компаниями, которые предоставляют стажировки, но большинство из них просто предлагают написать в опыт работы свои курсы, а работодатели очень часто пропускают такие кандидатуры, т.к. коммерческий опыт отсутствует.
На просторах интернета всё больше рекламы различных IT курсов: "Стань Junior разработчиком с ЗП 500к", "Научись DevOps и получай 300к в час", "Data Scientist профессия будущего, 400к в секунду".
Большинство начинающих программистов прекращают заниматься на первых этапах обучения из-за возрастающей сложности. После написания калькулятора, начинается изучение пугающих тем, которые вам обязательно зададут на собеседовании: Структуры данных, алгоритмы, асимптотическая сложность алгоритмов, паттерны и т.п. Это звучит не так заманчиво, как написать своего чат-бота или социальную сеть. Попробуйте начать обучение бесплатно. Найдите несколько бесплатных обучающих роликов на YouTube по интересующей вас теме, обычно там даются домашние задания, попробуйте выполнить их. Если вы видите, что вам эта тема интересна, вам хотелось бы обсуждать свои проблемы с ментором и вы хотите продолжать обучение, то только тогда стоит задуматься о платных курсах.
Стоимость данных курсов от 30к до 500к. Где-то имеется только видео, хотя на мой взгляд такие источники надо обходить стороной, так как практической пользы мало, а стоимость, мне кажется, неоправданной. Лучше зайти на тот же CourseHunter, где вы получаете доступ к тем же видео с множества ресурсов, стоимостью 2-3к за ГОД. Другие курсы предлагают менторов и преподавателей, с ними уже интереснее, но там и ценник выше.
Полезны ли курсы? - Частично да. В них информация структурирована. Однако дело в мотивации, кого-то будет мотивировать, то что они отдают деньги за обучение. Кому-то нужно общение с ментором, чтобы постоянно допытывать его вопросами. Если вы мотивированы стать программистом, то обязательно им станете. Не так важны инструменты достижения цели: книги, курсы, менторы. Важно лишь ваше желание.
Помогают ли курсы найти работу? - Сложно сказать, у некоторых курсов есть договорённости с определёнными компаниями, которые предоставляют стажировки, но большинство из них просто предлагают написать в опыт работы свои курсы, а работодатели очень часто пропускают такие кандидатуры, т.к. коммерческий опыт отсутствует.
Руководство небольших компаний
С большими компаниями всё предельно понятно, начальство разбито на несколько уровней, на каждой ступеньке свой набор. Совет директоров принимает все самые важные решения.
А что же происходит в небольших компаниях и стартапах? Можно разделить такие организации на три категории.
В одной категории основатель и руководитель - это человек, который не имеет прямого отношения к IT. Если он ещё и с опытом открытия успешного бизнеса, то это может быть хорошо для развития организации, однако здесь кроется важная проблема для нас, как разработчиков. Случается, что такой руководитель не понимает аспектов работы и не представляет как устроен рынок разработчиков, ему будет казаться, что, наняв 5 джунов с ЗП 20к и одного Senior с ЗП 100к, можно построить Google. Зарплаты скорее всего будут занижаться, это самая главная статья расходов в бизнесе, надо их урезать. Заказов можно брать много, это прибыль компании, а разработчики всё равно целый день в монитор смотрят, что там может быть сложного, можно их загружать ещё.
В другой категории основателем может быть разработчик. Он понимает, как работать и как работают другие. Такой руководитель сам становится во главе команды и разрабатывает со всеми. Работы тоже может быть много, но оценка задач близка к реальной производительности команды. Для других разработчиков такой вариант будет предпочтительнее и в технологическом плане, т.к. заказы подбираются интереснее, чем стандартные интернет-магазины и мессенджеры. Правда, здесь тоже не всё радужно, начальник-программист не всегда стремится за золотыми горами. Более того многие аспекты бизнеса бывают упущены, а это прямо пропорционально сказывается на доходах компании.
В идеале, когда фирму одновременно основывают бизнесмен и технический специалист, они оба могут быть генеральными директорами, при этом будут дополнять друг друга. Один будет продавать идею того, что надо делать больше заказов, а другой будет заступаться за разработчиков.
При выборе компании, учитывайте факт, кто будет вами руководить.
С большими компаниями всё предельно понятно, начальство разбито на несколько уровней, на каждой ступеньке свой набор. Совет директоров принимает все самые важные решения.
А что же происходит в небольших компаниях и стартапах? Можно разделить такие организации на три категории.
В одной категории основатель и руководитель - это человек, который не имеет прямого отношения к IT. Если он ещё и с опытом открытия успешного бизнеса, то это может быть хорошо для развития организации, однако здесь кроется важная проблема для нас, как разработчиков. Случается, что такой руководитель не понимает аспектов работы и не представляет как устроен рынок разработчиков, ему будет казаться, что, наняв 5 джунов с ЗП 20к и одного Senior с ЗП 100к, можно построить Google. Зарплаты скорее всего будут занижаться, это самая главная статья расходов в бизнесе, надо их урезать. Заказов можно брать много, это прибыль компании, а разработчики всё равно целый день в монитор смотрят, что там может быть сложного, можно их загружать ещё.
В другой категории основателем может быть разработчик. Он понимает, как работать и как работают другие. Такой руководитель сам становится во главе команды и разрабатывает со всеми. Работы тоже может быть много, но оценка задач близка к реальной производительности команды. Для других разработчиков такой вариант будет предпочтительнее и в технологическом плане, т.к. заказы подбираются интереснее, чем стандартные интернет-магазины и мессенджеры. Правда, здесь тоже не всё радужно, начальник-программист не всегда стремится за золотыми горами. Более того многие аспекты бизнеса бывают упущены, а это прямо пропорционально сказывается на доходах компании.
В идеале, когда фирму одновременно основывают бизнесмен и технический специалист, они оба могут быть генеральными директорами, при этом будут дополнять друг друга. Один будет продавать идею того, что надо делать больше заказов, а другой будет заступаться за разработчиков.
При выборе компании, учитывайте факт, кто будет вами руководить.
Откуда такие цифры в зарплатах?
Года 3 назад проходил собеседования в различных компаниях и в некоторых из них ловил взгляды Senior Java программистов, которые не понимали, почему я Middle прошу зарплату 120000 на руки. Они и сами получали не больше, а я тогда удивлялся почему такой разрыв, ведь в то время Senior должен был получать от 170.
Время прошло и сейчас я понял, что всё меняется, особенно ценники. Сейчас вакансия Senior Java в Петербурге предполагает оплату в 300+ и это не максимальная планка, как было когда-то, а средняя. Буквально за год IT компании сильно подняли эту планку. Те Senior программисты, которые не просили повышения и не пытались сменить место работы даже и не подозревают о таком изменении рынка.
В итоге на собеседование приходят Junior программисты с просьбой о ЗП в 90к, Middle программисты просят 200к, а Senior программистов ещё попытайся найти. Это нормально.
Года 3 назад проходил собеседования в различных компаниях и в некоторых из них ловил взгляды Senior Java программистов, которые не понимали, почему я Middle прошу зарплату 120000 на руки. Они и сами получали не больше, а я тогда удивлялся почему такой разрыв, ведь в то время Senior должен был получать от 170.
Время прошло и сейчас я понял, что всё меняется, особенно ценники. Сейчас вакансия Senior Java в Петербурге предполагает оплату в 300+ и это не максимальная планка, как было когда-то, а средняя. Буквально за год IT компании сильно подняли эту планку. Те Senior программисты, которые не просили повышения и не пытались сменить место работы даже и не подозревают о таком изменении рынка.
В итоге на собеседование приходят Junior программисты с просьбой о ЗП в 90к, Middle программисты просят 200к, а Senior программистов ещё попытайся найти. Это нормально.