Lidando com a frustração quando as coisas não funcionam [fechadas]

60

Você já tentou implementar algo simples, mas por alguma estranha razão isso não funciona.

Então você tenta uma solução possível, mas outra coisa não funciona. Você continua tentando diferentes soluções, mas toda vez que algo diferente não está funcionando.

Toda vez que você dá um passo mais perto, você também tem um (ou mais) passo além de resolver este problema e agora são 3 horas, quando isso deveria levar 10 minutos. E ainda não está resolvido.

Não há ninguém na sua empresa que possa ajudar, e você está prestes a passar a mão pela tela.

Neste momento você está tão frustrado que não consegue mais pensar no problema com clareza. O que você deve fazer neste momento? Ou o que você pode fazer para evitar chegar a esse ponto?

    
por JD Isaacks 17.01.2016 / 21:10
fonte

15 respostas

68

Embora este seja um problema real, não é específico para programação. No entanto, é IMHO tão importante que merece um lugar neste fórum.

Minhas sugestões: faça uma pausa . Dê um passeio, medite, durma, faça atividade física * - faça algo completamente diferente para permitir que seu cérebro relaxe e saia da rotina mental , enquanto deixa seu subconsciente trabalhar o problema em paz. Geralmente, ele oferece resultados surpreendentemente rápidos - só precisa informá-lo sobre isso. Mas enquanto a sua mente consciente está repetindo desesperadamente os mesmos ciclos de pensamentos repetidamente, ela não será capaz de ouvir qualquer outra coisa.

what can you do to avoid reaching this point?

As técnicas de relaxamento e mindfulness são a chave para superar as reações de estresse e permitir que sua mente se concentre claramente. E praticar isso realmente vale a pena. Quando alguém tem experiência nelas, ele já pode notar o nível de estresse aumentando antes que a frustração possa assumir . Então, pode-se interromper o ciclo de pensamentos, e. tomando algumas respirações profundas ou fazendo alguns minutos de prática de relaxamento. Isso pode ser tudo o que é necessário nesse ponto.

* beije seu parceiro, acaricie seu animal de estimação - sugestões de minha esposa: -)

    
por 03.02.2011 / 18:23
fonte
35

its now been 3 hours when this should have taken you 10 minutes.

A palavra mágica é deve . Ataque isso do seu vocabulário.

Quem disse que deveria levar 10 minutos? Quem especificamente? Qual foi a base factual para sua afirmação?

Se você já fez três vezes antes, e cada vez que esteve perto de dez minutos, você tem uma base racional para um deve .

Se você nunca fez isso antes, dizer que deve apenas se preparar para o fracasso. Você deve parar de usar deve hoje.

    
por 02.02.2011 / 22:32
fonte
21

Encontre alguém para usar como caixa de ressonância

Mesmo que ninguém saiba exatamente o que você está trabalhando, é uma boa ideia falar sobre essas coisas com frequência. Apenas o ato de usar alguém como uma caixa de ressonância pode fazer sua mente começar a girar. Você se verá pensando em coisas novas para experimentar. Ele também irá aliviar o estresse para desabafar um pouco e potencialmente fazer um novo amigo. Também é saudável, em geral, que a equipe se sinta confortável em compartilhar e lamentar uns com os outros para gerar uma atmosfera de equipe para resolver esses tipos de problemas.

    
por 02.02.2011 / 21:40
fonte
9

Eu tenho alguns passos quando chego a esse ponto. Normalmente eu posso descobrir uma solução se eu tomar o tempo para voltar atrás e refletir.

Passo 1: Afaste-se do problema e limpe sua cabeça. Volte quando você não estiver frustrado e puder vê-lo com uma mente renovada.

Passo 2: Volte para o código e veja se você perdeu alguma coisa. Peça a alguém que venha e seja um segundo par de olhos, se você simplesmente não puder fazer cara ou coroa disso.

Etapa 3: remova o código da equação. Qual é o problema que você está tentando resolver? Escreva em um pedaço de papel ou quadro branco. Fale sobre o problema com alguém para obter suas opiniões sobre o problema e a solução.

Etapa 4: entre em contato com a comunidade para ver se eles têm uma solução ou se alguém já bateu na mesma parede.

Basicamente, eles podem ser resumidos como "Pare de hackear e se afastar do código".

    
por 02.02.2011 / 21:44
fonte
8

Afaste-se por um tempo e faça outra coisa. Tenha uma boa noite de sono e volte ao problema pela manhã.

Além disso, não se agrade. Sua estimativa de dez minutos claramente não está correta, e isso acontece o tempo todo.

    
por 02.02.2011 / 21:38
fonte
2

Gostaria de fazer uma pergunta aqui e fazer com que a comunidade o ajude a resolvê-lo. Menos estressante assim.

    
por 02.02.2011 / 21:35
fonte
1

Eu tenho um tipo diferente de solução - SLEEPING !!

Quando você está frustrado com um problema, você não pode sair facilmente dele. Então é melhor se você ficar tão cansado tentando resolver o problema e depois adormecer.

Quando você acordar, terá uma sensação de frescor e, novamente, poderá pensar claramente sobre o problema. Eu faço isso às vezes.

    
por 02.02.2011 / 23:01
fonte
1

Encontrar algo para ajudar a restabelecer alguma confiança é o que costumo fazer quando chego a esse ponto. Isso poderia ser um quebra-cabeça de Sudoku ou Kenken, fazendo uma tarefa administrativa simples como preencher minha folha de ponto ou sair para uma caminhada. A chave aqui é que eu tenha um senso de realização em qualquer que seja esse pequeno lado da distração para ajudar a me bombear o suficiente para voltar ao cavalo e cavalgar até lá, para misturar algumas metáforas lá.

Quanto a evitar ficar tão mal, eu provavelmente sugeriria ter alguma estratégia de time-boxing para que se você acreditasse que algo levaria 10 minutos e de repente, uma hora depois, sem muito progresso, eu pare e faça uma pequena pausa em vez de tentar bater a cabeça contra a parede.

    
por 03.02.2011 / 00:38
fonte
1

Eu tenho um nome especial para esse tipo de situação: batalha de programação épica .

Se eu não tiver tido pelo menos uma batalha de programação épica com uma linguagem ou ferramenta de programação específica e resolvido o problema, não posso dizer a mim mesmo que posso usar essa linguagem de programação ou ferramenta.

Portanto, há a minha solução: mentalize como uma luta e um teste de coragem e resistência . Se eu não conseguir resolver o problema, eu "vivo para lutar outro dia".

Pode soar um pouco ridículo, mas, será mais divertido e gratificante pensar nisso nesses termos (como se fosse algum tipo de jogo que você deve vencer) ao invés de sofrer por todo o caminho, porque você tem que enfrentar o fato que você não sabe tudo .

    
por 03.02.2011 / 07:02
fonte
0

Bem ... eu acho que você precisa de uma nova carreira ou de um novo conjunto de expectativas. Embora certamente não seja frequente, levar 3, 4, 8, 10 ou 40 horas para fazer o que você originalmente pensava ser um trabalho de 10 minutos certamente não é incomum no negócio de software. Eu tenho certeza que a maioria dos desenvolvedores que trabalham em qualquer coisa de complexidade moderada tiveram tarefas de 2 dias se transformando em tarefas de 1 mês, uma vez que elas se aprofundaram e entenderam o problema.

Parte de ser um bom desenvolvedor envolve ser paciente, senão o computador vai ganhar e você acabará incorporando algum tipo de truque de correção rápida que mal parece funcionar, mas inevitavelmente quebrará algo que você não imaginou. Se atrasos menores lhe causarem muito estresse, você provavelmente não deveria estar nessa linha de trabalho.

    
por 03.02.2011 / 01:43
fonte
0

Duas sugestões:

  1. A pessoa mais inteligente que conheço, que tem dois PhDs e tem o título de "Pesquisador", em uma pequena empresa privada, diz isso

    Se você pensar nisso por 15 minutos e não tiver a resposta, está fazendo errado.

    Pare de pensar sobre isso.

    Tenha um cochilo. (vá passear ou algo assim)

    A resposta estará lá quando você acordar.

  2. Obtenha o livro de David J Agan "Depuração" . Ele provavelmente ensinará mais sobre a depuração para que, quando as coisas não funcionarem, você possa depurá-lo rapidamente.

por 03.02.2011 / 02:27
fonte
0

Sempre que me deparo com algo que não está funcionando, sempre me lembro dessa frase:

When you are in hell, keep walking as its is the best thing that can be done at that point.

Have a break, try to refresh your self and focus on problem with new level of energy.

    
por 03.02.2011 / 05:59
fonte
0

ecoando as recomendações dos outros:

  • esta situação é quase sempre algo trivial que você simplesmente não vê ; faça uma pausa
  • outro par de olhos ou mesmo apenas explicando o problema para o seu gato pode ajudar

e adicionando:

  • reexaminem suas suposições, especialmente as não declaradas; as chances são de você estar latindo na árvore errada
  • inverta a situação: assuma que o comportamento atual é o resultado desejado, então o que você teria que fazer com o código para que isso acontecesse?
  • escreva algum código de teste (confirmações ou registros, ou pontos de interrupção condicionais - mantenha isso simples) para verificar suas suposições ao longo do caminho de execução
por 03.02.2011 / 06:50
fonte
0

Às vezes, é melhor não apenas tentar encontrar um caminho através de um problema. Reserve algum tempo e escreva em pseudocódigo o que você precisa fazer. Eu sei que há pressão para fazer as coisas o mais rápido possível, mas pelo que vi, esse estilo de codificação leva ao tipo de situação que você descreve. Se alguém escreve um código que funcionará apenas com um pequeno conjunto de condições e que define mudanças, o código irá quebrar ou fazer coisas inesperadas.

Também (eu odeio admitir que meus professores estavam certos nisso ...), documentar e testar a unidade ajuda. Isso tornaria mais fácil saber o que uma seção de código emitirá dado o conjunto de entrada. Então, seria mais fácil ver qual efeito uma alteração na entrada das seções causará.

    
por 03.02.2011 / 14:41
fonte
0

Fadiga ou falta de sono nunca é um problema para mim. Estou mais frustrado com a falta de organização dentro do setor como um todo e, em geral, com os baixos padrões que estabelecemos para nós mesmos. Aqui estão cinco coisas que me frustram:

  1. APIs complicadas no design. É como aprender uma nova linguagem de programação. Na verdade, algumas APIs são muito mais difíceis de aprender do que aprender novas linguagens de programação. Eu admiro sua inteligência, mas você poderia ter me poupado tempo colocando na documentação que eu precisava de um phd em engenharia de software ou ciência da computação para entender isso.

  2. Falta de boa documentação. Eu nunca consigo superar o fato de que muitos designers de API gastam muito tempo fazendo uma API apenas para liberá-la com o mínimo de documentação. Obrigado, mas como eu uso isso? O que fazer nessa situação? etc.

  3. Implementações proprietárias. Algumas implementações proprietárias são aceitáveis, mas se existirem padrões, para o bem da humanidade, por favor sigam esses padrões. Nada mais frustrante do que gastar tempo imaginando por que algo não funciona apenas para descobrir que a implementação não segue os padrões normais.

  4. Ambientes em sandbox / Restrições. Ok, talvez isso ajude a afastar as pessoas más, mas na minha opinião, restrições sobre o que um programador pode fazer apenas limitam a criatividade e o progresso tecnológico. Muitas das grandes ideias que tive foram destruídas depois de descobrir que não posso fazer algo. A indústria de programação é realmente feita para produzir aplicações cotidianas, e não um software inovador. Então, se você decidir ser um programador, estará realmente escolhendo ser um grunhido moderno, a menos que queira se tornar um acadêmico solitário.

  5. Discussões modernas. As pessoas hoje ainda debatem sobre a fealdade dos parênteses de Lisp, ou o mérito da limpeza dos Pythons, ou como algumas línguas como Cobol ou Fortran estão sendo extintas, etc, etc. Realmente pessoas? É sobre isso que debatemos? Vamos falar sobre o paralelismo, ou formas melhores de projetar sistemas mais seguros, ou como a programação lógica pode melhorar nossas vidas. Vamos parar de pensar como codificadores e começar a pensar como designers do mundo de amanhã.

Então, eu pessoalmente não programo muito mais devido a essas frustrações. Até que a indústria decida que quer fazer mais do que apenas criar o próximo Facebook, ou reinventar o processador de texto, estou pronto. Eu vou deixar para vocês. Honestamente, sem ofensa significava, é um bom dinheiro.

    
por 16.07.2013 / 23:27
fonte