Мне тут дядя из Джанхота новую партию чая прислал, а под чай, как известно, хорошо пишутся всякие разглагольствования на тему будущего, прошлого и настоящего. Говорить сегодня будем о программистах, я же больше ни про кого ничего не знаю. Расскажу, как я вижу путь развития современного программиста и дам в меру безполезные советы о том как идти по этому пути.
Я долго думал(нет) какие вехи развития взять за основу, и решил, что избитой “четверки” (файтер, клирик, вор и маг) будет вполне достаточно. Остальное вы можете додумать себе сами. Хоть горшком себя назовите, как известно.
Перед началом пути
Пожалуйста, убедитесь, что вы решили стать программистом не ради денег, статуса или еще какой-то подобной херни. Да, программисты это не какая-то особая каста, это обычные работяги и они не делают ничего сверхъестественного. Это обычная инженерная (и то не всегда) специальность, которая ничем не отличается от других таких же. Подробнее прочитать можно тут. Это просто удобная ссылка из интернета, они мне к сожалению не занесли ;) Так о чем это я, да, если вы решили стать программистом, чтобы зашибать бабло, делать “красивые” стрижки и кушать крафтовый сыр, то, пожалуйста, пройдите нахер не выбирайте эту профессию. Тут и так стало не продохнуть от подобного сброда.
Intern 🤪
Возможность быть стажером — суть есть великое благо и находка для любого начинающего программиста. Посудите сами, ответственности никакой, знаний — ноль на массу. При этом есть маленький кусочек (почти)настоящей работы и возможность задавать бесконечное количество тупых вопросов своему ментору. Это отличная среда для обучения и вы не найдете такого ни на всех этих дурацких онлайн курсах “Стань программистом за 2.5 дня” (да-да, с трудоустройством конечно, куда ж без него). Поэтому если вы студент и окончательно решили стать программистом (изменить это решение потом будет нельзя!), то постарайтесь всеми правдами и неправдами попасть на стажировку в какую-нибудь не самую всратую компанию. Это даст вам огромное количество чисто практического опыта и понимания того, чем живет индустрия. Возможно после этого вы решите бросить нахрен все это программирование и пойти работать в “Магнит” продавцом-консультантом.
Если вам все же повезло и вас взяли стажером, то настройтесь на тяжелую работу. Особенно если параллельно вы занимаетесь учебой или у вас есть другая работа. Если вы не выложитесь на все 146%, то просто зря потеряете свое время и потратите время других людей, которые вас пытались чему-то научить.
Будучи интерном неплохо бы иметь желание постоянно учиться и стремление досконально разобраться в проблеме. При этом стоит понимать, что вам никто ничем не обязан и получите ровно столько знаний, сколько сможете вынуть из стажировки самостоятельно. Как ни странно, но на этом этапе я не рекомендую сильно погружаться во всякие фундаментальные вещи типа алгоритмов, структур данных и прочего. Это следующий этап. Просто почувствуйте “вкус индустрии” и решите ваше это или нет.
Главная задача на этом этапе: войтивайти
Junior 🤓
Начиная с этого этапа вы уже можете называть себя программистом. Да-да, уже можно. Вам все равно никто не поверит. Почему-то все не любят джунов и относятся к ним пренебрежительно. А вот и зря. Мое отношение к этому я могу проиллюстрировать отличной картинкой
Джунов нужно хранить, беречь и давать им правильное воспитание. Без этого, они начнут пить, курить и писать javascript-фреймворки. А еще они начнут вести себя высокомерно с другими джунами когда(если) перейдут на следующую ступеньку развития. И виноваты в этом будете вы.
С другой стороны, будучи джуном, не стоит думать, что вы занимаетесь чем-то важным. Чаще всего это не так и ваш удел рутина. Самые всратые и неинтересные задачи обязательно достанутся вам, потому что “сперва добейся” ;) Есть в этом и определенное рациональное зерно. И правда здесь в том, что навык можно получить только многократным повторением одного и того же. Об этом говорил еще Масутацу Ояма, а он знал толк в задротстве. Поэтому на позиции джуна не стоит требовать для себя самых лучших задач и обижаться, что вам их не дают. Не положено и все тут.
В должности джуна вам предстоит натренировать самый важный орган программиста - чугунную задницу и алгоритмы. Но задница важнее! Также на этом этапе пора уже изучать то, что называется computer science. Алгоритмы, структуры данных, теория вычислений, теория языков программирования, да кучу всего. При этом я рекомендую соблюдать хрупкий баланс адекватности и не скатываться в совсем уже теоретические изыскания. Это безусловно круто и почетно, но как известно “заводы стоят, одни гитаристы в стране”. Кто-то должен и работу работать.
На этом этапе нет большой разницы в какую индустрию идти, все равно через несколько лет вам надоест. Поэтому рекомендую попробовать несколько разных, это поможет в будущем. Можно поработать по 1-1.5 года в разных индустриях и решить, что больше нравится. Не бойтесь испортить резюме, у вас пока нечего портить ;)
И не переставайте задавать вопросы. Тот темп исторгания из себя глупых вопросов, который вы взяли в позиции стажера не должен снижаться. Но в позиции джуниора, на горизонте уже начинает появляться необходимость “отвечать за базар”, имейте это ввиду.
Главная задача на этом этапе: Учиться, учиться и учиться
Middle 😎
Ну что, поздравляю. На очередном ассесменте/перфоманс_ревью/раздаче_слонов вас нарекли мидлом и теперь то жизнь пойдет совсем по-другому. Тот самый момент, ради которого приходилось выглядеть идиотом в позиции стажера и унижаться в позиции джуна. Теперь вам открыты все двери и можно задуматься о том, чтобы перейти в другую компанию на более высокую зарплату. Хе-хе. Конечно же это все чушь собачья. Мидл-разработчик, это такой разработчик, который может сам делать работу. Любую. Вот просто брать и делать, а потом брать следующую и делать. При этом выдавать хорошее качество. Пока вы не достигли этого состояния, неважно как вас там обозвали HR-ы или тимлид.
На этом этапе по идее должно уже начать приходить понимание, что умение вращать деревья перед затаившими дыхание сеньорами это далеко не главное качество хорошего разработчика. Но и “плавать” в базовой теории уже как бы стыдно. Поэтому продолжаем соблюдать баланс, курс на который наметили еще будучи джуном. В этой точке хорошо бы начинать приземлять эту теорию на какие-то практические вещи и через это приходить к пониманию того почему используемые вами технологии работают именно так и имеют именно такие ограничения. Также это хорошее время, чтобы начать реализовывать мечту каждого программиста: написать свой язык, ОС и т.д. Чтобы вам было чуть проще, загляните сюда. Конечно же у вас ничего не выйдет и вы никогда не доведете свой язык или ОС до релиза (особенно в одиночку), но это даст вам бесценный опыт и понимание сути вещей и явлений. Другими словами это даст вам критически важное для следующего грейда качество: кругозор.
Очень важной штукой, которую нужно знать всем мидлам является то, что мидлом можно быть бесконечно долго. Это достаточно комфортная позиция и вам может быть просто не нужно идти дальше. Опять же повторюсь - не важно как вас величают в HR службе. Приведенные мной вехи это скорее внутреннее осознание себя в том или ином грейде и оно может вообще не иметь никакого отношения к тому, как вас называют на работе. Так вот, быть “вечным мидлом” не стыдно. Если вы любите топтать клавиатуру, разматывать клубочки и при этом как можно меньше общаться с “внешним миром”, то тут можно остановиться и жить дальше. При чем пойти вперед можно в любой момент.
Главная задача на этом этапе: делать хорошо свою работу
Senior 🧐
Наконец-то исполнилось 23 и уже не грех сеньором побыть. А то в 29 уже пенсия, ипотека и забвение. Что ж, напрасно ты сюда добрался. Твоя жизнь никогда больше не будет прежней. Тот уютный мирок, в котором было так приятно находиться рухнул сразу после получения “погонов” сеньора. Теперь не получится отсидеться и отмолчаться. На тебя все смотрят и необходимость “отвечать за базар” наступает в полной мере. Потому что каждое твое слово имеет значение (ну так должно быть…) для команды и особенно для не технического персонала. Как говаривал дядя Бен - с большой силой приходит большая ответственность.
Если кто-то не в курсе, то объясню откуда все эти шутеечки про 23х летних сеньоров. Суть сеньорского грейда в том, что он положен только человеку с большим опытом и широким кругозором. Этим как раз и ценен такой специалист. Он повидал уже много говна на своем пути и точно знает куда ходить не стоит. Любой сеньор не задумываясь может рассказать вам кучу историй как (а главное почему) был завален проект и как удалось в итоге все красиво зарешать. Для получения такого опыта нужно много лет гореть в продакшене и при этом не выгореть и не уйти пасти коров или не поехать кукухой. Набраться подобного опыта к тем самым, сакраментальным 23-м годам весьма сложно. Рискну предположить, что невозможно.
На этом этапе становится очень важно развивать навыки общения и управления людьми. Да-да, я предупреждал что сюда лучше не ходить и оставаться мидлом. Ибо даже если вы не собираетесь быть тимлидом или кем-то похуже, то от вас все равно будут ожидать организации командной работы как минмум в рамках проекта или какой-то рабочей группы. Поэтому к “книжкам для программистов” неплохо бы начинать уже подмешивать что-то по soft skills. Да и вообще на этом грейде можно уже начинать читать книги по архитектуре систем и их интеграции между собой. Эти две группы книг помогут определиться с дальнейшим вектором движения.
Еще одним интересным феноменом этого грейда является появление скуки или даже разочарования в той области в которой вы стали сеньором. Во многом это происходит из-за осознания бесконечной глубины той области знаний с которой вы работаете. Если раньше казалось, что ее можно выучить и за ней можно угнаться, то на этом грейде вам наконец открывается осознание полной непостижимости этого. Самое главное вовремя себя поймать на этом чувстве и задуматься о смене области знаний. Сменить ее можно мягко, когда вы “вечерами” изучаете новую предметную область, а можно жестко, когда вы просто переходите в нее с почти полной потерей зарплаты, регалий и уважения в сообществе. Но все равно вам будет проще, ведь вы уже знаете все правила игры и ваш опыт у вас никто не отнимет. Поэтому путь к сеньору в новой области будет гораздо короче. Потому что вы уже сеньор в ней, просто никто об этом еще не знает ;)
Главная задача на этом этапе: расширять кругозор
А что дальше?
Теперь для вас открыты все дороги. Если вы правильно все сделали на предыдущих этапах, кто у вас вообще не должно возникать вопроса что делать дальше. Вы уже имеете план на ближайшие 5 лет. Но если вдруг нет, то я расскажу чем еще можно позаниматься в этом вашем IT чтобы не умереть со скуки.
Для начала стоит понять осталось ли желание копаться в технологиях или уже хочется на покой делать таблицы в Excel. Но какой бы путь вы не выбрали, по нему не удастся идти без soft skills с прошлого грейда. А скорее всего придется их прокачать еще сильнее. Для не технической ветки все одновременно просто и сложно: это всегда менеджерская должность в той или иной ее форме. Это либо технический менеджер (тимлид, CTO) либо не технический менеджер (PM, PO). А вот с технической веткой все сложно.
Желающим пойти по технической ветке придется сильно поиграть в самоопределение, а потом еще узнать как правильно называется то, чем вы решили заниматься. Одних архитекторов существует столько видов, что их все не могут перечислить даже сами архитекторы. А ведь еще существуют всякие техлиды, которые вообще хрен пойми чем занимаются. А куда себя отнести если ты например мейнтейнер крупного opensource проекта или “выступатель на технических конференциях”. Поэтому я рекомендую вообще не заморачиваться с этим всем и просто делать то, что от вас требуется в компании. Если в компании есть четко очерченные границы того, что называется “архитектор” или “техлид”, то ок. Смело идите туда. Если нет, то вам придется быть этаким “экспертом”, который будет в разные моменты времени делать ту работу, которая относится к архитекторам, техлидам и прочим загадочным персонажам. Но все это всегда сопряжено с высоким уровнем неопределенности и если вы к такому не расположены или не готовы располагаться, то будет тяжело и быстро надоест. Поэтому лучше оставайтесь мидлом.
Послесловие для дедов
Не могу не вспомнить о 30-ти летних джунах. У меня для вас плохие новости. Помните я говорил, что все надо делать вовремя? Вот… Ой, да ладно. Это все ерунда на самом деле. Если вы в 30-40-50 лет все еще способны тащить и пробивать стены, то никаких проблем у вас в жизни вообще не будет. Но всегда есть нюанс. Джун в 20 лет выглядит для работодателя привлекательнее чем джун в 40 лет. Называйте это как хотите, эйджизм, дискриминация, как угодно. Но это факт. Некоторые говорят, что это из-за снижения способности к обучению, но я не очень разделяю это утверждение. Даже если есть научные подтверждения этому, то все равно это не стоит применять ко всем. Тут скорее играет другой фактор. Когда тебе 20, у тебя есть гораздо больше времени и ментальных сил на это самое обучение, чем когда тебе 40. В 20 лет можно с легкостью закрыться на несколько суток одному дома и прокопать любую интересующую тему. В 40 тут уже все не так однозначно.
Поэтому вывод такой. Если ты дед/бабка и хочется “войтивайти” или кардинально поменять область знаний, то надо десять раз подумать и прикинуть на какие жертвы придется пойти ради этого всего. Ну и да, тебе никогда не угнаться за 20-ти летними джунами. Поэтому игра может не стоить свеч. Ну либо сразу надо себе дать честный ответ, что серьезных высот достигнуть уже не удасться, и ты будешь заниматься этим только потому что тебя это очень сильно вдохновляет.
Всем крепкого весла!