Tudo bem se eu não conseguir resolver um problema quando estiver sentado na frente de um computador? [fechadas]


12

Sou programador amador e iniciante. Na maioria das vezes, não consigo resolver o problema enquanto estou sentado na frente do computador. Por exemplo, eu estava tentando descobrir se um número é um poder de outro. Não consegui descobrir a solução até que peguei uma caneta e um papel e depois analisei o problema. Em aproximadamente 3 minutos, resolvi e escrevi o script em Python.

Às vezes, consigo resolver o problema enquanto estou sentado na frente de um computador, mas com alguma dificuldade. Tudo bem?


6
Para mim, isso não é um problema muito ruim e, de fato, muitas pessoas olham demais para o computador, eventualmente não percebendo que têm esse problema em menor grau. Muita programação profissional envolverá mudanças muito rotineiras, em vez das fórmulas lógicas complicadas geralmente fornecidas como tarefas de casa, e não é um problema tão grande se você puder pelo menos realizá-las.
Katana314

2
Eu acho que você pode apenas querer reformular sua pergunta para que faça mais sentido sobre programação.
Snoop

8
Isto é completamente subjetivo. Todo mundo aprende e trabalha de maneira diferente. Faça o que for melhor para você.

7
Na frente do computador, pode ser o pior lugar para tentar resolver um problema, porque você fica muito tentado a começar a digitar quando deveria estar pensando. Muitas vezes, sair da máquina é melhor porque o força a pensar que não age . Muitos dos meus problemas mais difíceis foram resolvidos caminhando para o escritório pela manhã.
Gort the Robot

2
Também há a questão de quão difícil é o problema. À medida que você ganha mais experiência, alguns problemas difíceis agora se tornam fáceis. Mas isso significa apenas que você consegue resolver os ainda mais difíceis. Para mim, eu resolvo muitos dos meus mais difíceis enquanto fazia caminhadas ou esqui cross-country.
jamesqf

Respostas:


34

Tendo a resolver meus problemas mais difíceis:

  • Na frente de um quadro branco (às vezes sem desenhar nada - apenas pensar em como visualizar um problema às vezes pode levar a uma solução)
  • Enquanto os explica aos colegas
  • Olhando pela janela
  • Enquanto caminhava
  • Debaixo do chuveiro
  • No banheiro

Afastar-se do monitor geralmente é muito útil para se concentrar no problema em si e não apenas para digitar uma implementação.

A solução do problema acontece na sua cabeça. Digitar o código do programa é exatamente como você explica sua solução para o computador.


1
Obrigado! Você está certo, quanto mais eu me afasto de um computador, mais posso me concentrar no problema.
Mahmood Muhammad Nageeb

2
Lembro-me de ler um livro (infelizmente não lembro qual) que sugeria manter um pato de borracha em sua mesa e, quando estiver perplexo, descreva o problema em voz alta para o pato de borracha.
Gort the Robot

7
@StevenBurnap Isso é chamado de depuração de pato de borracha e você provavelmente leu sobre isso no The Pragmatic Programmer, de Addison Wesley.
Philipp

2
"Digitar o código do programa é exatamente como você explica sua solução para o computador." - Alan Perlis disse: "Os programas devem ser escritos para os humanos lerem e, incidentalmente, para as máquinas executarem". Prefiro olhar desta maneira: digitar o código é exatamente como você explica sua solução aos seus colegas . O fato de que, uma vez que você descreve a solução de maneira inequívoca, de maneira que qualquer ser humano (incluindo você mesmo, daqui a seis meses) possa entendê-la, ela também se torna executável por uma máquina, é apenas um efeito colateral de sua descrição rigorosa. o suficiente para que não haja ambiguidades. ...
Jörg W Mittag

4
Re: borracha esquivando. Há também uma história semelhante com um ursinho de pelúcia. Os tutores do MIT costumavam sentar ursinhos de pelúcia do lado de fora de seus escritórios. Você só foi autorizado a bater depois de ter explicado o seu problema ao urso. Metade dos alunos nunca bateu na porta, tendo descoberto o problema enquanto o explicava ao urso. Formular uma pergunta bem escrita, bem pesquisada, bem formatada, detalhada e de alta qualidade no StackExchange pode ter o mesmo efeito , que é (uma das razões) a razão pela qual somos tão anais em fazer exatamente isso!
Jörg W Mittag 12/03

7

Eu acho que essa é uma boa pergunta. Pelo modo como interpreto isso, o que acho que você está perguntando é: "Tudo bem que eu periodicamente precise me afastar do computador"?

Acho que não passa um dia em que não preciso me levantar e perguntar a outra pessoa o que eles pensam, ou puxar um pedaço de papel de rascunho e rabiscar uma equação para resolver o problema. Além disso, quando você se dedica mais à programação, talvez nem comece a escrever o código até criar um diagrama / arquitetura antes.

Eu estava fazendo um curso de estruturas de dados quando estava na faculdade e estava tendo problemas para projetar um algoritmo de classificação. Quando pedi ajuda ao meu professor, ele sabia que eu não havia pensado no problema antes. A primeira coisa que ele me disse foi que eu ainda não estava pronta para começar a escrever o código. Então ele pegou um pedaço de papel e desenhou alguns quadrados, e depois colocou os números da matriz. Em seguida, ele desenhou mais algumas fotos onde ele movia os quadrados e me mostrou visualmente como o algoritmo de classificação funcionaria.

Algumas coisas que você pode fazer para clarear sua mente e resolver o problema:

  • Dar um tempo
  • Converse com um colega
  • Quadro branco o problema / conceito
  • Durma nele!

Não se surpreenda se você acordar no meio da noite com a solução.


1

Eu acho que certamente ajudará a se tornar um programador / desenvolvedor profissional eficiente, se puder. No entanto, pensando em um problema ao traduzir a solução em lógica de programa, o IMHO precisa de treinamento, por isso não vejo problema se você serializar essas tarefas - você só precisará concluir as duas com êxito. Pensar em uma solução do começo ao fim antes de começar a codificar certamente tem seus méritos, mas você precisa ser um personagem um tanto paciente.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.