В ИТ-сфере есть различные уровни специалистов: junior, middle, senior, Lead, Head, CTO, CEO. Конечно, не каждый Java Junior, начиная свою карьеру в IT, планирует стать техническим директором крупной компании, но большинство руководителей когда-то тоже были джуниорами. Поэтому, даже если вы пока в самом начале карьерного пути, есть над чем задуматься.
Как начинающим разработчикам стать успешными в профессии, мы узнали у Алексея Канашевича, Senior Technical Lead компании ID Finance и ментора Laboratory 2.0 для Java-джуниоров.
## Side-project для души
Очень рекомендую начинающим разработчикам завести собственный проект, в котором можно выбрать любую технологию, язык программирования, фреймворк, интересный проект — от интернет-магазина до крипта-биржи — и даже темп работы. Тут ты сам себе директор и одновременно получаешь большой объем знаний, потому что самостоятельно разбираешься не только в технологиях, но и в бизнесе.
Отсюда плюсы:
— внутренняя мотивация,
— практическое применение знаний,
— увеличение кругозора,
— отношение к работе/самодисциплина.
## Один инструмент за раз
У начинающего разработчика есть соблазн взять модный язык, свеженький фреймворк, собрать это сборщиком, который не трогал, но давно хотел. И для того, чтобы все быстрее заработало, добавить реактивности и какую-нибудь суперэффективную базу данных nosql со своим собственным языком запросов. А дальше протестировать это с помощью методологии BDD и запустить уж точно под Kubernetes. Ведь сколько всего нового, интересного и неизведанного!
Но лучше так не делать. Ты будешь спотыкаться на каждом шагу и продвигаться вперед станет невыносимо сложно. Как следствие, потеряется радость от достижения прогресса, произойдет расфокусировка между целями и очень захочется сдаться, когда ничего еще не сделано.
На самом деле, лучше взять одну технологию и изучить ее. А дальше уже последовательно добавлять новые.
«По такому принципу мы обучаем наших „лаборантов“, где инкрементально в каждой задаче добавляются технологии. И это работает!»
## Маленькие шаги
По сути, этот совет вытекает из предыдущего. Если бы нам нужно было собрать машину, мы бы не брались сразу за все одновременно. Взяли бы одну деталь, к ней крепили следующую и так далее. С программированием то же самое — все нужно делать постепенно, и маленькие шаги дают предсказуемость. Если что-то не получилось, ты знаешь что. Дальше ты знаешь, где найти ошибку. Таким образом, следует постепенно наращивать сложность. Если разбираться постепенно, получится быстрее. И в то же время движение вперед будет приносить удовольствие.
## Общение — бесценно
Когда ты находишься в начале своего пути, в рабочем окружении много умных и опытных специалистов. А значит, в процессе общения с ними можно совершенно бесплатно узнать технические фишки, модные технологии и новые решения.
К тому же общение — это создание связей, которые помогают в работе. Позитивному и коммуникабельному начинающему специалисту быстрее помогут решить проблему и объяснят правильное решение задачи. А дальше уже эффективная коммуникация не только позволяет получить знания, но и продвинуться по карьере.
«Считается, что программисты — интроверты и очень закрыты. Во-первых, это не так. А, во-вторых, с этим надо бороться».
## А как это работает внутри?
Для того, чтобы стать хорошим разработчиком, надо «перелопатить» множество технологий и фреймворков. Зачастую эти знания являются поверхностными. Поэтому не нужно разбираться во всем, а лучше в чем-то одном, но хорошо. Когда ты выбрал технологию, изучил ее, то стал ценен для компании, команды и своего резюме. Во всем поверхностно разбираются все, а досконально в чем-то — единицы.
При этом, когда ты разобрался в чем-то одном, ты получил дополнительные знания, которые можно применить и в других задачах. К примеру, есть две базы данных — PostgreSQL и MySQL. На самом деле, у них очень много схожего в принципах работы. Поэтому, зная одну технологию, все последующие понятны и остается изучать только отличия.
## Свой подход к освоению нового
Есть два типа людей. Те, кому нужно прочесть книгу, сначала получить фундаментальные теоретические знания, а потом уже приступать к практике. Для них не работает «садись и делай» –они теряются и в результате тратят много времени. Второму типу людей бесполезно читать книги, им нужно сесть и начать делать руками. Они сначала пишут код, а потом уже капают вглубь.
Так вот в каком порядке делать — это сугубо личное дело каждого. Но точно нужно понимать, как тебе удобней.
## От неинтересной задачи до интересной — один шаг
Важно, какой подход ты выберешь к задаче. Если решил, что тебе она неинтересна, то работаешь спустя рукава, и скорее всего ничего не получается. Поэтому в любой задаче нужно искать интересное. И сделать это просто.
К примеру, если перед тобой однотипная работа, где нужно вставить 1000 записей в таблицу, можно просто копировать и вставлять. А можно написать скрипт, который возьмет данные из Ехсel-таблицы и вставит их в базу.
«В первом случае ты замучился, потратил кучу времени, расстроился и ничему не научился. Во втором варианте — освоил скрипт, сделал быстрее, стал умнее, да еще и удовольствие получил».
## Как это делают другие
Когда джуниоры попадают в проект, у них появляется много вопросов, которые можно задавать. А вот уже будут на них отвечать или нет, зависит от ментора, «лида» и их загрузки. Поэтому мой совет: смотрите, что делают коллеги, потому что проблемы, в основном, у всех типовые.
Поэтому:
— изучайте Pull Request — изменения других разработчиков,
— слушайте на встречах, как обсуждаются проблемы и подходы решения,
— перенимайте опыт «лида» и изучайте его подходы к решению проблем.
## Если учиться, то у лучших
Советую доверять специалистам по рекомендациям, с сильным практическим опытом и признанной экспертностью.
Тот же принцип работает и с преподавателями на курсах — это может быть разработчик, который написал свою операционную систему, или студент китайского вуза. Учат они одному и тому же, но, естественно, глубина знаний разная.
«Тщательно подходите к выбору курсов, статей и роликов, чтобы не тратить время впустую. Найдите себе кумира и учитесь у него».
## Что делать, если у меня проблема?
Если начал работу, доводи ее до конца. Наполовину сделанная работа — это несделанная работа. Если что-то не получилось, нельзя останавливаться, и говорить: «У меня не получилось». Потому что тебя обязательно спросят: «А что ты сделал, чтобы получилось?»
При этом советую искоренять позицию: «Меня должны научить!» Самостоятельность — это и есть путь к продвижению по карьерной лестнице. Поэтому прежде, чем идти к ментору за помощью, нужно использовать все доступные инструменты, чтобы решить проблему самостоятельно: погуглить, почитать, поговорить со своими коллегами.
## Зона влияния
У каждого человека есть базовые потребности, среди которых наряду с безопасностью и голодом идет уважение. Так вот, любой человек хочет, чтобы его уважали. А когда его уважают? Когда он много делает, ответственен за что-то и имеет определенную зону влияния.
Зачастую люди стараются брать на себя как можно меньше. Но идея высокоэффективных людей в том, что нужно постоянно наращивать свой уровень влияния. Есть такая хорошая книга Стивена Кови «7 навыков высокоэффективных людей» — там эта тема отлично раскрыта.
«У каждого специалиста, в том числе джуниора, задача — стать полезным в команде».
Пускай сначала он и не очень много умеет, но делая правильные шаги, следуя всем пунктам, изложенным выше, имея широкий кругозор или обучившись в рамках проекта, он имеет уже определенную экспертизу, готов качественно сделать задачу и помочь своей команде.
Ответственность и влияние являются почти синонимами. Если ты ответственен за что-то, ты на это влияешь, ты ценен. И это прямой мостик к следующей ступени в карьере. Но не все сразу…
## Идите работать
Лучшие практические знания можно получить только в реальных проектах. Поэтому нужно идти и работать.
Мы в ID Finance предоставляем отличную возможность для начинающих специалистов, предлагая им не стажировку, а работу и обучение в проекте Laboratory 2.0. При этом мы сразу оформляем ребят в штат и даем им честную зарплату. Мечта начинающего специалиста! А дальше уже все зависит от него — как проявит себя во время испытательного срока, чтобы уже дальше присоединиться к реальным финтех-проектам компании.
Сейчас у нас идет активный набор в новый поток Laboratory 2.0, куда мы до 1 марта ищем сразу 20 талантливых Java-джуниоров. Наши требования — это хорошие курсы или небольшой опыт разработки, а также отлично выполненное тестовое задание. Резюме заинтересованных ребят мы ждем на почту нашего HR-а [email protected] с темой письма «Java Junior».
А от себя желаю всем удачи и успешного пути!