Добавить в корзинуПозвонить
Найти в Дзене
Deep Software Engeneering

Кем я себя вижу через 5 лет?

Читатель, привет! Давай я расскажу как я вижу себе свою карьеру через 5 лет. Это очень популярный вопрос в компаниях, которые думают о своих сотрудниках или делают вид. Раньше мне казалось, что все будут отвечать одинаково: хочу стать исследователем, хочу открыть новый алгоритм, который назовут моей фамилией ну или что-то в этом роде. Но поработав немного тут и там, стало понятно, что вопрос этот имеет смысл, так как люди отвечают на него по-разному. По моим наблюдениям, программисты делятся на следующие группы по их мотивациям: властные, человеколюбивые, технофрики, бизнес ориентированные. Вероятно, я что-то упустил, и если у вас сразу не кликнуло "о, это я", то пожалуйста, напишите в комментарии. Начну с первой группы: властные. С ними все довольно просто: человеку внушили, что надо быть боссом любой ценой, ибо это и есть главное достижение жизни. А босс чего, кого, зачем — дело второе. Главное, чтобы были подчиненные. Они стараются все делать как надо, но лишь с одной целью — получ

Читатель, привет! Давай я расскажу как я вижу себе свою карьеру через 5 лет. Это очень популярный вопрос в компаниях, которые думают о своих сотрудниках или делают вид.

Раньше мне казалось, что все будут отвечать одинаково: хочу стать исследователем, хочу открыть новый алгоритм, который назовут моей фамилией ну или что-то в этом роде. Но поработав немного тут и там, стало понятно, что вопрос этот имеет смысл, так как люди отвечают на него по-разному.

По моим наблюдениям, программисты делятся на следующие группы по их мотивациям: властные, человеколюбивые, технофрики, бизнес ориентированные. Вероятно, я что-то упустил, и если у вас сразу не кликнуло "о, это я", то пожалуйста, напишите в комментарии.

Начну с первой группы: властные. С ними все довольно просто: человеку внушили, что надо быть боссом любой ценой, ибо это и есть главное достижение жизни. А босс чего, кого, зачем — дело второе. Главное, чтобы были подчиненные. Они стараются все делать как надо, но лишь с одной целью — получить повышение до руководящей должности. Приходилось с таким встречаться, довольно печально.

Вторая группа довольно похожа на первую в их карьерном пути, но мотивы совсем другие. В какой-то момент таким людям становится не интересен процесс разработки, и более интересно работать лубрикантом в команде. Эти люди становятся servant managers, "прислуживающими менеджеры". Они помогают наладить процессы, мотивировать команды и в целом играют роль психологов, с которыми можно поговорить про код, и они попробуют что-то достать из своего старого нерелевантного опыта, и преподнести как абсолютную истину. С такими я обычно говорю о здоровье собаки или о шашлыках, они очень эмоционально откликаются на это, и это по-настоящему приятно.

Технофрики. Служители культа ЭВМ. Их код обычно близок к совершенству, они экономят каждую инструкцию процессора и ведут блог. Им интересно делать то, что никто другой не делал, или, как минимум, доходить самому до того, что известно другим. Пробовать новые технологии, даже если их применение ничем не оправдано. Сидеть ночами ища баг, который всплывает 1 раз на миллиард пользователей. Это они.

Бизнес-ориентированные программисты же совсем другие. Закодить что-нибудь кое-как, лишь бы скорее в production. Agile это для них. Стараются пропихнуть свой код без code review, в commit messages у них полный шлак типа "New feature", готовы писать хоть на Cobol, лишь бы видеть результаты своей работы как можно раньше.

Хотя я не работал ни в Google, ни в Facebook, но после просмотра https://youtu.be/_aXbD6ysQG0 , мне показалось, что Google это как раз место для технофриков, а Facebook для бизнес-ориентированных программистов. Хотя, если оглядеться вокруг — полно мест, где решают задачи и по-сложнее чем в интернет-гигантах, и этим занимаются очень, очень высоко квалицифированные люди. Полно мест, где двое программистов за год пишут огромные сервисы приносящие пользу. Так что в том, что надо непременно идти работать в FAANG/M, я сомневаюсь.

Я отношу себя где-то на 80% к технофрикам и на 20% к бизнес-ориентированным программистам (потом напишу отдельным постом почему так). Но я думаю, что мне бы хотелось сдвинуть это пропорцию в сторону 60/40. Я не редко видел видел, как плохой код, или использование каких-то готовых инструментов и кодогенераторов приводили к хорошим результатам с точки зрения ценности для конечного пользователя, и порой мне кажется, что мое желание выжать из процессора все, что можно, там, где это не нужно, это вред. Я хочу отучить себя от этого, и с другой стороны освоить, как меньшими силами и затратами достигать желаемых результатов.

С другой стороны, есть такая область как дизайн систем. По сути, все этим занимаются. Ты назвал переменные красиво и понятно — это дизайн. Ты разбил логику на небольшие, внятные, легко тестируемые функции — дизайн. Чем больше у тебя свободы, тем большими кусками ты оперируешь. Разбить класс на подклассы. Разбить сервис на классы. Разбить фунциональность на сервисы. Разбить бизнес-процессы на области ответственности.

Как правило, чем больше времени ты в индустрии, тем более абстрактные задачи тебе доверяют. С этой точки зрения, хорошо получать опыт в быстрорастущих проектах — дизайн там переделывается часто, старый выкидывается, есть возможность учиться, есть возможность влиять на решения и получать опыт. В больших устойчивых компаниях особо ничего уже не поменяешь. Там стоит учиться дизайну уже готовых решений, но как правило, они о нем пишут в открытых источниках. Их надо обязательно читать. Мне было бы так же интересно развиваться в этой области.

В общем, описание моего понимания мира заняло довольно много, но оно было нужно только для того, чтобы я мог выразить свою цель кратко и ясно: мне кажется, я бы хотел стать более бизнес-ориентированным программистом в проекте, где я бы мог принимать много решений о дизайне.

А вы?