Как вы знаете, работа инженером-программистом - это постоянный процесс. В отрасли, которая развивается так же быстро, как и технологии, есть чему поучиться. Новые фреймворки, новые языки, новое оборудование.
Это никогда не прекращается.
Я только что закончил свой первый год младшим инженером-программистом. Этот год бросил мне вызов, превзошедший все, что я мог себе представить. Я решил поделиться с вами самыми важными вещами, которые я узнал за последний год как разработчик.
Как изучить новую кодовую базу
Не могу передать, насколько я был счастлив, начав карьеру инженера-программиста. Я вошел с улыбкой на лице, готовый учиться.
Я был убежден, что знаю все, что мне нужно знать, чтобы быстро приступить к работе над любым проектом, над которым я работал.
Я был готов покорить мир.
Я быстро понял, что это не так.
Моя челюсть упала на пол, когда я начал работать над своим первым номером. Проект, над которым я работал, был грандиознее всего, к чему я когда-либо прикасался. У меня были проблемы с перемещением.
Мне было трудно увидеть, как взаимодействуют все разные части. Я просто смотрел на экран в какой-то момент, когда один из старших разработчиков сказал мне остановиться.
«Перестань пялиться на экран! Просто взломай код! »
Сказать об этом было ужасно. Что делать, если я сломал что-то важное или что-то не удалось исправить?
Меня быстро убедили, что ничего не может пойти не так, поскольку весь наш код поддерживается в системе контроля версий. Пока я работал над своей собственной веткой, все можно было вернуть в нормальное состояние.
Мне действительно просто нужно было начать взламывать код.
Я начал комментировать кусочки и кусочки, гадая, что сработает, а что нет.
Медленно, но верно это помогло мне понять, как разные части системы взаимодействуют друг с другом.
Нарушая вещи, я смог увидеть, что нужно в кодовой базе, а что может не понадобиться. Это помогло мне не только понять, как работает код, но и то, что некоторого кода там даже не было.
Теперь я использую эту технику при изучении любой новой кодовой базы. Мне просто нужно убедиться, что я не отправляю сломанный код в систему контроля версий.
Как общаться
В основном я потратил большую часть своего времени на изучение того, как кодировать самостоятельно, мне пришлось научиться программировать вместе с другими, как только я попал в профессиональную среду. Это был трудный урок.
Мне пришлось научиться формулировать сложные концепции для окружающих. Это не раз выходило как беспорядок.
Хотя были времена, когда другие разработчики понятия не имели, что я пытался сказать, я не расстраивался. Я глубоко вздохнул и долго и усердно думал о том, что пытался сказать.
Было много технического жаргона, которого я просто не знал.
Со временем и благодаря большой практике я смог начать описывать вещи в манере, которой могли следовать другие разработчики.
Помимо описания вещей, о которых я говорил, я также должен был сообщить другим, когда я не знал, о чем они говорят.
Иногда легко просто кивнуть и сказать, что вы знаете, что пытается вам сказать другой разработчик.
Хотя может быть легко просто кивнуть и улыбнуться, обычно это становится проблемой.
Я всегда стараюсь дать понять другим, когда чего-то не понимаю, независимо от того, насколько простой может быть для них концепция.
Коммуникация играет ключевую роль в этой отрасли, поскольку без нее невозможно разработать хорошее программное обеспечение. Как, черт возьми, мы собираемся построить что-нибудь полезное, если никто не тратит время на объяснение или понимание того, что мы пытаемся сделать?
Вот три вещи, которые я считаю важными при общении с другими:
Прослушивание
Я стараюсь поглотить все, что пытается передать другой человек. Я думаю о том, как я собираюсь ответить, а затем отвечу. Стараюсь не строить предположений. Я стараюсь не прерывать кого-то на середине предложения и не заявлять, что знаю, что они собираются сказать.
Пожалуйста, послушай.
Терпение
Я стараюсь быть терпеливым в общении с другими людьми. Возможно, мне придется объяснять что-то несколько раз, прежде чем они поймут, что я на самом деле пытаюсь им сказать. Все действуют в разном темпе. Терпение окупается.
Сочувствие
Я считаю, что это одна из самых важных вещей для развития хороших коммуникативных навыков. Как люди, мы все сталкиваемся друг с другом с различиями.
У нас будут разные мнения, неправильные предположения, плохие идеи, хорошие идеи, ужасные дни и чудесные дни. Я всегда стараюсь учитывать точку зрения другого человека при общении с ним.
Относитесь к другим так, как хотите, чтобы относились к вам. Я считаю это законом.
Когда я научился лучше общаться, мои дни стали намного легче. Моя продуктивность резко возросла, поскольку я смог работать с другими более эффективно.
Хотя я освоил многие аспекты общения, был еще один ключевой аспект, который я не освоил ...
Как обратиться за помощью
Это был один из самых сложных уроков для меня.
Я тот, кому было очень трудно просить о помощи. Мне всегда казалось, что я могу во всем разбираться самостоятельно.
Это было сочетание того, что я пытался доказать себя (глупо, я знаю), и моего невежества в том, как просить о помощи, что мешало мне сделать это.
Я наконец научился просить о помощи после того, как исследовал неизвестную ошибку в проекте, над которым работал. Некоторое время я работал над ошибкой, а затем решил обратиться за помощью к другому разработчику.
Я в некоторой панике подошел к другому разработчику. Я просто размахивал руками и кричал: «ОШИБКА, ОШИБКА, ОШИБКА!»
Это произошло не совсем так, но с точки зрения другого разработчика, вероятно, так казалось.
Он и еще один старший разработчик решили, что мне лучше сесть с ними и поговорить об этом конкретном мероприятии.
Я узнал, что для меня неконструктивно прерывать другого разработчика, чтобы сообщить ему об ошибке.
Для меня неконструктивно сообщать другому разработчику, что мне нужна помощь, без какого-либо контекста относительно того, с чем у меня возникла проблема.
Я узнал, что есть формула обращения за помощью.
Вместо того чтобы размахивать руками и кричать о наличии ошибки, я выучил эту простую формулу:
«Я сделал это, и что-то произошло, но я хотел, чтобы это произошло вместо этого. Мне было трудно понять, почему это происходит. Если у вас будет минутка, не могли бы вы помочь мне найти корень проблемы? »
Это всегда способствует хорошему разговору и обычно приводит к решению проблемы.
Я не понимал, что мой предыдущий подход к просьбе о помощи был контрпродуктивным и никому не годился.
Честно говоря, я понятия не имел, как обратиться за помощью.
Если вы такой же, как я, и не хотите просить о помощи (или не знаете, как это сделать), попросите о помощи. Запомните формулу.
Другие захотят помочь вам, если вы спросите так, как я предложил.
Документация
Это то, чему я научился по необходимости.
Независимо от того, сколько раз вы говорите мне, как что-то делать, некоторые вещи я никогда не вспомню.
Есть языковые особенности и приемы программирования, которые у меня всегда есть в Google.
Чем больше я работал над проектами, тем больше понимал, что просто не могу все запомнить. Это побудило меня начать документировать.
Слишком много движущихся частей ЛЮБОГО программного проекта не имеют какой-либо документации. Мне все равно, в README или PDF.
Практически любая форма документации лучше, чем ее отсутствие.
Ясно, что я очень категоричен по этому поводу.
Нет ничего хуже, чем отсутствие документов. Начать работу над проектом без документации - это кошмар. Все тормозит.
Документация должна быть четкой и краткой, предоставляя разработчикам все необходимое для начала работы над проектом.
Я обращаю на это внимание других разработчиков в моей команде и среди моих коллег. Я всегда рад писать документацию.
Это может быть утомительно и отнимать много времени, но облегчит жизнь каждому. В этом весь смысл!
Вот и все!
Я многому научился за первый год работы инженером-программистом и считаю эти уроки самыми важными. Мне еще предстоит многому научиться, и я с нетерпением жду этого!
Пожалуйста, поделитесь со мной любым опытом, полученным вами в качестве инженера-программиста, который может соответствовать некоторым из этих уроков, которые я усвоил. Я очень рад услышать то, что вы можете сказать!
Немного обо мне: я инициативный инженер-программист из Флориды. Я использовал такие ресурсы, как freeCodeCamp, чтобы начать свою карьеру в индустрии высоких технологий. Вот мой сайт: http://coreyslaven.com/
Вы можете подписаться на меня в Твиттере здесь.
Спасибо за чтение!
Удачного кодирования!