пятница, 4 сентября 2020 г.

Про работу

Раздел "о работе" - это очень обширная область, описать которую не получится, наверное, даже в целой книге.
 
К чему стремиться на работе? 
 
Для меня наибольший - и, не скрою, шкурный -  интерес представляет та часть этого раздела, которая касается моего развития как специалиста, профессионала своего дела.
Чем большим профессионалом своего дела ты являешься, тем более ты востребован на рынке труда, тем менее рутинными будут твои задачи и тем выше будут твои доходы.

Есть ли "серебряная пуля"?
 
Часто читаю вопросы начинающих разработчиков о том, какой есть самый правильный способ реализовать тот или иной функционал приложения. На такие вопросы нет одного единственного верного ответа. 

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

Сегодня на одном проекте решат, что надо использовать Rabbit, завтра на том же проекте - что Kafka лучше. Послезавтра - <queue-name>. Вчера были уверены, что многопоточность - зло и отовсюду её выпилили. Сегодня поняли, что без неё приложение работает слишком медленно.
 
Сегодня твой код работает, прошёл код-ревью и ты молодец - потому что никто не знает всех способов уронить твоё приложение. Когда жизнь такой способ подкинет, твой код станет "неоптимальным" и будет подлежать исправлению.

Поэтому не нужно переживать о том, что тебе не известно "самое правильное решение" или, что "ты не знаешь всё и заранее". Ни в одной области нельзя заранее знать всё. К тому же, в IT всё очень быстро меняется. Нужно просто научиться быстро получать и применять новые знания.
 
Что насчёт тестов?
 
Прочитал в одной статье такое мнение:  "У множества компаний и стартапов практически нет тестов. Сражаясь за рынок или за выживание, многие компании пренебрегают тестированием на ранних стадиях. Но не потому, что люди не умеют их писать. Они либо никогда не испытывали проблем от отсутствия тестов, либо испытывали проблемы от наличия старых тестов..."

 У меня с тестами часто бывает так:
Пишешь себе код почти по TDD и тут тебе прилетают изменения задания. Там изменений-то на пару-тройку строк кода. Но по причине этих изменений упали 40 тестов, которые теперь надо переписать...
Когда в течение недели приходит 10 таких изменений и ты в 10-й раз исправляешь 40 тестов, на 11-й раз ты их просто удаляешь или закомментируешь с мыслью поправить после того, как задание "устаканится". )

Лично мне без тестов - совсем никак. Я настолько ленив, что мне проще написать тест, чем дебажить с целью проверки код в ИДЕ или в уме. Не понимаю, зачем насиловать себе глаза и мозг, если можно поручить эту работу юнит- или интеграционному тесту

Какие есть советы по карьере?

Приведу советы пары людей, которые показались мне достаточно здравыми, чтобы прислушаться к ним.

Психолог и писатель Адам Грант попросил своих подписчиков в Twitter рассказать, какие ВРЕДНЫЕ для карьеры СОВЕТЫ им давали старшие родственники, преподаватели и более опытные коллеги:
• не тратить время на помощь другим;
• закрыть 90% проектов, потому что сосредоточиться можно лишь на одном;
• если вы не остаетесь в офисе после 17 часов, то вы не командный игрок;
• на новой работе нужно продержаться как минимум год;
• в 26 лет менять профессию слишком поздно;
• если вы не близки к обмороку, то недостаточно усердно работаете;
• не будьте слишком амбициозным;
• если вы дважды неудачно пытались поступить на нейрохирурга, возможно, эта специальность не для вас;
• ваши коллеги — это не ваши друзья;
• наука трудна, а вы недостаточно умны, чтобы быть морским биологом;
• если хотите стать CFO, то придется сделать короткую стрижку;
• не идите учиться на историка, потому что потом не найдете работу;
• необходимо выбрать между карьерой и семьей;
• оставайтесь в одной компании как минимум десять лет, чтобы подняться по карьерной лестнице.
 
Егор Бугаенко в своём выступлении перед студентами ВШЭ дал такие карьерные советы:
1) развивать хард-скиллы в одной достаточно специфичной нише;
2) развивать софт-скиллы;
3) работать на достижения (совершенствовать то, в чём ты хочешь быть лучше других и не забывать отражать это в резюме).

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