Вы когда-нибудь пытались реализовать что-то простое, но по какой-то странной причине это не работает.
Таким образом, вы пытаетесь найти возможное решение, но тогда что-то еще не работает. Вы продолжаете пробовать разные обходные пути, но каждый раз что-то другое не работает.
Каждый раз, когда вы приближаетесь на один шаг, вы также получаете еще один (или более) шаг от решения этой проблемы, и теперь это занимает 3 часа, а это должно было занять у вас 10 минут. И это до сих пор не решено.
В вашей компании нет никого, кто мог бы вам помочь, и вы собираетесь пробить кулаком свой экран.
В этот момент вы настолько разочарованы, что больше не можете ясно думать о проблеме. Что вы должны сделать на этом этапе? Или что вы можете сделать, чтобы не достичь этой точки?
источник
Ответы:
Хотя это реальная проблема, это не относится к программированию. Однако ИМХО настолько важно, что заслуживает места на этом форуме.
Мои предложения: сделать перерыв . Ходите гулять, медитируйте, спите, занимайтесь физическими упражнениями * - делайте что-то совершенно другое, чтобы позволить вашему мозгу расслабиться и выйти из психической колеи , позволяя вашему подсознанию спокойно работать над проблемой. Обычно он дает результаты на удивление быстро - ему просто нужно сообщить об этом. Но пока ваш сознательный ум отчаянно повторяет одни и те же циклы мыслей снова и снова, он не сможет слушать что-либо еще.
Техники расслабления и осознанности являются ключом к преодолению стрессовых реакций и позволяют вашему разуму четко сосредоточиться. И практика этого действительно окупается. Когда кто-то испытывает это, он уже может заметить повышение уровня стресса до того, как разочарование может наступить . Затем можно прервать цикл мыслей, например, сделав несколько глубоких вдохов или пару минут расслабиться. Это может быть все, что нужно на данный момент.
* целуй свою партнершу, ласкай своего питомца - предложения от моей жены :-)
источник
Волшебное слово должно . Вычеркните это из своего словарного запаса.
Кто сказал, что это займет 10 минут? Кто конкретно? Какова была фактическая основа для их требования?
Если вы делали это в 3 раза раньше, и каждый раз, когда вы были близки к 10 минутам, у вас есть рациональная основа для этого .
Если вы никогда не делали этого раньше, сказать « должен» - значит только настроить себя на неудачу. Вы должны прекратить использование следует сегодня.
источник
Найдите кого-нибудь, чтобы использовать его в качестве декорации
Даже если никто не знает, над чем именно вы работаете, неплохо было бы часто говорить об этих вещах. Одно лишь использование кого-то в качестве декорации может заставить ваш разум начать вращаться. Вы обнаружите, что думаете о новых вещах, чтобы попробовать. Это также поможет вам снять стресс и немного подружиться. В целом, команде также полезно чувствовать себя комфортно, делясь друг с другом и сочувствуя друг другу, создавая командную атмосферу для решения подобных проблем.
источник
Уйдите на время и сделайте что-нибудь еще. Хорошо выспитесь ночью и вернитесь к проблеме утром.
Кроме того, не бей себя. Ваша десятиминутная оценка явно не верна, и это происходит постоянно.
источник
У меня есть несколько шагов, когда я достигну этой точки. Обычно я могу найти решение, если найду время отойти назад и подумать.
Шаг 1: Уйдите от проблемы и очистите голову. Возвращайтесь, когда вы не расстроены, и можете взглянуть на это со свежим умом.
Шаг 2: Вернитесь к коду и посмотрите, что вы пропустили. Пусть кто-нибудь придет и будет вторым взглядом, если вы просто не можете сделать из этого головы или хвосты.
Шаг 3: Удалить код из уравнения. Какую проблему вы пытаетесь решить? Запишите это на листе бумаги или доске. Обсудите проблему с кем-то, чтобы узнать его мнение о проблеме и ее решении.
Шаг 4: Обратитесь к сообществу, чтобы узнать, есть ли у них решение или кто-нибудь еще сталкивался с той же стеной.
По сути, их можно обозначить как «Прекратить взлом и отойти от кода».
источник
Я хотел бы задать вопрос здесь, и сообщество поможет вам решить его. Менее стрессовые таким образом.
источник
У меня есть другое решение - спать !
Когда вы разочарованы проблемой, вы не можете легко выйти из нее. Так что лучше, если вы так устали, пытаясь решить проблему, а затем заснуть.
Когда вы просыпаетесь, у вас появляется свежее чувство, и вы снова можете ясно думать о проблеме. Я делаю это иногда.
источник
Найти что-то, что поможет восстановить уверенность, - это то, что я склонен делать, когда достигаю этой точки. Это может быть решение головоломки Судоку или Кенкен, выполнение какой-то простой бессмысленной административной задачи, например заполнение моего расписания или выход на прогулку. Главное здесь для меня - иметь чувство достижения в любом этом маленьком побочном отвлечении, чтобы помочь накачать меня достаточно, чтобы вернуться на лошадь и уехать в дикий синий вон там, чтобы смешать там несколько метафор.
Что касается того, чтобы избежать этой проблемы, я бы, вероятно, предложил иметь какую-то стратегию с временным боксом, чтобы, если вы поверите, что что-то займет 10 минут, а это внезапно спустя час с небольшим прогрессом, я остановлюсь и получу Небольшой перерыв, а не пытаться продолжать биться головой об стену.
источник
У меня есть специальное название для такой ситуации: эпическая битва программирования .
Если у меня не было хотя бы одной эпической битвы программирования с конкретным языком программирования или инструментом, и я решил проблему, я не могу сказать себе, что могу использовать такой язык программирования или инструмент.
Итак, у меня есть решение: придумать это как бой, испытание мужества и выносливости . Если я не могу решить проблему, то я « живу, чтобы сражаться в другой день ».
Это может показаться немного смешным, но будет более весело и приятно думать об этом в таких терминах (как будто это была какая-то игра, в которую вы должны победить), а не страдать полностью, потому что вы должны признать тот факт, что вы не знаю все .
источник
Ну ... Я думаю, тебе нужна новая карьера или совершенно новый набор ожиданий. Хотя это, конечно, не часто, 3, 4, 8, 10 или 40 часов для выполнения того, что вы изначально считали 10-минутной работой, безусловно, не редкость в бизнесе программного обеспечения. Я уверен, что у большинства разработчиков, которые работают над чем-либо даже средней сложности, задачи на 2 дня превращаются в задачи на 1 месяц, как только они вникают в это и понимают проблему.
Для того, чтобы быть хорошим разработчиком, нужно быть терпеливым, иначе компьютер победит, и вы в конечном итоге включите какой-нибудь способ быстрого исправления ошибок, который только сработает, но неизбежно сломает то, о чем вы не подумали. Если незначительные задержки вызывают у вас столько стресса, то вам, вероятно, не следует заниматься этой работой.
источник
Два предложения:
Самый умный человек, которого я знаю, у которого есть две докторские степени и звание научного сотрудника в небольшой частной компании, говорит это
Если вы думали об этом в течение 15 минут и у вас нет ответа, вы делаете это неправильно.
Хватит думать об этом.
Вздремнуть. (пойти на прогулку или что-то)
Ответ будет там, когда вы проснетесь.
Получите книгу Дэвида Агана "Отладка" . Это, вероятно, научит вас больше об отладке, поэтому, когда что-то не работает, вы можете быстро отладить его.
источник
Когда я сталкиваюсь с чем-то, что не работает, я всегда помню эту цитату:
источник
повторяя рекомендации других:
и добавление:
источник
Иногда лучше не пытаться решить проблему. Потратьте некоторое время и напишите в псевдокоде, что вам нужно сделать. Я знаю, что есть давление, чтобы сделать вещи как можно быстрее, но из того, что я видел, этот стиль кодирования приводит к типу ситуации, которую вы описываете. Если кто-то напишет код, который будет функционировать только при небольшом наборе условий и этот набор изменений, код сломается или сделает неожиданные вещи.
Также (я ненавижу признавать, что мои профессора были правы в этом ...), помогает документирование и модульное тестирование. Это облегчило бы понимание того, что раздел кода будет выдавать с учетом набора ввода. Тогда было бы легче увидеть, как повлияет изменение в вводе этих разделов.
источник
Усталость или недостаток сна никогда не были проблемой для меня. Я больше разочарован отсутствием организации в отрасли в целом и в целом низкими стандартами, которые мы установили для себя. Вот пять вещей, которые меня расстраивают:
API, которые сложны в дизайне. Это похоже на изучение совершенно нового языка программирования. На самом деле, некоторые API гораздо сложнее освоить, чем изучать новые языки программирования. Я восхищаюсь твоим умом, но ты мог бы сэкономить мне время, вставив документацию, которая мне нужна была в области разработки программного обеспечения или компьютерных наук, чтобы понять это.
Отсутствие хорошей документации. Я никогда не смогу обойти вниманием тот факт, что многие разработчики API тратят много времени на создание API только для его выпуска с минимальной документацией. Спасибо, но как мне это использовать? Что делать в этой ситуации? и т.п.
Собственные реализации. Некоторая частная реализация в порядке, но если стандарты существуют, ради человечества, пожалуйста, следуйте этим стандартам. Нет ничего более неприятного, чем тратить время на размышления о том, почему что-то не работает только для того, чтобы обнаружить, что реализация не соответствует нормальным стандартам.
Песочница среды / Ограничения. Хорошо, может быть, это помогает не допускать плохих людей, но, на мой взгляд, ограничения на то, что программист может делать, ограничивают творческий потенциал и технический прогресс. Многие из прекрасных идей, которые у меня были, были разрушены после того, как я обнаружил, что мне нельзя что-то делать. Индустрия программирования действительно создана для производства повседневных приложений, а не инновационного программного обеспечения. Так что, если вы решите стать программистом, вы действительно решите стать современником, если только вы не хотите стать одиноким академиком.
Современные дискуссии. Люди до сих пор спорят о безобразии скобок Lisp, о достоинствах чистоты Pythons, или о том, как исчезают некоторые языки, такие как Cobol или Fortran, и т. Д., И т. Д. Действительно люди? Это то, о чем мы спорим? Давайте поговорим о параллелизме, или о лучших способах проектирования более безопасных систем, или о том, как логическое программирование может улучшить нашу жизнь. Давайте перестанем думать как программисты и начнем думать как дизайнеры завтрашнего мира.
Поэтому я лично больше не программирую из-за этих разочарований. Пока индустрия не решит, что хочет сделать больше, чем просто создать следующий Facebook или заново изобрести текстовый процессор, я готов. Я оставлю это вам, ребята. Честно говоря, не обидно, это хорошие деньги.
источник