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