Como você combate a fadiga de programação? [fechadas]

48

Não é o cansaço como em 'Eu preciso dormir', mas o cansaço como em 'Eu simplesmente não posso mais me incomodar', que geralmente ocorre quando você atinge obstáculos em qualquer projeto em que esteja trabalhando, geralmente quanto mais perto dos prazos.

Pode ser em projetos de trabalho ou projetos pessoais, mas é algo que eu continuo batendo cada vez mais ultimamente. Vou ter uma idéia, trabalhar nisso, ter alguns dias muito bons e progredir, então apenas algumas coisas niggly me farão tropeçar, eu não posso fazer as coisas funcionarem da maneira que você quiser, eu tenho limitações na estrutura, tenho problemas para os quais não encontro documentação, etc., e isso fica muito frustrante.

Ou estou sozinho nisso?

sevenseacat
fonte
4
Seu progresso é mensurável em seus projetos, mesmo quando você atinge obstáculos? Caso contrário, considere torná-lo mensurável. A visibilidade do progresso constante é a melhor coisa que conheço.
7
Isso me lembra Mort (Terry Pratchett) - a parte em que Mort está limpando o esterco nos estábulos. "Vamos ver, ele pensou, eu já fiz quase um quarto, vamos chamá-lo de terceiro, então, quando eu tiver chegado àquela esquina pela pista, será mais da metade, chame de cinco oitavos, o que significa mais três o carrinho de mão carrega ... Não prova nada, exceto que o incrível esplendor do universo é muito mais fácil de lidar se você pensar nele como uma série de pequenos pedaços ".
Steve314
@ Steve314: +1 Pratchett arrasa.
Orbling
Experimente o efeito Catfish .
rwong
@rwong: A maioria dos meus projetos são projetos solo (ou equipes muito pequenas). Parece uma ideia interessante, no entanto.
sevenseacat

Respostas:

42

Procrastinação

O que você descreve é ​​provavelmente procrastinação . É um fenômeno muito comum. Clique no link e leia sobre a Teoria da Motivação Temporal .

Para vencer a procrastinação, faço listas. Quando sinto que estou procrastinando, abro a lista e forço-me a trabalhar no primeiro item. Depois de alguns minutos, entro na zona ou no fluxo, conforme descrito pelo psicólogo Mihály Csíkszentmihályi .

Você deve reconhecê-lo nesta imagem:

texto alternativo

8bittree
fonte
2
+1 por se forçar. Eu descobri o mesmo para mim; apenas começar é a parte mais difícil.
Michael K
2
Você não encontra com o passar dos anos que todos os projetos descem no eixo vertical. Também tende a haver movimento na horizontal.
Orbling 16/01/19
Hoje procrastinei o dia inteiro em vez de codificar meu projeto de código aberto. Droga.
gruszczy
11
+1 por pregar esse problema.
Conor
2
Acho que se a lista tem apenas tarefas desagradáveis no topo, então ele pode ser quase impossível para forçar-se a fazê-lo ...
Roman Starkov
10

O que funciona para mim é me afastar do problema que está colocando a barreira. Isso pode significar que outros sugeriram trabalhar em outra parte da base de código. Pode significar dar uma corrida. Descobri que bater a cabeça contra uma barreira apenas a fortalece. Mudar o foco para algo não relacionado permitirá que o seu subconsciente resolva o problema. Fui surpreendido muitas vezes por encontrar a solução enquanto tomava banho, etc.

Jeff
fonte
4
Definitivamente, os chuveiros são bons lugares para corrigir bugs.
Orbling
Esse é um ponto realmente bom sobre apenas fortalecer a barreira. Eu acho que é isso que preciso fazer, dividir projetos em partes díspares; assim, quando meu cérebro tiver o suficiente de um, mudar para outro, usar partes diferentes do cérebro.
sevenseacat
8

Um programador precisa ter uma unidade maior que a do Lanterna Verde . É essa pequena coceira que temos quando algo não está funcionando, tentamos nos aprofundar e descobrir o porquê, seja fazendo perguntas ou lendo um livro.

O que você pode fazer para impedir esse cansaço é se afastar um pouco do problema e trabalhar em outro aspecto da tarefa que você recebeu.

Para mim, as tarefas de programação que me fazem relaxar como uma criança estão trabalhando na GUI. É fácil demais e me permite desligar o cérebro. Também dá ao meu cérebro o efeito placebo de que estou realizando alguma coisa.


fonte
Então, basicamente, fique imerso no projeto, mas em trabalho ocupado? E sim, essa é a pior sensação - quando você coloca todo esse tempo em algo e ainda sente que não conseguiu nada.
sevenseacat
3
@ Karpie Você ainda está realizando alguma coisa. Fazer parte do 'trabalho ocupado' permite que você continue trabalhando em algo que precisa ser feito, mas não é algo que exija que seu cérebro esteja disparando em todos os cilindros.
Não sei - o trabalho da GUI sempre parece estar rodando em plae para mim. Fazer com que funcione corretamente e seja utilizável é divertido e desafiador, mas fazer com que pareça agradável é muito difícil para mim.
Michael K
Quando me afasto por um tempo como este, cerca de 50% das vezes nunca mais volto ...: /
Roman Starkov 16/02
6

Eu tenho uma tendência a cair nessa área, quase o tempo todo.

Iniciar um projeto é fácil, tudo é novo, coisas para pesquisar e descobrir, protótipos para construir, tudo divertido. Mas, à medida que o desafio desaparece, meu interesse diminui. Obtendo as versões de produção do software, resolvendo pequenos bugs ridículos que existem devido a problemas obscuros em alguma plataforma que você precisa usar.

É o suficiente para aborrecer você até a morte.

Nunca achei nada muito útil com isso, apenas trabalho ou brinco com algo completamente diferente (o stackoverflow é bom para isso), até ficar entediado com as outras coisas e começar a me sentir culpado. Depois, faça um pouco do trabalho chato. A produtividade reduz para cerca de 20%, mas esse é o ônus da codificação monótona.

Existe uma solução, a programação da equipe, muito difícil de manter quando outros estão diretamente envolvidos.

Orbling
fonte
11
+1, a criação de equipes funciona muito bem. Infelizmente, é muito difícil atrair outras pessoas interessadas em seus próprios projetos pessoais.
precisa saber é o seguinte
@dan_waterworth: É verdade, embora tenha sido um número muito grande de anos desde que eu programei por minha conta. Semanas de 60 a 80 horas, com poucas e preciosas férias por anos, remove o desejo.
Orbling
2
+1 de honestidade: "... até que eu ficar entediado com as outras coisas e começar a se sentir culpado ... Produtividade reduz para cerca de 20% ..."
Kavka
Você pode dar mais detalhes sobre a programação da equipe?
Esqarrouth
6

Programação em pares

Acho que a programação em pares realmente ajuda nesses casos. Encontre alguém com quem se relacione bem e ataque os problemas; não há nada melhor do que outra opinião ou uma caixa de ressonância para superar os obstáculos. Quando você começa a progredir novamente, o entusiasmo tende a voltar por si só.

Infelizmente, isso é desaprovado em nossa empresa, então só costumo fazer isso quando realmente sinto os problemas que afetam minha produtividade.

Andy Lowry
fonte
+1, pois essa foi a única coisa que sugeri na minha resposta, embora chame de programação em equipe, pois mais de duas é boa. ;-)
Orbling 16/01
3

Aprenda um novo idioma. Não há nada como aprender um novo idioma para despertar o seu interesse. Eu sugiro Haskell.

dan_waterworth
fonte
11
+1 Para o novo idioma, +1 para Haskell. A matemática dos votos parece fazer 1 + 1 = 1no entanto.
Orbling
11
@Orbling, é porque1 | 1 = 1
dan_waterworth
Eu acho 1 & 1 = 1que estaria mais perto da minha intenção. ;-)
Orbling 16/01
11
@ Orbling, que tal P(vote) = S((1 + 1)/t), onde S(x)está a função sigmoide? (Você pode escolher a temperatura do sistema).
precisa saber é o seguinte
Foi isso que tentei no meu projeto mais recente, tentei aprender Ruby e Rails! Essa foi a parte sobre a documentação não estar todos lá, heh ...
sevenseacat
2

Começo a atingir outras áreas por uma hora ou até. Eu uso o Eclipse no trabalho, e o Eclipse permite que você insira um // TODO:código e depois agrupe todos eles em uma janela para você. Se eu vir algo que quero alterar ou consertar enquanto estou trabalhando em outra coisa, coloco um TODO para não quebrar meu impulso. Quando eu ficar preso por muito tempo (mais de uma hora ou duas), começarei a trabalhar na lista. Ele fornece uma mudança de cenário e na maioria das vezes as mudanças são bem simples, o que me ajuda a relaxar. Muitas vezes, a resposta sai, enquanto ainda me deixa sentir que estou realizando alguma coisa.

Nota: Adoro refatorar e tornar um pedaço de código cada vez melhor. Sua milhagem pode variar.

Michael K
fonte
11
+1 Isso é algo que eu sempre faço, particularmente útil para garantir o fluxo suave de código. Obviamente, se seguir as doutrinas usuais de codificação, um pseudo-código completo é uma boa idéia, devendo ser trabalhado lentamente no código real.
Orbling