Иногда я сижу и представляю как было бы здорово, будь у меня возможность сесть в машину времени, аки Марти Макфлай, отправиться этак лет на 5 назад и накидать самому себе советов на кого ставить ставки и в какую валюту вкладываться как правильно двигаться по руслу своей профессии.
Небольшой дисклеймер. Все пункты, которые будут перечислены это мое субъективное мнение. Я всегда ловил себя на мысли как здорово у некоторых ребят получается прогрессировать и получать удовольствие от своей работы. Сам никогда так не относился к тому чем занимаюсь, для меня работа была скорее вроде повинности, которую приходится отбывать. Я мог послушать умных бизнес коучей "если что-то не нравится то сжигай мосты и находи себя в другом ремесле", но не стал следовать этому совету. Шаг за шагом начал выполнять те пункты, которые будут описаны ниже и о чудо, последний год я чувствую вкус к своей профессии.
Итак, приступим советы самому себе:
1. Дружище, соблюдай work-life баланс
Я уже предвижу как бы ответил самому себе. "Как только такое вырывается из твоих уст ? Чтобы развиваться надо фигачить 24/7". На самом деле это далеко не так, когда речь идет о долгоиграющих перспективах нужно действовать, как стратег, а не как тактик. На долгую большего достигают люди, которые умеют грамотно балансировать отдых и работу. Из памяти всплывает эпизод когда пришлось уйти в отпуск больше чем на месяц просто из-за того, что перегорел и уже банально не мог без головных болей смотреть на дисплей компьютера.
Делаем вывод: Секрет достижений в балансе и четком плане действий.
2. Никогда не останавливайся в своем развитии
Причем этот пункт надо уметь совмещать с первым пунктом. Приятель, даже когда думаешь, что уже хорошо разобрался в теме все равно остаются не изученные области этой вселенной. Если ощущаешь, что уже все изучил, то нужно дать себе крепкого пинка и искать точки роста дальше. Мудрец говорил - "Я знаю, что я ничего не знаю". Причем эту фразу приписывают как Сократу так и Демокриту. Жизнь программиста это непрерывная погоня за новыми знаниями
Делаем вывод: Если хочешь оставаться конкурентным на рынке надо постоянно учиться.
3. Изучай алгоритмы - они основа всего
Я часто слышу, как говорят, что для того, чтобы работать рядовым разработчиком необязательно уметь вертеть бинарные деревья или эффективно сортировать списки. Соглашусь, такие таски у разрабов появляются крайне редко. Однако на мой взгляд, когда у разработчика есть хорошая алгоритмическая база это сильно повышает его уровень, естественно в совокупности со знаниями своей платформы. Объяснение не самое сложное, решение алгоритмических задачек заставляет мозг учиться и продумывать корнер кейсы, а это ключевые навыки в твоей профессии. Фреймворки меняются, технологии выходят на более продвинутый уровень, мы получаем более удобные языки, но одно остается неизменным master card алгоритмы. Приведу аналогию из футбола, ты будешь сколь угодно долго играть и даже хорошо, однако когда начинаешь чеканить мяч на количество, долго и упорно, дружище тобой будет получен качественный апгрейд и это станет заметно на поле. Надеюсь аналогия понятна. Даже если не по душе вся эта алгоритмическая ахинея я бы попытался дать ей шанс и посмотреть как это отразится на повседневной работе. Но естественно и о своей предметной области не стоит забывать.
Делаем вывод: Алгоритмы всегда будут оставаться алгоритмами, знания полученные в этой сфере никогда не устареют.
4. Не бойся ошибаться, а после делать правильные выводы
В твоем призвании часто приходится делать выбор (выбор фреймворка, архитектуры, подхода к решению задач) и иногда каждый совершает ошибки. Нельзя после очередной своего провала посыпать голову пеплом и страдать. Важно извлечь урок из каждого такого инцидента и стараться в будущем его не допускать, именно так происходит личностный и профессиональный рост - ценой проб и ошибок. Самый простой пример это оценка задачи, ни один человек в мире не способен дать идеальную оценку. Стоит стремиться к совершенству, а для этого нужно ошибаться. Главное после каждой ошибки не зарывать голову в песок, наоборот надо продолжать оценивать задачи дальше. Ошибся и ошибся, выкинул это из головы и идешь дальше. И в какой-то момент если все делать правильно ты начнешь попадать практически во все свои оценки.
Делаем вывод: Каждая ошибка делает тебя сильнее, но только если проводить с собой правильную ретроспективу
5. Научись получать удовольствие от своей специальности
Это один из самых главных пунктов. Кто бы что ни говорил, но на мой взгляд большая часть жизни любого профессионала связана с работой. Когда человек получает от чего-то удовольствие он прогрессирует значительно быстрее и это даже не я придумал.
Но, когда хобби становится профессией, начинается совсем другая игра. Сохранить мотивацию на протяжении долгого времени самая сложная задача человеческой жизни. В этом и проявляется профессионализм, в постоянстве. Существуют много способов как сохранить мотивацию, почти ни один из них на мне не сработал. Каждый должен сам находить такие способы для себя. Возможно это прозвучит смешно, но я представляю себе, что мой проект и люди на нем это футбольная команда, которая соревнуется с другими футбольными командами (проектами). Это дает мне нереальный буст в мотивации, так как я всю свою молодость хотел стать футболистом. Представляю, что синьоры в команде это основной состав, мидлы - это дубль, а джуны - молодежка и почему-то все эти ассоциации зажигают во мне искру и дают дополнительную мотивацию совершенствоваться, я ведь хочу всегда находиться в основном составе, а не сидеть на банке :).
Иногда огромную мотивацию дают лекции умных дядек, которые показывают насколько крутым можно стать если стараться. Ну и самое главное никогда не забывать про первый пункт, выгорание никто не отменял.
Производим вывод: Делай все, чтобы сохранить мотивацию, это краеугольный камень твоего успеха и профессионального долголетия. Приложи усилия, чтобы найти, свой источник мотивации.
6. Не давай синдрому самозванца управлять тобой
Тут не получится много сказать, самое главное баланс. Быть уверенным в себе и своих достижениях, но не самоуверенным. Думаю это умение человек больше получает со своим характером, но опять же над этим тоже можно работать и улучшать, хоть в какой-то степени. Вера в себя может творить чудеса и иногда так и происходит.
Делаем вывод: Никогда не бойся высказывать свое мнение, предлагать свои идеи, все регалии и поощрения, которые тебе прилетают, не падают просто с неба, особенно если сам понимаешь, что прикладываешь усилия. Не теряй веру в себя, дружище :)
7. Прокачивай софт скиллы
Разработчик - это человек, который каждый день общается с большим количеством людей и не только из своего направления. Это не секрет, что чем эффективнее ты научишься скиллу взаимодействия, тем больше времени сможешь уделять кодингу. Мне в свое время помогли выступления с лекциями и то, что я принимал участие во всяческих тех толках. Но как говорится у каждого свои способы, главное результат.
Делаем вывод: От того насколько эффективно ты научишься слушать людей и доносить до них свои мысли будет зависеть твоя продуктивность и полезность.
8. Иногда нужно делать то, что не нравится
Если тебе все нравится и дается очень легко зачастую это означает, что профессиональный рост замедляется, а может и вовсе останавливается. Причем это можно сказать про любую сферу деятельности человека. Профессиональные качества вытачиваются в сложных обстоятельствах. В любой непростой ситуации всегда надо добиваться своего и доходить до конца. Можно представлять это как RPG игру, в которой, чтобы перейти на следующий левел, надо преодолевать сложности.
Тяжело даются алгоритмы, невыносимо решать алгоритмические задачки ? - решай алгоритмические задачки, уделяй время.
Не нравится рисование, не умеешь рисовать вьюшки ? - рисуй вьюшки, уделяй этому время.
Не любишь выступать с докладами перед коллегами ? - выступай с докладами перед коллегами.
Думаю алгоритм очевиден :)
Скилл в тех направлениях, которые внушают тебе симпатию, итак, будет расти, а вот своим слабым сторонам следует уделять больше всего внимания.
Делаем вывод: Проводи с самим собой регулярную ретроспективу, отмечай слабые места и составляй план по закрытию этих пробелов. Зацикли этот процесс и радуйся результатам.
9. Сделанное всегда лучше идеального
Я много раз видел и сам попадал в ситуацию когда в погоне за идеалом упускалась простая истина. Работающий софт пусть и не с самым красивым кодом всегда лучше нерабочего "чистейшего кода". Это можно отнести и к стремлению за пиксель перфект макетами. Пользователь зачастую не видит разницу в 1-2 пикселя, а вот не выпущенный вовремя релиз приносит большие убытки бизнесу. Конечно всегда стоит пробиваться к идеалу, но держи в памяти, что я описал выше. Плюс это влияет на пресловутую мотивацию. Когда ты что-то долго делаешь и никак не приходишь к результату нападает апатия. У меня такое случалось не один раз. Именно поэтому полезно дробить задачу на мелкие части, которые можно сделать в разумное количество времени.
Делаем вывод: Done is better than perfect :) И этим все сказано
10. Нельзя слепо верить постулатам
Стоп, не торопись бросать в меня помидорами. Я ни в коем случае не принижаю заслуги ребят, которые пишут умные книги про архитектуры, перформанс и подобного рода произведения. Но когда какое-либо утверждение становится критичным для твоего проекта все слова стоит проверять на практике. Если мы говорим про архитектуры, то стоит их рассматривать просто как набор рекомендаций, а не жесткий свод правил.
Почти как пиратский кодекс.
Мне приходилось сталкиваться с ситуациями, когда слепое следование архитектуре приводило к большим проблемам. Архитектура должна помогать, а не вставлять палки в колеса. Если в каком-то кейсе отступление от постулатов приносит больше пользы чем вреда то стоит рассмотреть такой вариант. Всегда помни о том, что даже самые умные дядьки тоже ошибаются. Не ошибается тот кто ничего не делает.
Делаем вывод: Для использования любого совета или инструмента должна быть причина. Не стоит применять архитектуру только ради архитектуры.
11. Как на дело настроишься так оно и пойдет
Дружище об этой фразе знают все, я сам буквально год назад сказал бы "Бла бла бла, опять эти психологические штучки, которые не работают". Однако я провел эксперимент (пусть сам того и не хотел) и он показал, что эта фраза действительно работает. Так произошло, что когда я приходил в андроид разработку мне под руки попалось приложение, которое влюбило меня в себя. Отмечу, что влюбился не в самого себя, а в это приложение ;)
В тот момент у меня промелькнула мысль "было бы здорово поработать в команде, которая делала эту прилу".
Спустя три с половиной года моя мысль стала явью. Причем приходил я уже уставший от всего и эмоционально выгоревший с мыслями об отпуске на пару месяцев. Но попал на проект о, котором мечтал, пускай это прозвучит глупо, но на нем мне нравилось абсолютно все.
Даже когда возникали проблемы у меня не было мыслей вроде "Какой же я бедный, как я устал, ох уж этот легаси код, как же он меня достал". Я думал лишь о том, что такое случается везде и надо поскорее разобраться с проблемой и дальше выполнять свою миссию. "Ты ведь попал на место о котором мечтал, как только твой разум может источать недовольства ?"
Стоит ли говорить, что моя мотивация начала зашкаливать. Самое интересное, что по внутренним ощущениям за год на этом проекте я вырос намного больше чем за предыдущие три года в профессии. Если хорошенько постараться и настроить себя на такое отношение к месту работы, то все начинает играть совершенно другими красками. К сожалению, я понял это лишь на третий год карьеры :) Надеюсь эти мемуары помогут тебе не совершить моих ошибок.
Делаем вывод: Постарайся настроить себя на то, что ты работаешь на лучшем проекте в мире и старайся делать все, чтобы это стало явью.
Помни - Keep Calm and Code.
Искренне надеюсь тебе будут полезны эти советы, твой друг из будущего.