Сведения о вопросе

HEIGTH

13:54, 7th August, 2020

Теги

Можете ли вы поделиться своими секретами или лучшими практиками для решения проблем?

Просмотров: 481   Ответов: 19

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

Есть ли у вас специальный метод, чтобы атаковать сложные проблемы? Я действительно хочу узнать о твоем Великом секрете.


Резюме: Люди рекомендуют следующие вещи:

  • Сделай что-нибудь еще: сходите на рыбалку, прогуляйтесь,
  • Поговорите с другими людьми: Разбейте проблему на части Проверка кода
  • TDD
  • Опыт
  • Повторите & Повторить
  • Сосредоточьтесь на понимании того, в чем заключается проблема



  Сведения об ответе

ASER

03:46, 8th August, 2020

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

Просто идите и говорите об этом.


  Сведения об ответе

LAST

19:23, 23rd August, 2020

Для меня ваш вопрос может быть воспринят двояко. Один из них-как я создаю решение проблемы программирования, а другой-как я решаю проблему, которая существует (т. е. отладка).

Программирование:

  1. Пока не думайте о реализации.
  2. Убедитесь, что у вас есть вся необходимая информация.
  3. Начните разбивать проблему на части. Я использую для этого очерк. В настоящее время использование моей жизни организовано .
  4. Не беспокойтесь о решении всей проблемы. Начните с того, что вы знаете, и держите его простым для начала. Я использую PDL для описания решения.
  5. После того, как вы завершили проход, продолжайте возвращаться к 2 и повторите. Используя контур, я могу продолжать увеличивать уровень детализации и легко перемещать эти детали по мере того, как решение становится более ясным.
  6. Если есть кусочки головоломки, на которые у вас нет ответа, добавьте их в свой план и опишите, каким будет следующий шаг, чтобы решить эту часть. Это может быть больше исследований, разговор с кем-то или получение более подробной информации от пользователей.
  7. Вернитесь к Шагу 2 и повторяйте его, пока не получите описание вашего решения.
  8. Реализуйте свое решение на выбранном вами языке. Вероятно, вы можете использовать контур в качестве комментариев.

Отладка:

  1. Вам нужно сделать все возможное, чтобы понять, что происходит на самом деле.
  2. Составьте список того, что вы знаете, чтобы быть правдой (факты).
  3. Сделайте все возможное, чтобы сделать его повторяемым как можно легче.
  4. Придумайте свой лучший подход к решению проблемы (проконсультируйтесь с другими, google и т. д.)
  5. Попробуйте свой подход, чтобы решить эту проблему.
  6. Если он исправит это, то посмотрите, сможете ли вы снова сломать его, а затем исправьте его по-настоящему. Помогает вам доказать, что вы действительно поняли и исправили проблему.
  7. Если это не исправит ситуацию, отмените изменения, вернитесь к шагу 1 и повторите его

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


  Сведения об ответе

KOMP

09:27, 3rd August, 2020

Ну я могу сказать тебе чего не делать:

Придумывание решений с вашим менеджером, не являющимся IT, в зале заседаний совета директоров через 5 секунд после того, как проблема будет распознана во время разговора с клиентом во время конференц-звонка :)


  Сведения об ответе

screen

00:51, 7th August, 2020

  1. Написать модульный тест
  2. Смотрите, как он терпит неудачу, а затем заставьте его пройти
  3. Повторяйте до тех пор, пока проблема не будет решена

А если серьезно, то просто продолжайте добавлять слои абстракции до тех пор, пока все не станет 'just work'. Если я не в своей тарелке, я просто спрашиваю кого-то умнее меня, как они решат эту проблему.


  Сведения об ответе

darknet

01:31, 19th August, 2020

Основываясь исключительно на опыте и когда я получаю свои лучшие откровения/eureka moments:

  • Принять душ
  • Лежать в постели, пытаясь засыпать


  Сведения об ответе

SILA

10:26, 7th August, 2020

Опыт.


Серьезно, какого ответа вы ожидаете на свой вопрос?

Нет такого алгоритма, который позволил бы вам решать все виды задач.

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


  Сведения об ответе

KOMP

21:06, 1st October, 2020

Обязательные ссылки:

Концептуальный блокбастер, Джеймс Л. Адамс

Как ее решить, автор Г. поля

и может быть даже

Хаки производительности ума, Рон Хейл-Эванс


  Сведения об ответе

lourence

22:14, 17th August, 2020

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


  Сведения об ответе

+-*/

20:37, 14th August, 2020

Я переосмысливаю его снова и снова. И еще раз. Затем я разбиваю его на самые маленькие кусочки, какие только могу.

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

Позже, когда я буду знать, что он у меня есть, я буду объединять линии вместе, но не раньше, чем я буду SURE, что проблема решена.

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


  Сведения об ответе

SKY

08:44, 22nd August, 2020

Может быть, это тоже стоит учесть:

  1. Сначала выполните раздражающие задачи
  2. Не повторяйтесь
  3. Знайте, когда нужно остановиться
  4. Просмотрите свой код вместе с сотрудником


  Сведения об ответе

PAGE

15:49, 26th August, 2020

Для решения проблем у меня в голове укоренились следующие шаги.

  • Вопрос - выясните, что же такое настоящее проблема/вопрос есть. Много раз она довольно расплывчата или запутана.

  • Факты-получите все, что вы знаете, чтобы будьте фактом прямолинейным и разберитесь какими будут неизвестные.

  • Picture-рисовать картинки, которые я использую мой все время белая доска.

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

  • Ответ - получите реальное решение через выбранная стратегия.

  • Проверка-убедитесь, что ваше решение является решение задачи с заданными параметрами факты.


  Сведения об ответе

VCe znayu

21:06, 1st October, 2020

Обычно я не начинаю кодировать сразу. Я разбираю проблему и делаю заметки по ней, пока не доберусь до места, где я знаю, что мне нужно сделать с точки зрения кода. Я использую файлы emacs org-mode и иногда pen-and-paper в зависимости от типа проблемы.

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


  Сведения об ответе

#hash

03:33, 5th August, 2020

Я выключаю компьютер, достаю удочки и провожу несколько часов на рыбалке.

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


  Сведения об ответе

DINO

02:57, 4th August, 2020

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

Я думаю, что самое важное - это заставить свой мозг расслабиться и позволить себе быть творческим. Эти цветные карандаши-способ стимулировать ваше творчество (стоит попробовать самому, звучит здорово!); чашка чая (или рыбалка @Martin:) - это способ расслабиться. Некоторые из лучших идей в истории были обнаружены во время принятия душа, кстати :)


  Сведения об ответе

PIRLO

15:07, 24th August, 2020

Так много ответов...

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

Самое простое, что я нашел, называется "problem solving wheel". Посмотрите это в поисковике Google.

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


  Сведения об ответе

prince

06:52, 7th August, 2020

Я попробовал метод Кента, и он действительно сработал для меня.

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

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


  Сведения об ответе

Chhiki

13:22, 19th August, 2020

До:

  1. Прочитайте все, что вы можете найти о проблемном домене.
  2. Не пропускайте темы, которые вы считаете неуместными.
  3. Повторите шаги 1 и 2.

В течение:

  1. Разделите большие проблемы на более мелкие задачи.
  2. Определите свои критерии пригодности (напишите тесты).

Атер:

  1. Сделайте посмертное вскрытие solution/project.
  2. Пробуйте новые языки, изучайте новые техники.
  3. Тренируйся, тренируйся, тренируйся.


  Сведения об ответе

ЯЯ__4

12:16, 26th August, 2020

Три слова: тестируемая разработка


  Сведения об ответе

COOL

19:33, 16th August, 2020

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

С другой стороны, отладка-это совершенно другая проблема. При отладке я обычно пытаюсь выяснить, что происходит в коде (т. е. пройти через него и посмотреть переменные), выяснить, что он должен делать, и попытаться исправить это. Обычно между каждым из этих шагов также существует "step out of the room and get something to drink". Один трюк, который я нашел с отладкой, заключается в том, чтобы попытаться оставаться спокойным, и если это не сработает, игнорировать проблему на некоторое время и работать над чем-то другим. В большинстве случаев для решения этой проблемы требуется больше времени, хотя самоотверженная - напряженная - работа, чем она делает, делая перерыв.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться