JavaRush /Java блог /Random /Кофе-брейк #122. Как читать незнакомый код. Как улучшить ...

Кофе-брейк #122. Как читать незнакомый код. Как улучшить свое портфолио разработчика

Статья из группы Random

Как читать незнакомый код

Источник: Beginner Освоиться с большой кодовой базой сложно, но без чтения незнакомого кода никак не обойтись. В течение своей карьеры вы прочитаете больше кода, чем напишете. Ведь чтобы писать хорошо поддерживаемый код, вам необходимо четко понимать, как он интегрируется с остальной кодовой базой. Чтение кода — это навык, который можно освоить и улучшить с течением времени. Он требует практики, но есть инструменты и методы, которые вы можете использовать для развития этого навыка. Кофе-брейк #122. Как читать незнакомый код. Как улучшить свое портфолио разработчика - 1Читать незнакомый код может быть неприятно, потому что его писали не мы сами. Обычно у нас есть собственное видение, как код должен быть написан, несмотря на разные стили кодирования, разные соглашения об именах переменных или разные способы решения проблемы. Но при чтении кода не всегда очевидно, что в нем могли быть ограничения, которые первоначальному автору нужно было обходить. Возможно, ему нужно было решить проблему определенным образом по причинам, о которых вы не знаете. Если автор кода все еще рядом, вы можете у него об этом спросить. Но иногда просто невозможно узнать, почему код был написан тем или иным образом. Вот некоторые инструменты и команды, которые я успешно использую, чтобы копаться в кодовых базах и понимать не только то, что делает код, но и контекст, в котором он был написан.

Управляйте исходным кодом в своих интересах

Я постоянно использую команду git grep. Это оболочка вокруг grep, которая также учитывает ваш файл .gitignore. Если мне нужно найти, где в кодовой базе используется переменная, имя класса или строка, это то, к чему я обращаюсь в первую очередь. Я использую git blame всякий раз, когда читаю файл, с которым не знаком. Это помогает мне узнать, кто написал этот код или когда было внесено то или иное изменение. Знание этих вещей позволяет найти нужных людей, с которыми можно поговорить, или поможет вам отследить ошибку из-за недавних изменений в файле. Я также использую команду git log -p <filename>, чтобы узнать хронологическую историю всех изменений, которые делались в файле. Какие были самые последние изменения в этом файле и кто их внес? Когда они были сделаны?

Используйте возможности IDE

Я предпочитаю IDE JetBrains, потому что они отлично поддерживают индексацию кодовой базы. Это позволяет мне использовать такие команды, как “Перейти к определению” (Go to definition) и “Найти использование” (Find usages). Соответственно, я лучше ориентируюсь в кодовой базе. Если я сталкиваюсь с незнакомым мне вызовом функции, я могу использовать “Перейти к определению”, чтобы перейти прямо к тому месту в кодовой базе, где определена эта функция. Так я вижу сигнатуру функции и могу прочитать ее логику, чтобы увидеть, что она делает. Если я смотрю на функцию и хочу знать, где она используется в кодовой базе, я применяю команду “Найти использование”. Так я вижу все места в кодовой базе, которые вызывают эту функцию. Это полезно для рефакторинга и понимания того, где в кодовой базе используется определенная бизнес-логика.

Ищите точки входа

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

Читайте комментарии

Это кажется легким делом, но его легко упустить из виду. Иногда я застреваю, пытаясь понять, как работает логика или почему она существует определенным образом. Хотя прямо над кодом есть комментарий, который ее объясняет. Обязательно читайте комментарии, но будьте осторожны. Хороший комментарий раскрывает достаточно контекста, чтобы дать вам представление о том, почему код существует и почему он был написан именно так. Но комментарии часто могут вызвать больше путаницы, если они не обновляются по мере внесения изменений в код. Используйте git fault, чтобы узнать, был ли код изменен позднее, чем комментарий.

Читайте тесты

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

Как улучшить свое портфолио разработчика

Источник: FreeCodeCamp Ни для кого не секрет, что хорошее портфолио может значительно улучшить шансы разработчика на получение работы. Все говорят об этом. Но мало кто может сказать, как сделать хорошее портфолио. Видите ли, многие портфолио довольно скучные и похожи друг на друга. Если ваше портфолио выглядит как и все остальные, то не рассчитывайте на то, что его заметят. Оно не будет ничем выделяться среди других. Кофе-брейк #122. Как читать незнакомый код. Как улучшить свое портфолио разработчика - 2Но не волнуйтесь, я уже через это прошел. Мое первое портфолио было шаблонным, скучным и содержало много того, о чем я сейчас расскажу в этом посте. Я бывший маркетолог, ставший разработчиком, и я знаю, как что-то выделить. Я провел несколько рекламных кампаний, которые резко увеличили продажи. Поэтому я знаю, что нужно думать как маркетолог, чтобы выделить свое портфолио. Если вы прочитаете это руководство и воспользуетесь моими советами, вы поднимете свое портфолио над морем других молодых разработчиков, пытающихся выделиться. Прежде чем мы перейдем к пяти советам по повышению уровня вашего портфолио, давайте просто убедимся, что мы на одной волне.

Что такое портфолио?

Портфолио — это способ продемонстрировать, кто вы, какие у вас есть навыки и, самое главное, проделанную вами работу. Если вы разработчик, то ваше портфолио будет иметь форму веб-сайта. Основная цель вашего сайта — продемонстрировать себя и свою работу наилучшим образом. Портфолио должно выделять вас и заставлять работодателей думать: “Вау! Я бы хотел работать с этим человеком”. В конечном счете, вам нужно будет показать им, что с вами здорово работать, и они должны узнать о вас больше. Портфолио должно включать некоторые стандартные элементы.

Необходимый минимум портфолио

Вот не подлежащие обсуждению пункты любого портфолио разработчика:
  • Адаптивный дизайн (страница должна качественно отображаться как в десктопной, так и в мобильной версии).

  • Проекты, демонстрирующие вашу работу.

  • Раздел “Обо мне” или другое место, где люди, читающие ваш сайт, могут узнать информацию о вас.

  • Ваше портфолио должно быть доступно для всех посетителей сайта.

  • У вашего портфолио должен быть собственный домен. Купите доменное имя — это можно сделать менее чем за 10 долларов. Не отправляйте людей на 39238834.netfily.com

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

Если в вашем портфолио все это есть, то у вас хорошее начало. А теперь давайте рассмотрим пять способов повысить уровень своего портфолио, начиная с неочевидного.

Пять пунктов, которые нужно выполнить, чтобы повысить уровень своего портфолио

1. Определите свою целевую аудиторию

Одной из областей, которая может помочь повысить уровень вашего портфолио, является точное знание цели вашего портфолио. То есть для кого оно? Если бы я спросил вас, какова цель вашего портфолио, соответствует ли результат этому? Скажем, цель вашего портфолио — получить первую работу младшего разработчика. Тогда ваше портфолио будет сильно отличаться от портфолио фрилансера. Поэтому первое, что вам нужно сделать, — это спросить себя, какова цель вашего портфолио. Начните с общего, а затем уточните детали. Продолжая пример с младшим разработчиком, вы можете уточнить интересующую вас должность как младший разработчик интерфейса на React. Если вы младший разработчик интерфейса, то вашему портфолио не понадобятся такие элементы, как общие карты навыков, показанные на рисунке ниже. Кофе-брейк #122. Как читать незнакомый код. Как улучшить свое портфолио разработчика - 3Эти карты лучше подходят для тех, кто ищет внештатную работу. Когда вы знаете цель своего портфолио, вы можете лучше адаптировать информацию, чтобы сообщить, почему кто-то должен помочь вам в достижении вашей цели.

2. Улучшите детали вашего проекта

Это самый важный раздел вашего портфолио, и я часто вижу, что он выполнен не очень хорошо. Если вы просматриваете на Reddit какое-то сообщество вроде r/webdev и ищете “портфолио”, то, как правило, вы увидите приложение-калькулятор, приложение с погодой, крестики-нолики, приложение для поиска фильмов, клон “большого веб-сайта” и так далее. Не поймите меня неправильно — это полезные проекты для изучения необходимых навыков. И люди потратили время на их создание. Проблема в том, что все разрабатывают одно и то же. Часто вы можете просто следовать инструкциям и создавать их, не задумываясь. Здесь есть две проблемы. Во-первых, вы не выделяете себя. Если я HR или менеджер по найму, почему я должен выбрать ваше приложение-калькулятор среди других тридцати таких же в папке “Входящие”? Кроме того, как я могу быть уверен, что вы создали эту штуку самостоятельно, а не просто скопировали/вставили код из учебника? Во-вторых, большинство людей просто загружают проект, ссылаются на репозиторий GitHub и, возможно, на онлайн-демо. Это ничего не говорит человеку, который потенциально собирается нанять вас, и не дает ему особых причин нанимать вас вместо всех остальных, кто сделал то же самое. Итак, как же выделить раздел проектов? Давайте рассмотрим несколько способов повысить уровень раздела проектов в вашем портфолио. Делайте оригинальные проекты Вам не нужно заново изобретать велосипед или создавать новое гениальное приложение для социальных сетей. Но было бы здорово, если бы вы попытались использовать другой API вместо стандартного API погоды. Например, вы можете создать приложение для серфингистов, которое будет работать, как приложение погоды, но вместо вызывать разные endpoints. Это покажет, что вы знаете, как вызывать API не по учебнику. Расскажите немного о проекте Первая проблема заключается в том, что многие проекты не оригинальны. Вторая — в том, что большинство людей не дают ничего, кроме общих сведений о проекте. Что выделит вас, так это предоставление некоторых подробностей о вашем проекте. Когда я говорю о деталях, я имею в виду историю вашего проекта. Попробуйте ответить на некоторые из этих вопросов:
  • Почему вы решили создать этот проект?
  • Что вызвало у вас затруднения при создании этого проекта?
  • Как вы решили проблему, возникшую при работе над проектом?
  • Чему вы научились во время этой работы?
  • Какие знания вы взяли с собой в другие проекты?
  • Что бы вы сделали по-другому в следующий раз?
Ответьте на эти вопросы и разместите их в нескольких кратких абзацах на своем сайте. Это дополнит информацию о ваших способностях как разработчика. Посетители сайта увидят, как вы преодолеваете трудности, как вы учитесь на своих проблемах и какой у вас уровень навыков. Вы уже на пути к тому, чтобы выделиться, если последуете еще одному совету.

3. Удалите лишнее из своего портфолио

Иногда лучшее, что вы можете сделать для улучшения своего портфолио, — это удалить кое-что. Вы должны удалить то, что не добавляет ценности вашей целевой аудитории, и то, что снижает доверие к вам. Вот список вещей, которые вы должны удалить, и почему:
  1. Пошаговые учебные проекты. Эти проекты подрывают доверие к вам. Они не оригинальны, они не показывают мне, на что вы способны. Скорее, они показывают мне, что вы умеете копировать чужие идеи.

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

  3. Если один из перечисленных проектов — это само портфолио. Зачем же избавляться от этого? Причина в том, что люди уже в вашем портфолио, они взаимодействуют с проектом. Лучше сэкономьте место для другого проекта.

  4. Индикаторы прогресса навыков. Хотя они выглядят круто, они плохи. Если вы джуниор, то вы, вероятно, знаете только 10% языка JavaScript. Вы хотели бы об этом всем говорить?

  5. Если ваше портфолио является точной копией чьего-то портфолио – переделайте его. Для начала, это просто не круто. Все хотят увидеть, на что вы способны, а не то, что вы научились копировать код.

4. Придайте разделу “Обо мне” немного индивидуальности

Есть песня Пола Келли под названием “Every F$*#%) City”, и общая идея песни в том, что все города одинаковы. Ну да, я видел много портфолио, и многие из них выглядят одинаково. Раздел, который часто кажется одинаковым, — это раздел “Обо мне”. Давайте посмотрим на пример ниже. “Привет, меня зовут Джонни Лаки, я Full-Stack Web Developer из Example Town. Мне нравится создавать веб-сайты, решающие уникальные жизненные проблемы. Я работаю в основном с MongoDB, Express, React, Node и GraphQL и создал бесчисленное количество веб-сайтов WordPress и Shopify. Раньше я работал IT-консультантом, владельцем бизнеса электронной коммерции и цифровым маркетологом. Мне также очень нравится возиться с CSS. В свободное время я играю в видеоигры, а также тренируюсь”. Привет, Джонни Лаки, или это была Люси Лавли? Я забыл, потому что я HR-специалист и я прочитал 50 таких портфолио, и все они очень похожи. Если бы я изменил ваше имя, город и стек технологий, многие из этих кандидатов стали бы неотличимы. Чтобы быть справедливым, есть некоторые личные особенности, такие как то, что они “играют в видеоигры, а также тренируются”. Но знаете что? Многим другим кандидатам тоже нравятся эти вещи. Поэтому они тоже напишут что-то похожее. Как же выделиться, чтобы не выглядеть немного жестковатым? Ваш раздел “Обо мне” должен показать вашу индивидуальность и опыт. Поскольку ваша личность отличается от других людей, этот раздел должен быть таким же. Давайте посмотрим на мое портфолио. Я получил несколько комплиментов по этому поводу. “Я бывший маркетолог, который любит создавать проекты с помощью кода. Я впервые увлекся программированием в 2015 году. Я был в Сан-Франциско со своим зятем, и он рассказывал мне о таком языке, как Python, и о том, как с его помощью можно автоматизировать вещи. Как человек, который ищет эффективности, я заинтересовался этой темой. Я начал изучать Python, когда вернулся в Австралию. Вскоре я научился автоматизировать свои собственные проекты. Я сделал бота, чтобы записываться на занятия в спортзал. Еще одного, чтобы отправлять еженедельные отчеты моему боссу. И я даже сделал бота, чтобы лайкать контент моей девушки в Instagram. К сожалению, на этом все. Вскоре меня повысили. Так что у меня было меньше времени на обучение, и я оставил программирование на обочине. Но затем начался Covid, и внезапно у меня появилось больше времени. Итак, я снова начал учиться. В частности, я изучил веб-разработку. После нескольких месяцев самообучения я понял, что это то, чем я хочу заниматься в своей карьере. Итак, я записался на буткемп академии кодеров и вложил в него свое сердце и душу. Я программировал каждый день, до поздней ночи и по выходным. До тех пор, пока я не был готов начать писать код профессионально. После учебного лагеря я вырос как программист, работая вместе со старшими разработчиками, которые помогли мне повысить мои стандарты того, что ожидается от любого веб-приложения. Сейчас я ищу работу на полный рабочий день, где я могу использовать свои навыки как в программировании, так и в бизнесе, чтобы помочь компании достичь своих целей”. Как видите, мой раздел обо мне уникален. Я бы сказал, что нет другого человека на планете, который мог бы написать то же самое в разделе “Обо мне”, не солгав. Ваш раздел “Обо мне” не обязательно должен быть сумасбродным, он может быть профессиональным. Но, и это ключевой момент... Вы должны сделать его интересным, чтобы человек, читающий его, захотел дочитать до конца. Чтобы сделать ваш раздел “Обо мне” интересным, вы можете попробовать добавить личные истории. Попробуйте сплести их с ключевыми моментами, которые вы хотите донести. Еще один способ подумать об этом: если вас пригласили на собеседование, будет ли ваш рассказ обо мне достаточно интересным, чтобы человек, берущий у вас интервью, сказал: “Эй, мне понравилась эта история о X в вашем портфолио”? Если он это скажет, вы выиграли, потому сумели заинтересовать работодателя. Подумайте об этом так. Если у HR есть 50 заявок, которые нужно обработать, они пригласят на интервью только пять кандидатов. Если ваш раздел “Обо мне” представляет собой общий шаблон, то они, скорее всего, просто пролистают его и перейдут к следующему разделу. Если в вашем портфолио больше ничего не выделяется, они перейдут к следующему приложению, пока что-то не бросится в глаза. Вы хотите привлечь их внимание и заставить их перенести ваше портфолио в папку “позвать на собесседование”. Вам не нужно многого, чтобы выделиться. Если у вас меньше опыта, чем у кого-то другого, но их портфолио слишком общее, а ваше нет, я бы сказал, что у вас больше шансов быть выбранным для собеседования. Почему? Потому что мы все хотим работать с людьми, которые нам нравятся, и если вы покажете, что вы интересный и уникальный человек, я, наверное, хотел бы как минимум узнать о вас больше.

5. Добавьте немного эффектов

Да, есть базовые требования к портфолио, такие как солидные проекты, интересный раздел “Обо мне” и адаптивный дизайн. Но нужно что-то, чтобы сделать портфолио блестящим. Добавьте вещи, которые удивят потенциального работодателя! Вы можете добавить потрясающую анимацию, крутые эффекты перехода или темный режим. Например, я добавил окно в игровом стиле, чтобы потенциальный работодатель выбрал мое резюме. Кофе-брейк #122. Как читать незнакомый код. Как улучшить свое портфолио разработчика - 4

Заключение

Если вы прочитали этот пост и подумали: “О, чувак, мое портфолио довольно типичное” — не волнуйтесь. Теперь у вас есть пять пунктов, которые вы можете выполнить, чтобы повысить уровень своего портфолио. Чтобы оно переместилось из стопки “забыть” в стопку “позвать этого человека на интервью”.
Комментарии
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ