Практические советы новичку бывалым программистам

«В зависимости от того, что они собой представляют, наши привычки либо создают нас, либо разрушают. Мы становимся тем, что делаем неоднократно ». ―Шон Кови

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

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

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

1. Сначала TDD

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

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

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

2. Итеративное обучение

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

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

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

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

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

3. Код для других

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

Любой дурак может написать код, понятный компьютеру. Хорошие программисты пишут код, понятный людям. - Мартин Фаулер

Научитесь ставить других на первое место, когда пишете код.

4. Не игнорируйте знание предметной области

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

5. Ставьте главное на первое место

Мы живем в мире, который больше всего отвлекает, поэтому в этом веке, где технологии - это образ жизни, а социальные сети - это новая игровая площадка. При таком количестве отвлекающих факторов в вашем распоряжении невероятно сложно оставаться сосредоточенным. бесчисленные электронные письма, сообщения Whatsapp, Facebook и Slack. Некоторые из этих каналов связи могут представлять важную часть нашей работы. Не все важно или срочно. Большинство из нас тратят слишком много времени на то, что срочно, и мало - на то, что важно.

Мы, программисты, можем извлечь страницу из матрицы Эйзенхауэра

«Самые срочные решения редко бывают самыми важными».

Четыре квадранта матрицы Эйзенхауэра следующие:

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

Важно, но не срочно (задачи, которые нужно запланировать позже). У задач в этом квадранте нет срочных сроков, но они важны для достижения ваших целей. Примеры, упражнения, ведение дневника, время с семьей.

Срочно, но не важно (поручить кому-нибудь задачу).

Ни срочно, ни важно (задачи, которые необходимо устранить).

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

6. Научитесь принимать критические отзывы

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

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

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

Когда вы принимаете конструктивную критику, вы как разработчик приобретаете ценные мягкие навыки:

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

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

7. Научитесь быть последовательным

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

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

Заключение

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

«Я не продукт своих обстоятельств. Я продукт своих решений ».

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

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