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

Это никогда не прекращается.

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

Как изучить новую кодовую базу

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

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

Я был готов покорить мир.

Я быстро понял, что это не так.

Моя челюсть упала на пол, когда я начал работать над своим первым номером. Проект, над которым я работал, был грандиознее всего, к чему я когда-либо прикасался. У меня были проблемы с перемещением.

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

«Перестань пялиться на экран! Просто взломай код! »

Сказать об этом было ужасно. Что делать, если я сломал что-то важное или что-то не удалось исправить?

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

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

Я начал комментировать кусочки и кусочки, гадая, что сработает, а что нет.

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

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

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

Как общаться

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

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

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

Было много технического жаргона, которого я просто не знал.

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

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

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

Хотя может быть легко просто кивнуть и улыбнуться, обычно это становится проблемой.

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

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

Вот три вещи, которые я считаю важными при общении с другими:

Прослушивание

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

Пожалуйста, послушай.

Терпение

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

Сочувствие

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

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

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

Когда я научился лучше общаться, мои дни стали намного легче. Моя продуктивность резко возросла, поскольку я смог работать с другими более эффективно.

Хотя я освоил многие аспекты общения, был еще один ключевой аспект, который я не освоил ...

Как обратиться за помощью

Это был один из самых сложных уроков для меня.

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

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

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

Я в некоторой панике подошел к другому разработчику. Я просто размахивал руками и кричал: «ОШИБКА, ОШИБКА, ОШИБКА!»

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

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

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

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

Я узнал, что есть формула обращения за помощью.

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

«Я сделал это, и что-то произошло, но я хотел, чтобы это произошло вместо этого. Мне было трудно понять, почему это происходит. Если у вас будет минутка, не могли бы вы помочь мне найти корень проблемы? »

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

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

Честно говоря, я понятия не имел, как обратиться за помощью.

Если вы такой же, как я, и не хотите просить о помощи (или не знаете, как это сделать), попросите о помощи. Запомните формулу.

Другие захотят помочь вам, если вы спросите так, как я предложил.

Документация

Это то, чему я научился по необходимости.

Независимо от того, сколько раз вы говорите мне, как что-то делать, некоторые вещи я никогда не вспомню.

Есть языковые особенности и приемы программирования, которые у меня всегда есть в Google.

Чем больше я работал над проектами, тем больше понимал, что просто не могу все запомнить. Это побудило меня начать документировать.

Слишком много движущихся частей ЛЮБОГО программного проекта не имеют какой-либо документации. Мне все равно, в README или PDF.

Практически любая форма документации лучше, чем ее отсутствие.

Ясно, что я очень категоричен по этому поводу.

Нет ничего хуже, чем отсутствие документов. Начать работу над проектом без документации - это кошмар. Все тормозит.

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

Я обращаю на это внимание других разработчиков в моей команде и среди моих коллег. Я всегда рад писать документацию.

Это может быть утомительно и отнимать много времени, но облегчит жизнь каждому. В этом весь смысл!

Вот и все!

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

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

Немного обо мне: я инициативный инженер-программист из Флориды. Я использовал такие ресурсы, как freeCodeCamp, чтобы начать свою карьеру в индустрии высоких технологий. Вот мой сайт: http://coreyslaven.com/

Вы можете подписаться на меня в Твиттере здесь.

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

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