Какой бы совет я дал себе в начале своей карьеры программиста
В прошлой статье я рассказывал о том, как можно повысить свою продуктивность в разы и освободить время для своих любимый занятий. В этот раз я хотел бы поговорить о более стратегических вещах. Как, делая правильный стратегический выбор, можно улучшить свой карьерный путь (в долгосрочной перспективе). Однажды меня спросили: «Какой бы я дал себе совет в начале своей карьеры?». Этот вопрос и стал началом данной статьи. А если Вам интересен ответ на него, то милости прошу под кат.
Дисклаймер
Статья сделана на базе скринкаста сообщества Java Hexlet. Если Вы уже прослушали этот выпуск, то Вам материал уже знаком.
Откровения
Откровение №1. Не бывает идеальной работы для Вас!
Это откровение, пожалуй, самое важное, которое я бы очень хотел знать в начале своего пути.
Любой человек хочет самореализоваться, а самореализация происходит через творчество. Творчество возможно только начиная с определенного уровня профессионализма. Из этого следует, что неважно по какой стезе Вы идёте, важно лишь насколько Вы в ней хороши и насколько Вы близки к стадии, когда Вы можете творить?
Более того, если Вы наивно думаете, что занимаясь работой, которая Вам кажется “супер классной”, Вы сможете легко дойти до стадии творчества, спешу Вас разочаровать. Вас ждёт три стадии:
— наивное восприятие;
— учеба и формирование зрелого мнения;
— творчество.
Вторая стадия — когда наивности уже нет, а творчества ещё нет, и перед Вами огромнейшее количество материала, который не является осязаемым. Как долго учиться, чтобы выйти на уровень творца? С чего начать и куда двигаться? Нет простых ответов на эти вопросы. На этой стадии нет ничего интересного, кроме рутины и еще раз рутины. Вы еще не на уровне, чтобы что-то создавать, но уже давно поняли, что Ваши мечты о профессии разбиты в прах: тут нет пони, радуг, замков. Тут есть боль, печаль и безысходность.
Откровение №2. Не важно направление, важно как далеко Вы продвинулись в развитии направления.
Откровение №2 можно обобщить ещё больше: не важно направление, но важно то, насколько глубоко Вы его раскопали. Марксисты в своё время сказали очень важную вещь: все выучить невозможно, однако любую конкретную вещь выучить можно (ну или почти так;) ). Если перед Вами бесконечное множество тем, выберите одну и начните копать в этом направлении. По мере того, как Вы будете углубляться в тему, Вам станут понятны смежные с ней направления и станет понятно, какие смежные темы Вам нужно выучить. Намного проще стать профи в определенной сфере, а после этого найти место в мире, где нуждаются в профессионале в этой сфере, чем постоянно пытаться выучить то, что является популярным на рынке сегодня.
Пример
Давайте от подобного общего совета перейдём к простому примеру. У нас на курсе структур данных мы рассматривали различные реализации интерфейса List. Возьмите две реализации, перечитайте код, сравните разницу в каждом методе. Во время сравнения Вам придется выучить огромную часть новой информации. Как работает arraycopy? А быстрей ли он на самом деле? А на какой платформе? Работает ли он также быстро на Винде, как на Маке? А в разных версиях JDK, а как он реализован на уровне С++. В принципе, начав изучать лист, Вы можете зацепиться за этот метод и, проанализировав его, подготовить целый доклад с графиками. Подобный доклад даст Вам пропуск на Хабр. И, будь Вы даже самым начальным джуном, Вы сможете таким образом написать статью, которая даст много полезного и синьорам. Дальше больше. Подобное углубление позволит Вам понять список смежных тем (с той, в которую углублялись). Причем этот список будет состоять из осознанно выбранных (в качестве важных) тем. Например, как правильно использовать jmh (а заодно и поймёте, на сколько наивно мы его используем в нашем курсе). Фокусировка на одной теме всегда важна, не пытайтесь охватить все.
Тупик
Как убедиться, что направление, которое Вы выбрали, не тупиковое? Основной критерий простой — деньги. Деньги, хоть они и являются плохим мерилом, все же могут Вас спасти от выбора абсолютно бесперспективной отрасли. Позже, когда Вы выйдете на уровень понимания, какая из технологий выстрелит, можно начинать рисковать, принимая позиции, даже с понижением з/п, но с целью подняться существенно вверх через год (привет квантовые ПК).
Ловушка
Учитывайте, что Ваши интересы и интересы работодателя не всегда пересекаются. Вышли на работу, и Вас ждет первая ловушка! Работодателю интересно, чтобы Вы не росли профессионально, а росли производительно (больше однотипной ответственности). В ваших же интересах учиться. Работодателю интересно, чтобы Вы углублялись в стек тех технологий, которые использует он сейчас. Если стек вдруг поменяется, то лучше найти синьора с многолетнем опытом новой технологии «Х», чем ждать пока Вы переучитесь. Поэтому, с точки зрения работодателя, будет странным, если Вы хотите выучить С++, пока работаете с Java. Банальный вопрос может быть адресован к Вам: «А зачем тебе это на работе»? В Ваших же интересах поднять свою производительность, но не для того, чтобы увеличить однотипную работу, но чтобы больше времени тратить на учебу. С точки зрения менеджмента Вы будете выполнять работу, но не будете расти. Если Вы везунчик и Ваша компания достаточно большая, то Вы можете начать искать межкомандные проекты, чтобы начинать изучать технологии, смежные с Вашей. Если же нет, то просто придется смирится, что за год-два Вы не будете повышены и з/п не поменяется. Хотя через этот год Вы сможете уже претендовать на прыжок через одну, а то и две ступеньки. Возможно текущий работодатель не сможет принять тот факт, что средний сотрудник вдруг магически вырос до Архитектора или Вам придется доказывать свою пригодность. Если Вы оказались в подобной ситуации, то возможно легче просто уйти в то место, где Вас будут воспринимать в качестве архитектора с первого дня.
Итого
В сухом остатке:
— Любая работа превратится в рутину на второй стадии;
— Нет работы, на которой будет легче преодолеть вторую стадию и прийти более простым способом к стадии творчества;
— Копайте в том направлении, в котором у Вас есть максимальные шансы;
— Не теряйте фокус и не распыляйтесь;
— Периодически останавливайтесь и смотрите на уровень з/п спрашивая себя: «А туда ли я копаю»?
— Увеличивайте свою производительность для того, чтобы больше учиться и решать задачи нового типа, а не для того чтобы делать больше задач того же типа, что и раньше.
Автор: