← Все курсы · Исследовательский анализ данных · Курс SQL
Техническая стойкость: что делать, когда инструменты сопротивляются
В этом руководстве вы найдете повторяемый цикл действий для тех дней, когда ничего не работает, а также четыре реальных истории, показывающие его использование при решении реальных проблем.
Вот что на самом деле содержит рабочий день. Брандмауэр веб-сайта блокирует вас без причины. Таблица, которая явно существует, сообщает вашему сценарию, что ее нет. Запрос длится тридцать минут, и конца ему не видно. Исправление, которое вы знаете, является правильным, вообще ничего не меняет.
Ничто из этого не означает, что вы делаете это неправильно. Это работа. Что отличает людей, которые сдают анализы, от людей, которые прекращают это делать? Техническая стойкость: сохранять методичность, когда инструменты сопротивляются. Это не та черта личности, которая у вас есть или которой нет. Это небольшая процедура, и вы освоите ее за следующие десять минут.
- Цикл диагностики (упорство — это метод, а не настроение)
- Четыре правдивые истории одного рабочего дня
- Правила, очищенные
- Почему борьба буквально происходит там, где учатся?
- Ссылки
Цикл диагностики (упорство — это метод, а не настроение)
Вспомните, когда в последний раз инструмент побеждал вас в течение часа. Что вы сделали в первую очередь, когда это не удалось, и что вы сделали во вторую очередь? Большинство людей могут назвать первый ход, а не второй, а второй — то, где живет метод.
Стиснуть зубы и повторить то же самое с большей силой — это не упорство; это разочарование от лишних шагов. На самом деле опытные люди запускают цикл:
| Шаг | Двигаться |
|---|---|
| 1. Прочитайте фактическое сообщение | Не «сломано» — слова. В сообщениях об ошибках указывается Симптом именно, даже если причина в другом. |
| 2. Сформируйте ОДНУ гипотезу | «Таблица отсутствует в файле, который читает сценарий». Достаточно конкретно, чтобы ошибиться. |
| 3. Проведите самый дешевый тест | Предпочитайте проверки, которые занимают секунды — перечислите таблицы, посчитайте строки, выведите одно значение. |
| 4. Проверьте со второй точки зрения | Не спрашивайте инструмент, который вас сбивает с толку, запутался ли он. Проверьте файл извне, данные из другой программы, значение другим запросом. |
| 5. Измените ОДНУ вещь, перезапустите | Измените три вещи, и вы никогда не узнаете, какая из них имела значение, а какая сломала что-то новое. |
| 6. Временной интервал, затем смените стратегию | Если нынешний подход съел 30 минут без прогресса, остановка – это решение, а не поражение. Обычно есть второй путь. |
Четыре правдивые истории одного рабочего дня
Все, что описано ниже, произошло за один день реальной работы над портфолио-проектом — создание набора музыкальных данных из архива диаграмм и действующего API. Тоже не плохой день. Нормальный.
Прежде чем читать исправление, прочитайте каждую стену и решите, что вы попробуете дальше. В некоторых из них вы будете правы, а те, в которых вы ошибаетесь, — это четыре минуты этого руководства, которые стоит сохранить.
История 1: брандмауэр говорит «нет»
Стена: подписавшись на бесплатный ключ API, брандмауэр безопасности веб-сайта полностью заблокировал запрос — «Ошибка 406», повторите попытку позже. В запросе не было ничего неправильного.
Ход: сначала определите класс проблемы: это относящийся к окружающей среде. Никакое пристальное изучение собственного кода не исправит удаленный брандмауэр. Сценарий для блоков окружения представляет собой отдельную маленькую лестницу: обновите один раз, сначала войдите в систему и повторите попытку, другой браузер, другую сеть, подождите и повторите попытку — сначала дешевле. Вторая ступенька сработала.
Урок: прежде чем отлаживать себя, спросите, ваша ли проблема вообще. Проблемы со средой требуют повторных попыток, а не исправлений кода.
История 2: стол, который существовал и которого не было
Стена: скрипт Python разбился из-за no such table: known_artists - в то время как приложение базы данных, открытое в тот же момент, ясно показывало эту таблицу в своем интерфейсе.
Ход: проверьте со второй точки зрения. Перечисление таблиц внутри ФАЙЛА базы данных (извне приложения) показало, что таблица действительно отсутствует, а также контрольный файл журнала рядом с базой данных. Приложение хранило новую таблицу в области несохраненных изменений; один щелчок «Записать изменения», и обе программы согласились.
Урок: два инструмента, несогласные в отношении реальности, означают, что они смотрят на разные реальности — найдите вторую точку зрения и спросите, какая из них является канонической. И еще: в сообщении об ошибке указывается недостающая вещь, а не причина. «Нет такого стола» звучало так, будто этот стол никогда не был построен; настоящей причиной была одна ненажатая кнопка.
История 3: тридцатиминутный запрос
Стена: соединение двух скромных таблиц (13 000 × 33 000 строк) длилось более получаса. Кнопка остановки даже не работала; приложение пришлось закрыть из диспетчера задач.
Ход: временной интервал и стратегия переключения. Причина была механическая. Оба ключа соединения были обернуты функциями, которые отключали любой индекс и вызывали ~427 миллионов построчных сравнений (полная история находится в руководство по большим наборам данных). Первая попытка исправления (более интересный индекс) тоже не удалась. Вторая стратегия — предварительное вычисление очищенных ключей в реальные столбцы, их индексирование и простое соединение — сработала за секунды. Две смены стратегии, ноль героического ожидания.
Урок: запрос, который все еще выполняется, не является прогрессом, который вы потеряете, остановив его. Уничтожение обреченного подхода — ЭТО упорный шаг; ждать этого – это просто надежда. А когда исправление Плана А не срабатывает, почти всегда существует План Б, сформированный по-другому, а не просто План А, который был более старательным.
История 4: исправление, которое ничего не изменило
Стена: было добавлено правило очистки заголовков для восстановления пропущенных совпадений — явно правильное, нацеленное на строки, которые явно в этом нуждались («Мечты - 2004 Ремастер» не соответствует «Мечты»). Повторный запуск: коэффициент совпадения был идентичным. Не близко — идентично цифре.
Ход: «Ровно нулевое изменение» — это его собственный диагноз. Неправильное правило немного меняет результаты; правило, которое никогда не выполнялся их вообще не меняет. Непосредственное тестирование логики правила (секунды) показало, что оно работает отлично — значит, сохраненные таблицы, должно быть, были созданы чем-то другим. Виновник: панель редактора, содержащая несколько похожих блоков кода, и старый был запущен. Очистите редактор, запустите только новый блок, готово.
Урок: когда изменение не приводит к никакой разницы, заподозрите, что изменение никогда не выполнялось, прежде чем заподозрить, что оно неправильное. Проверьте, что на самом деле выполняется — сбои процессов постоянно маскируются под логические сбои.
Правила, очищенные
| Правило | Однострочная версия |
|---|---|
| Ошибки — это работа | Запланируйте их в своей оценке времени; они не являются доказательством того, что вы терпите неудачу. |
| Классифицировать перед отладкой | Окружающая среда, состояние, производительность или логика? У каждого класса своя книга действий. |
| Сначала самый дешевый тест | Десятисекундный подсчет превосходит десятиминутную перестройку в качестве проверки гипотезы. |
| Вторая точка обзора | Подтвердите реальность с помощью инструмента, отличного от того, который вас сбивает с толку. |
| Одно изменение за раз | В противном случае успех и неудача необъяснимы. |
| Ровно нулевое изменение = не запускалось | Идентичные результаты с точностью до цифры в процессе, а не в логике. |
| Таймбокс, затем поменяйте форму | Настойчивость означает попытку следующей стратегии, а не той же самой, более громкой. |
| Запишите историю войны | Каждая решенная стена указывается в примечаниях по качеству данных или устранении неполадок проекта. рабочий рекорд — так что это урок один раз и никогда не загадка дважды. |
Почему борьба буквально происходит там, где учатся?
Два вывода исследования доказывают, что драки — это не пустая трата времени. Дакворт и его коллеги обнаружили, что стойкость — устойчивая настойчивость в достижении долгосрочных целей — прогнозирует достижения в сложных условиях сверх показателей таланта (Дакворт, Петерсон, Мэтьюз & Келли, 2007). В исследованиях «продуктивных неудач» Капура изучались ученики, которые боролись с проблемами. До получение полированного раствора. Они превзошли тех, кто сначала обучался чистому методу, по более глубоким, важным показателям (Капур, 2008). Стена, с которой вы столкнулись и которую преодолели, — это не налог, который вы заплатили за обучение; это большая часть самого обучения. Именно поэтому в описаниях проектов на этом сайте сохраняются ошибки: очищенная история успеха учит меньше, чем пережитый беспорядок.
Одно честное предостережение, чтобы это не превратилось в культуру суеты: упорство — это метод достижения успеха. разрешимый технические стены, а не обязанность страдать. Правило временных рамок существует потому, что знание того, когда остановиться, спросить или обойти, является частью навыка. Обращение за помощью — это стратегия отладки с отличной репутацией.
тот Портфельные проекты и Пар / Потоковое вещание Репозитории Скрытые сокровища хранят каждую стену и фиксируют записи. Курс SQL охватывает навыки запроса, на которые опирается цикл диагностики.
Открыть портфолио проектов →Думать как аналитик Это 64 страницы, посвященные половине работы: определение показателя, составление отчета по результатам анализа, изучение данных, прежде чем вы им поверите, и высказывание вслух того, о чем ваши данные не могут вам сказать.
Думать как аналитик, 19 $ →Ссылки
- Дакворт А.Л., Петерсон К., Мэтьюз М.Д. и Келли Д.Р. (2007). Упорство: настойчивость и страсть к долгосрочным целям. Журнал личности и социальной психологии, 92.(6), 1087–1101.
- Капур, М. (2008). Продуктивный провал. Познание и обучение, 26(3), 379–424. дои: 10.1080/07370000802212669