Что-то в Джулии Чайлд привлекло мое внимание. Этот американский писатель, учитель и телеведущий известен тем, что принес в Америку французскую кухню. Действительно, владение французской кухней и такая замечательная кулинарная карьера впечатляют.
Но не менее впечатляет то, что Чайлд нашла свое «призвание жизни» - французскую кулинарию - когда в 37 лет поступила в кулинарную школу Le Cordon Bleu. Другими словами, Чайлд не был вундеркиндом французской кулинарии. Скорее всего, она позже научилась искусству и ремеслу французской кулинарии. Вдохновленный и любопытный, я взял ее автобиографию Моя жизнь во Франции.
В основе моих поисков лежал вопрос: как Чайлд выучила французскую кулинарию и, в конечном итоге, стала ее мастером, учитывая ее более поздний старт?
Я надеялся, что ответы помогут мне в моем стремлении стать лучшим программистом. Итак, ниже представлены три тактики, которые ребенок использовал для изучения французской кулинарии, и то, как мы можем применить их в своем ремесле как программисты.
1. Делайте это правильно.
В 1949 году Чайлд поступила в Le Cordon Bleu во Франции, где жила со своим мужем Полем. Там она получила инструкции от шеф-повара Бунгарда, который был наклейкой, чтобы делать вещи «правильно».
Вместо того, чтобы заучивать рецепты, Чайлд училась искусству французской кулинарии. «Багнард намеревался научить нас основам», - объясняет Чайлд. «[Он] обучил нас своим осторожным стандартам делать все« правильно ». Он разобрал этапы рецепта и сделал их простыми. И он сделал это со спокойной властью, настаивая на тщательном анализе текстуры и вкуса ».
Кроме того, шеф-повар Бюнард подчеркнул важность «правильной техники», как вспоминает Чайлд, «например, как правильно« повернуть »гриб».
Этот урок - сосредоточьтесь на основах - очень своевременен. Вместо подхода сверху вниз к программированию путем изучения новейших технологий, мы должны следовать примеру Чайлда и использовать подход снизу вверх: сосредоточиться на основах программирования, таких как структуры данных, алгоритмы и компьютер. объем памяти.
Эта фундаментальная тема прослеживается в кулинарной карьере Чайлда после Le Cordon Bleu. Например, когда она и несколько друзей открыли кулинарную школу, они «сосредоточились на французской кухне… и классической технике, поскольку мы чувствовали, что когда у ученика есть основные инструменты, его можно адаптировать к русской, немецкой, китайской или любой другой кухне. ”
Ребенок задается вопросом о важности основ: вы будете более подготовлены и адаптированы. Получив инструменты для своей торговли, вы можете применять и повторно применять их в разных контекстах. А в быстро меняющейся области, такой как программирование, способность быстро адаптироваться - необходимый навык.
2. Делайте качественную работу.
Как справедливо отмечает Чайлд: «Хорошие результаты требуют времени и внимания». Она добавляет, что «[я] если кто-то не использует самые свежие ингредиенты или не читает весь рецепт перед началом, и если вы торопитесь готовить, результат будет хуже по вкусу и текстуре».
Проще говоря: выполняйте качественную работу, что означает замедление, внимание к деталям и установление стандартов для себя. Всегда так очевидно, когда кто-то «уделяет время и внимание» своей работе.
У всех нас был опытный продавец, который делал покупки без стресса и даже приятно. Или владелец компании включил в вашу недавнюю посылку персональную рукописную записку с благодарностью за ваш заказ. Или автор включил несколько дополнительных шагов в статью с практическими рекомендациями, чтобы четко описать процесс для читателя. Эти маленькие жесты требуют времени. Они также показывают свою заботу.
Точно так же вы, возможно, читали программу и обнаружили, что процесс не требует усилий: имена переменных были ясными и значимыми; каждая функция служила определенной цели; убраны ненужные строчки кода; строки «мертвого кода» были удалены. Это «время и забота» применительно к программированию.
Преимущество двоякое: это лучше для человека, получающего помощь (и часто этим человеком является наше будущее). Кроме того, лично для меня больше удовольствия производить качественную работу, чем что-то посредственное.
Есть несколько простых способов создать код более высокого качества:
- Используйте контрольный список. Это гарантия качества, что ваша работа будет полной и точной.
- Напишите понятные имена переменных. В книге Стива МакКоннелла «Code Complete» есть отличный совет по именованию: «Опишите словами, что представляет собой переменная. Часто это утверждение само по себе является лучшим именем переменной ».
- Сначала разберитесь в проблеме, прежде чем вводить код. Это может показаться очевидным, но меня удивляет, как мало людей на самом деле находят время подумать, прежде чем печатать.
- Рефакторинг. Сделайте свой код немного чище, проще для понимания и более значимым. Не потому, что нужно. Но потому что ты способен на большее.
3. Учитесь на своих ошибках.
«Конечно, я сделал много бу-бу», - размышляет Чайлд. «Сначала это разбило мне сердце, но потом я понял, что научиться исправлять ошибки или жить с ними - это важная часть того, чтобы стать поваром. Я начинал чувствовать буржуазную кухню в руках, в животе, в душе ».
Эта цитата подчеркивает ключевую причину, почему важно учиться на своих ошибках и выяснять, как их исправить: это поможет развить вашу интуицию. Ребенок не использует слово «интуиция», но ее описание ощущения «буржуазная кухня в моих руках, животе, душе», безусловно, предполагает это.
Осознание своих ошибок - ключевая часть процесса. Есть несколько способов сделать это.
Сначала решите проблему, изучите код других людей, решавших ту же проблему, и сравните решения. Это фантастический способ добавить инструменты в ваш набор инструментов программирования, улучшить навыки решения проблем и увидеть новые (а зачастую и более эффективные) способы решения задач. Во-вторых, попросите обратную связь о проблемах, которые вы решаете, или программах, которые вы пишете.
Оба подхода предлагают нечто важное: осведомленность. Я отчетливо помню, как один программист сказал мне, что я должен лучше писать имена переменных. До этого момента я понятия не имел, что имена моих переменных нуждаются в помощи. Обратная связь повысила осведомленность о проблеме.
Однако осведомленность - это только половина дела. Другой что-то с этим делает. Если вы просите обратной связи по проблеме, примените ее. Обновите свою программу с учетом полученных отзывов или определите способ отточить определенный навык.
Как только я узнал о своих плохих именах переменных, я создал контрольный список имен переменных и повесил его на стене возле монитора моего компьютера. Трудно забыть о чем-то, когда это находится в поле вашего зрения.
Не менее важно научиться замечать собственные ошибки. Идея в том, что вы тренируете свой разум и глаз, чтобы находить ошибки; затем исправьте их.
Я вольно употребляю слово «ошибки» в этом конкретном контексте. Ваш код может работать, но, возможно, он мог бы быть более эффективным или его можно было бы написать более четко. Большая часть написанного находится в редактировании. Точно так же большая часть кода связана с рефакторингом: найдите способы написать лучший и чистый код.
Это еще одна причина, по которой контрольный список может быть полезен. Прежде чем считать программу «выполненной», например, просмотрите свой контрольный список, чтобы убедиться, что ваша работа точна и полна.
Сделайте это активным
Я могу описать процесс обучения ребенка одним словом: активный. Она сделала то, в чем хотела научиться: готовить.
И готовила она. Не только в качестве новичка, но и на протяжении всей карьеры.
Она экспериментировала с рецептами и ингредиентами. Она искала отзывы и мнения других и применяла их. Она исследовала. Она постоянно спрашивала «почему», чтобы вникнуть в суть дела. «Я хотел знать, почему что-то произошло на плите, когда и что я могу сделать, чтобы повлиять на результат».
Результаты говорят сами за себя: ребенок - кулинарная икона. Но для меня больше всего выделяется то, как она это сделала. «Никто не рождается великим поваром», - объясняет она, - «никто не учится на практике».
Это хорошие слова, которые следует запомнить в следующий раз, когда вы окажетесь на круиз-контроле, прочитав серию руководств по программированию. Как и Чайлд, мы должны делать то, что хотим улучшить. Как программисты, нам нужно программировать.
Программист и писатель: amymhaddad.com | Programmerspyramid.com | Я пишу в Твиттере о программировании, обучении и продуктивности @amymhaddad
Первоначально опубликовано на amymhaddad.com.