Данная статья зародилась в результате обучения более 50-ти Java разработчиков в течении одного года.
Делюсь выводами к которым пришел, работая с учениками от уровня «знаю только как объявить переменную» до «работаю на проекте с Spring и Hibernate и хочу углубить знания в этих технологиях до уровня эксперта».
В русскоязычном интернете на эту тему практически ничего нет, заполняем пробел.
Зачем оно вам надо??
Учить Java, тратить на это годы своей жизни?
Наверно потому что вас «распирает», с пустого места создавать функционал, которым пользуются реальные пользователи. При каждом действии пользователя, каждая ваша строчка кода отрабатывает как и задумывалась. Код превращается в красивые формочки на сайте, либо приложении. Нажатие кнопки вызывает бурную реакцию внутри кода, задействовав сотни классов и, возможно, десятки внутренних сервисов, которые и создают эффект магии для пользователя.
В этом случае действительно, можно годами писать приложения и получать от этого кайф, свойственный, в первую очередь для всех мужчин — самореализация, путем написания великих проектов.
И конечно же, писать «крутой» код, на десятках фреймворках и технологиях «закрытыми галазами», не заглядывая с документацию, это вверх совершенства и экспертности.
Вот лишь некоторые проблемы которые могу возникнуть на пути к такому опыту:
- не освоите язык Java на уровне, достаточным для трудоустройства.
- не научитесь работать с фреймворками. Возможная причина: на проектах, где вы работаете их просто нет.
- ваш код всегда будет ужасным. Возможная причина: Вы даже не подозреваете, что ваш код плохой и может быть лучше. На проекте нет экспертов, которые пишут «чистый» код.
- потеряете интерес или влечение к программированию. Возможная причина: не видите куда можно развиваться.
- на всегда останетесь «вечным» Junior/Middle/Senior, не достигнете следующего уровня экспертности. Возможная причина: нет стимула развиваться, нет понимания как развиваться дальше.
Абсолютно все перечисленные симптомы у вас никогда не возникнут, если с вами есть человек (или группа людей), на которого вы хотели бы ровняться. Который готов с вами делиться своими знаниями.
Назовем такого эксперта ментором (mentor — с англ. наставник).
Вы решили, что хотите общаться с такими человеком, и даже нашли его. Как же теперь общаться с ментором по Java, и получать все бонусы такого общения?
Главное, принять для себя модель взаимодействия с ментором. А именно:
С какими вопросами вы можете к нему обращаться, дабы воспользоваться всеми преимуществами такого доступа:
- просьбой посмотреть ваш код, указать на ошибки в архитектуре, стиле кода, использования подходов, методологий, фреймворков.
- порекомендовать источник для изучения фреймворка, технологии.
- попросить дать техническое задание, выполнение которого позволит «погрузиться» в желаемую тему и проработать ее по необходимым «фронтам».
- не стесняйтесь спрашивать совета, как решить ту или иную проблему, какие best practices уместны для данного решения.
- спросить, есть ли возможность поучаствовать в действующем проекте, с желанными технологиями. Как правило, у ментора широкий круг общения, с большой вероятностью что то подскажет.
- спросить совета по трудоустройству. Особенно если эксперт работает, либо связан с крупной компанией, где большое количество открытых вакансий.
- попросить просмотреть ваше резюме. Если ему оно не понравиться, то точно не понравиться и интервьюеру на собеседовании. Эксперт точно даст толковые советы, ибо за свою карьеру поведал их десятки. Да и свое резюме, однозначно не раз перерабатывал до приемлемого уровня.
- будет хорошо, если ментор даст вам направление развития, если вы не можете выбрать среди великого множества возможностей.
- ну и конечно же, наставник мотивирует вас в процессе общения с ним, что значительно поможет вам достичь поставленную цель.
Если даже половину из списка выше воплотите в жизнь, точно почувствует качественно изменение в своей карьере и работе с кодом целом. При условии, что вы всегда уверенны в том, что ментор понимает ваши текущие знания и то, чего вы хотите достичь.
Не буду даже оценивать, в сколько раз быстрее вы будете продвигаться к желаемой цели, например Senior Java Developer или Technical Lead или Architect, или даже CTO (Chief technical Officer) компании/направления и т.д.
Если у тебя уже есть Java ментор, напиши, что общение с ним дало тебе?
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: