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

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

Возможно, вы уже уверены в своих силах. Но я спрашиваю вас: «Сколько ошибок вы сделали?»

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

Получение работы

Не всегда легко получить первую работу после окончания университета. Убедитесь, что он вам подходит.

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

Узнай, чего ты стоишь

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

Как я уже сказал ранее, я совершил эту ошибку дважды. По окончании учебы мне удалось найти работу в другом месте. Они собирались заплатить мне на 25% больше, чем я зарабатывал в то время!

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

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

Прочтите отзывы

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

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

Знайте, с чем вы действительно будете работать

В начале своей карьеры мне так хотелось поработать в определенной компании (там работал друг, и мне это нравилось), что я забыл остановиться и спросить, над чем я на самом деле буду работать. Оказалось, что я не буду в том же отделе, что и мой друг, и что я буду на другой стороне здания, а потом даже на разных этажах. И у меня не было времени, чтобы убедиться, что эта работа действительно мне подходит.

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

Собираясь сделать следующий шаг в своей карьере, я обязательно спросил о следующем:

  1. Стратегия и инструменты контроля версий
    Является ли это отраслевым стандартом? Git, TFS, SVN или Mercurial? Если вы слышали об этом, все в порядке.
  2. Имеются ли инструменты и среды CI / CD?
    Развертывание должно быть максимально автоматизированным. Это сделает вашу жизнь намного проще.
  3. Как часто бывают развертывания?
  4. В каких фреймворках / языках я буду работать?
  5. Какие инструменты вы используете? Какая IDE?
    Visual Studio, Rider или IntelliJ - хорошие варианты.
  6. Над какими проектами я буду работать?
  7. Какие технологии компания собирается использовать в будущем? Кроме того, на каком горизонте находятся эти изменения?
    Насколько далеки они от повседневного использования в компании?

В работе

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

Код никогда не самодокументируется

«Мой код самодокументируется, мне не нужны комментарии». 😒 Я подумал об этом, когда только начал профессионально программировать. Я больше не совершаю этой ошибки.

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

Я прочитал бесчисленное количество фрагментов кода, где один простой комментарий сделал бы этот сложный код и алгоритмы более легкими для понимания и обновления.

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

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

Если что-то не соответствует комментарию, вероятно, это неправильно. Или это даст вам хороший шанс применить следующий раздел на практике.

Задавайте вопросы заранее

Не ждите, пока окажетесь не в той кроличьей норе, прежде чем просить о помощи.

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

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

Ничего не предполагать

Предположения - важная часть определения того, что вам нужно построить, когда вы работаете над проектом. Часто для тикетов, над которыми вы будете работать, будут записываться предположения (если ваша компания использует тикет или систему задач).

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

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

Не делайте никаких предположений, если они не были заявлены за вас или вы о них не спрашивали.

Работаю из дома

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

Также будут некоторые компании, которые полностью против этого. Я проработал больше года с командой в Австралии, из нашего офиса в Новой Зеландии. Сотрудничество и сотрудничество по-прежнему происходило в сети. Благодаря электронной почте, чату и старомодным телефонным звонкам расстояние не мешает вам работать с коллегами. Практически не было разницы, нахожусь я в офисе или дома, но я все равно был вынужден находиться в офисе.

Ищите возможность провести день, работая дома или в другом месте, где это возможно.

Время собственно программирование

К сожалению, вы не будете программировать 100% своей недели. Как бы вам это ни было больно, не все так плохо. В любом случае программирование - это не стопроцентный код.

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

Вне работы

Некоторые говорят, что на самом деле это не имеет значения, но другие говорят, что то, что вы делаете вне работы, так же важно, как и то, что вы делаете на работе.

Программирование в свободное время

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

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

Читать

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

Напишите

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

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

Упражнение

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

Взяв немного времени

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

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

Спасибо за прочтение!

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