Что-то в Джулии Чайлд привлекло мое внимание. Этот американский писатель, учитель и телеведущий известен тем, что принес в Америку французскую кухню. Действительно, владение французской кухней и такая замечательная кулинарная карьера впечатляют.

Но не менее впечатляет то, что Чайлд нашла свое «призвание жизни» - французскую кулинарию - когда в 37 лет поступила в кулинарную школу Le Cordon Bleu. Другими словами, Чайлд не был вундеркиндом французской кулинарии. Скорее всего, она позже научилась искусству и ремеслу французской кулинарии. Вдохновленный и любопытный, я взял ее автобиографию Моя жизнь во Франции.

В основе моих поисков лежал вопрос: как Чайлд выучила французскую кулинарию и, в конечном итоге, стала ее мастером, учитывая ее более поздний старт?

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

1. Делайте это правильно.

В 1949 году Чайлд поступила в Le Cordon Bleu во Франции, где жила со своим мужем Полем. Там она получила инструкции от шеф-повара Бунгарда, который был наклейкой, чтобы делать вещи «правильно».

Вместо того, чтобы заучивать рецепты, Чайлд училась искусству французской кулинарии. «Багнард намеревался научить нас основам», - объясняет Чайлд. «[Он] обучил нас своим осторожным стандартам делать все« правильно ». Он разобрал этапы рецепта и сделал их простыми. И он сделал это со спокойной властью, настаивая на тщательном анализе текстуры и вкуса ».

Кроме того, шеф-повар Бюнард подчеркнул важность «правильной техники», как вспоминает Чайлд, «например, как правильно« повернуть »гриб».

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

Эта фундаментальная тема прослеживается в кулинарной карьере Чайлда после Le Cordon Bleu. Например, когда она и несколько друзей открыли кулинарную школу, они «сосредоточились на французской кухне… и классической технике, поскольку мы чувствовали, что когда у ученика есть основные инструменты, его можно адаптировать к русской, немецкой, китайской или любой другой кухне. ”

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

2. Делайте качественную работу.

Как справедливо отмечает Чайлд: «Хорошие результаты требуют времени и внимания». Она добавляет, что «[я] если кто-то не использует самые свежие ингредиенты или не читает весь рецепт перед началом, и если вы торопитесь готовить, результат будет хуже по вкусу и текстуре».

Проще говоря: выполняйте качественную работу, что означает замедление, внимание к деталям и установление стандартов для себя. Всегда так очевидно, когда кто-то «уделяет время и внимание» своей работе.

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

Точно так же вы, возможно, читали программу и обнаружили, что процесс не требует усилий: имена переменных были ясными и значимыми; каждая функция служила определенной цели; убраны ненужные строчки кода; строки «мертвого кода» были удалены. Это «время и забота» применительно к программированию.

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

Есть несколько простых способов создать код более высокого качества:

  • Используйте контрольный список. Это гарантия качества, что ваша работа будет полной и точной.
  • Напишите понятные имена переменных. В книге Стива МакКоннелла «Code Complete» есть отличный совет по именованию: «Опишите словами, что представляет собой переменная. Часто это утверждение само по себе является лучшим именем переменной ».
  • Сначала разберитесь в проблеме, прежде чем вводить код. Это может показаться очевидным, но меня удивляет, как мало людей на самом деле находят время подумать, прежде чем печатать.
  • Рефакторинг. Сделайте свой код немного чище, проще для понимания и более значимым. Не потому, что нужно. Но потому что ты способен на большее.

3. Учитесь на своих ошибках.

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

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

Осознание своих ошибок - ключевая часть процесса. Есть несколько способов сделать это.

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

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

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

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

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

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

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

Сделайте это активным

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

И готовила она. Не только в качестве новичка, но и на протяжении всей карьеры.

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

Результаты говорят сами за себя: ребенок - кулинарная икона. Но для меня больше всего выделяется то, как она это сделала. «Никто не рождается великим поваром», - объясняет она, - «никто не учится на практике».

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

Программист и писатель: amymhaddad.com | Programmerspyramid.com | Я пишу в Твиттере о программировании, обучении и продуктивности @amymhaddad

Первоначально опубликовано на amymhaddad.com.