Давайте наслаждаться хорошими сторонами и избегать плохих

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

Какие хорошие детали

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

Творчество

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

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

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

Деньги

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

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

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

Гибкость

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

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

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

Плохие детали

Разработка программного обеспечения - это сложно. Быть разработчиком программного обеспечения может быть нелегко. Стресс часто возникает из-за нетехнических факторов. Вот 3 худших вещи в этой работе из моего опыта. Хотя эти плохие части могут быть применимы к другим профессиям, их влияние на разработчика программного обеспечения может быть хуже.

Менеджмент, который не разбирается в программном обеспечении

Трудно работать с руководством, которое не разбирается в разработке программного обеспечения. Многие менеджеры ошибочно полагают, что программировать легко. Такое восприятие часто приводит к нереалистичным срокам и изменению объема работ в последнюю минуту. Это не может быть более неправильным, поскольку в наши дни разработка программного обеспечения становится все более сложной.

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

Еще одним признаком плохо управляемой команды является то, что новые сотрудники часто оказываются некомпетентными. Что хуже нехватки персонала, так это то, что добавляются люди, которые не знают, что делают. К сожалению, когда в команде слишком много некомпетентных людей, они все замедляют, создают дополнительные трения и создают больше бумажной работы. Конечным результатом является то, что все тяжелые работы без каких-либо требований (или вводящих в заблуждение требований) перекладываются на горстку разработчиков в очень сжатые сроки.

Сохранить устаревший код

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

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

Если вы не попали в такую ​​ситуацию, то вам повезло. Надеюсь, мне больше не придется это делать.

Проблемы со здоровьем

Работа разработчика программного обеспечения может негативно сказаться на вашем здоровье, если вы не позаботитесь о себе заранее.

Как и другие офисные работники, программисты мало физически активны, не находятся на свежем воздухе и солнечном свете в рабочее время. Так легко сидеть и смотреть на монитор в течение длительного периода времени, поскольку программирование требует постоянного внимания. В результате у многих программистов, включая меня, есть RSI запястья (повторяющееся растяжение).

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

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

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

Последние мысли

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

Удачного программирования!