Из джуниора в сеньора: 9 переживаний на пути к мастерству
Если в своих карьерных мечтах вы стремитесь превратиться в сеньора, будьте готовы пережить эти девять волнительных моментов.
Не каждый разработчик программного обеспечения мечтает быть руководителем или менеджером. Многие просто хотят быть лучшими – самыми лучшими в своем деле.
Посмотрим, что рекомендуют специалисты. Руководство по карьерному росту для программистов советует будущим senior-разработчикам сосредоточиться на следующих направлениях деятельности:
- наставничество и воспитание джуниоров;
- проектирование архитектуры приложений;
- релиз-инжиниринг;
- установка стандартов компании.
Эта статья о другом.
Хороший разработчик не просто пишет код. Чтобы добиться успеха, он составляет планы, сталкивается лицом к лицу с катастрофами и предотвращает их, постоянно общается с другими людьми, чтобы сделать свою работу как можно лучше. Перед ним длинный путь, полный взлетов и падений. Успехи дают энергию и мотивируют будущего сеньора двигаться дальше, неудачи напоминают о смирении и становятся источником мудрости. Каждый такой момент – ключевой, он отмечает еще одну пройденную ступень на пути к цели.
Статья расскажет о девяти ситуациях, в которые вы обязательно попадете, поднимаясь к вершинам мастерства. Некоторые из них приятные, другие неудобные или даже страшные. Но каждая вносит свой вклад в профессиональную копилку, меняя образ мышления программиста и его подход к делу. Опыт сеньора – это столь же ценный ресурс, как и его технологические навыки.
Первая серьезная ошибка
Вероятно, самым первым шагом в высшую лигу является первый большой баг, который вы сделали в работающем проекте. Это ужасное, отвратительное чувство! Программное обеспечение, над которым вы трудились, теперь сломано из-за вашего кода или неправильного теста.
Даже самый лучший программист ошибается. Если, конечно, он человек.
Большинство разработчиков здорово продвигаются вперед, сделав серьезную ошибку. Они обещают себе никогда ее не повторять, анализируют ситуацию и раздумывают, как можно было этого избежать. Многие программисты в такой момент понимают, что предупреждения компилятора и инструменты статического анализа кода – их лучшие друзья.
Ошибки будут всегда, но чем лучше ваши навыки, тем реже они случаются.
Первое удаление важных данных проекта
Возможно, это будет DROP TABLE или ошибочная команда rm -rf
на продакшене. Возможно, вы начнете форматировать не тот диск. Вдруг появится тревожное чувство: «Это занимает больше времени, чем ожидалось... Это же не... О, нет!!». И все это будет сопровождаться хаотичными бесполезными попытками все починить.
Как и крупный баг в коде, потеря данных работающего проекта – серьезный опыт для программиста. После такой катастрофы, вы снова проверяете все аспекты своей работы и наконец-то начинаете создавать резервные копии.
Но главное: вы вдруг понимаете, что ошибка – это не конец, вы все еще живы и можете работать дальше.
Автоматизация работы
Есть хорошая старая поговорка: «того, кого не могут заменить, не повышают». Все, что привязывает специалиста к конкретной работе, мешает ему двигаться вверх и получать новые интересные задачи.
Хороший программист всегда найдет способ переложить выполнение рутинной и тяжелой работы на машину. Например, если каждый понедельник приходится просматривать серверные логи в поисках проблем, разработчик установит инструмент подобный Logwatch. Если нужно мониторить множество серверов, он найдет что-нибудь более мощное.
В любом случае «ленивые» программисты – большая ценность для компании. Автоматизированная система требует меньше денег, чем зарплата еще одного сеньора. Кроме того, избавившись от рутины, специалист получает больше времени для личного развития и решения интересных задач.
Использование существующего кода вместо написания нового
Сеньор знает, что в ненаписанном коде нет ошибок, а большинство проблем уже давно решены.
Сеньор знает, что использовать готовый код для решения задачи быстрее и дешевле, чем написать, протестировать и отладить собственный.
Чтобы дойти до этой ступеньки, потребуется немного прижать программистское эго, но это очень полезное умение для профессионала.
Публичная похвала
Многие люди чувствуют дискомфорт, когда их публично хвалят за достижения. Они отлично работают и любят помогать другим, но очень смущаются, если об этом говорят.
Признание может иметь разные формы и размеры. Кому-то вручают почетный диплом «работника квартала» на сцене перед полным залом, а кого-то сдержанно благодарит руководитель за внедрение новой микрослужбы. Как бы это ни выглядело, принимайте похвалу любезно и благодарно, даже если ужасно смущаетесь. Не умаляйте своих заслуг, поблагодарите и скажите, что вы рады быть полезным. Прежде всего, это вежливо. Люди хвалят вас не просто так и ожидают, что это будет оценено. Кроме того, этот опыт поможет в будущем справиться с неуверенностью в себе.
Отклонение предложений
Хотя все мы любим быть супергероями, которые могут делать с компьютерами все, что пожелают, иногда лучше отклонить предложения других людей, касающиеся вашего проекта. Сеньор знает, когда не нужно писать код. Любой бит кода может стать причиной ошибки и вылиться организации в круглую сумму.
Вам может быть неудобно впервые отказать, особенно если предложение было действительно интересным. Но это знаменательное событие для профессионала. Оно означает, что вы понимаете ваш проект, его возможности, функции и уверенно ориентируетесь в нем.
Менеджеры проектов с открытым исходным кодом отказывают постоянно. Они должны уметь твердо сказать пользователю: «Извините, но ваш запрос не соответствует целям развития проекта».
Понимание, за что стоит бороться
Программисты-новобранцы знают, как делать вещи правильно. И очень удивляются, когда узнают, что в реальном мире это не всегда требуется.
Есть старая военная поговорка: «ни один план не переживает контакт с врагом». То же самое с джуниорами и реальными проектами. Иногда в разгар битвы бизнеса пуристские методы информатики, изученные в школе, отбрасываются на обочину.
Структура базы данных практически никогда не соответствует пятой нормальной форме. Код просто вырезается и вставляется на новое место, а не преобразуется в функцию или библиотеку. Множество систем работает только на bash-скриптах и молитвах. Мудрый программист знает, когда нужно искать правильный путь, а когда – дешевый.
В первый раз кажется, что вы продаете свои принципы. Но это не так, и баланс между академическим пуризмом и реалиями выполнения работы очень тонкий. Понимание, когда не нужно делать вещи идеально, является частью профессиональной мудрости сеньора.
Роль консультанта
Через некоторое время вы заработаете репутацию в своей организации. Это будет не просто опыт в определенной области – это будет мудрость. Кто-то придет к вам и попросит совета по проекту или проблеме. Не помочь единожды, а направлять и координировать.
Например, если команда менее опытных разработчиков заплутает в новых концепциях, именно вас призовут на помощь и попросят не только сделать что-то, но и показать людям, как улучшить свои навыки.
Это может быть и техническое лидерство. Например, ваш босс скажет, что требуется новое решение для индексирования, и вам следует выяснить все о FooIndex, BarSearch и выдвинуть свои предложения. Такая ответственность ложится только на того, кто доказал свою мудрость на практике.
Первый серьезный headhunting
Специалисты по подбору персонала всегда ищут таланты. Большинство рекрутеров, кажется, делают случайную выборку email и LinkedIn, но время от времени они узнают о способных разработчиках и охотятся за ними.
Серьезные профессиональные предложения – это еще одна звездочка на ваши погоны будущего сеньора. Возможно, бывший коллега поговорил с другом-рекрутером и рассказал о ваших навыках. Личная рекомендация на должность – даже если вы не собираетесь работать – означает, что вас действительно признали экспертом, который может принести много пользы.
Далеко ли до сеньора?
Этот список поможет вам определить ваше текущее положение на пути к профессиональному мастерству и к позиции сеньора. А также вы сможете понять, чего ожидать в ближайшем будущем, и подготовиться по мере сил.
Но не забывайте, что у каждого разработчика свой путь. Существует один точный способ определить, что вы прошли некую ключевую отметку: вы рассказываете истории об этом другим людям. Когда в следующий раз поймаете себя на размышлениях о прошедшей сложной ситуации, подумайте, что она для вас значит в профессиональном плане и почему. Опыт – отличный учитель, если его слушать.
Перевод статьи: Andy Lester: Becoming a senior developer: 9 experiences you'll encounter