Quando travado, com que rapidez deve-se recorrer ao Stack Overflow? [fechadas]

51

Sou autodidata no desenvolvimento do iOS por meio do curso iTunes U CS193p, e geralmente me vejo preso. Eu tenho tentado me soltar, mas pode levar horas e horas para descobrir o que estou fazendo de errado, seja por falta de um método ou por não ter realmente um conceito como delegação.

Estou preocupado que possa estar perdendo muito tempo, e seria melhor ir para o Stack Overflow logo depois de ficar preso para poder seguir em frente.

Na sua experiência, perguntar rapidamente sobre o Stack Overflow dificulta o processo de aprendizado ou o aprimora?

MaxGabriel
fonte
45
Vale a pena notar que procurar uma resposta no SO é uma das primeiras coisas que você deve tentar. Mesmo se não houver uma resposta que corresponda exatamente à sua pergunta, é provável que exista algo que lhe dê algumas dicas. Mas fazer sua própria pergunta é algo que você não deve fazer, até que você se esforce muito para responder à pergunta por si mesmo e faça um esforço real para formular sua pergunta de uma maneira que indique claramente o que você tem e o que não tem. Já tentou.
Dawood diz que restabelece Monica
11
@DavidWallace Não poderia concordar mais. Muitas pessoas só pedir, sem pensar (perguntas baixa qualidade), algumas pessoas pensam e pedir (melhores perguntas, mas eu gostaria que mais pessoas realmente procurar antes de pedir (menos (perto) duplicatas).
Marjan Venema
3
Como em fazer qualquer pergunta, se você primeiro pesquisou uma possível resposta, aprenderá mais quando vir a resposta real: verá onde se esqueceu de pesquisar e da próxima vez também poderá pesquisar nela. Você não apenas aprende a resposta, mas também procura por respostas. Quando você ainda não pensou em uma resposta, basta obter a resposta e seguir em frente, mas aprende menos em geral. Você não melhora a si mesmo.
Konerak
3
A abordagem pragmática: o SO é mais adequado para perguntas simples, então eu diria que pergunte quase imediatamente (você precisa formular a pergunta). Depois de digitar o título, você verá a lista de perguntas mais próximas - verifique se a pergunta não está na lista, mas não há necessidade de realizar nenhuma pesquisa extra de SO.
Grzenio 6/02/12
6
Eu acho que isso provavelmente deveria ter sido perguntado no Meta da SO.
Hugomg

Respostas:

35

Quando estou trabalhando com novos desenvolvedores, incentivo-os a fazer perguntas após cinco ou dez minutos em que não estão progredindo.

Isso tem dois benefícios: o primeiro é que eles podem obter ajuda sem gastar muito tempo olhando para um problema, mas apenas perguntam quando não estão chegando a algum lugar. Se eles estão aprendendo - mesmo em algo que não é a resposta final -, é muito mais provável que eles mantenham essas informações de maneira útil.

A segunda é que, depois de tanto tempo, eles precisam explicar o problema para outra pessoa. Isso resolve uma enorme proporção de problemas, porque passar por ele de ponta a ponta em ordem significa que você pode identificar o que perdeu no trabalho anterior.

Como parece que você está fazendo isso sozinho, tente recorrer a um bicho de pelúcia, ao relógio ou à parede e perguntando sobre o problema. Explique como você faria para uma pessoa e veja se isso corrige as coisas.

Se não, e você não estiver progredindo, pergunte a alguém. Passar mais de cinco ou dez minutos emperrado é um desperdício de tempo - a menos que você faça outra coisa e volte ao problema com uma mente renovada.

Daniel Pittman
fonte
17
Não há nada como conversar com seu cachorro para se soltar. :-)
Marjan Venema
2
E quando você perceber o que está fazendo de errado, seu cão será como " UAU! Eu nunca teria pensado nisso!" Bate alguns upvotes para um impulso do ego. ;-)
um CVn
4
+1 Isso é chamado de "depuração de pato" ao conversar com seu patinho de brinquedo. Eu tenho uma boneca de vodu. Eu chamo isso de depuração de vodu.
Sardathrion
4
Ótima resposta +1. Estive "preso" várias vezes ao longo dos anos e descobri que a resposta fica clara para mim quando explico para outra pessoa. Também acho que ir embora / fazer alguma coisa para ter uma cabeça clara geralmente funciona. Eu não recorreria ao Stack Overflow muito rapidamente, se você descobrir a solução você NUNCA esquecerá! Hoje em dia, muitos programadores com morte cerebral confiam demais na Web.
AnthonyBlake
2
e muitas das minhas perguntas se responderam enquanto eu escrevia a pergunta no SO. O próprio ato de detalhes de enquadramento da sua pergunta revela algumas respostas
aldrin
22

Minha única adição às ótimas respostas de todos os outros:

Digitar sua pergunta na interface de perguntas do StackOverflow é uma ótima maneira de garantir que você esteja pensando nisso completamente. Não posso começar a dizer quantas perguntas eu respondi por mim mesmo no processo de apresentá-las com clareza suficiente para fazer corretamente. As perguntas que eu comecei e não submeti VASTLY superam as que eu realmente fiz.

Então, eu diria que vá em frente e pergunte (depois de pesquisar, é claro), apenas não se apegue a realmente clicar em "Enviar".

Dan Ray
fonte
+1 - Não pode ser exagerado. Essa é outra razão pela qual a formulação cuidadosa de perguntas é tão importante. (E o algoritmo de sugestão de resposta automática na barra lateral exibirá outras perguntas relevantes com ainda mais precisão).
kmote
@kmote - AMOR essa coisa. Isso resolveu muitos problemas para mim.
21412 Ray
11
história da minha vida .. resolveu muitos problemas antes de clicar em enviar.
Ayush Goyal
20

O Stack Overflow e todos os outros sites do Stack Exchange têm um conjunto de diretrizes para fazer perguntas :

  • Faça sua lição de casa
  • Seja específico
  • Torne relevante para os outros
  • Seja no tópico
  • Mantenha a mente aberta

"Faça sua lição de casa" implica que você não deve pedir muito rápido. "Seja específico" implica que você entende o domínio do seu problema suficientemente bem para descrevê-lo de forma concisa. Caso contrário, "faça sua lição de casa" se aplica. "Manter a mente aberta" implica que você deve estar pronto para explorar soluções que nunca pensou que seriam relevantes para o seu problema.

Portanto, não se trata de perguntar no Stack Overflow, mas se suas perguntas são boas. Essencialmente, o esforço necessário é uma experiência de aprendizado em si. Se você fizer certo, provavelmente aprenderá algumas coisas novas apenas pesquisando duplicatas. Se não, mande-me um ping, tenho alguns votos de sobra. : P

yannis
fonte
11
Eu só comecei a usar essa família de sites (StackOverflow etc.) nos últimos meses e devo dizer que estou extremamente impressionado com uma coisa: ortografia e escrita coerente. Embora apenas uma pequena porcentagem de membros registrados tenha o inglês como idioma nativo, praticamente todos são extremamente cuidadosos com a forma como escrevem. Acho que não há outro lugar na Internet em que uma enorme base de usuários mantenha essa qualidade. É estranho, mas impressionante. PS: Eu queria dizer isso por algum tempo, só precisava de um lugar para torná-lo de alguma forma ontópico :).
Radu Murzea
11
@SoboLAN É a filosofia do wiki. Editamos as postagens uns dos outros constantemente, mesmo com pequenos erros de ortografia. Como um falante não nativo de inglês, quando entrei para o Stack Exchange, tive o hábito de observar que tipo de edição as pessoas faziam, aprendendo com os erros dos outros. Mais um subproduto positivo da experiência do Stack Exchange, eu acho. Quem sabe, em algum momento eu até possa ficar confiante o suficiente com o meu inglês para tentar uma resposta no English Language & Usage Stack Exchange . : P
yannis
3

Pessoalmente, quando comecei a programar, gastei muito tempo tentando entender as coisas. Eu poderia passar horas tentando consertar alguma coisa. Não vejo essas horas como não sendo produtivas, naquelas horas aprendi a procurar coisas on-line e realmente obtive informações sobre como minha linguagem de programação funcionava. Então, acho que perguntar rápido demais no SO rouba uma experiência de aprendizado. Entrar na programação leva muito tempo.

Depois, há uma questão de quanto tempo perguntar, eu diria que passar algumas horas em um problema específico não é longo (observe que eu sou de formação acadêmica, talvez em contextos comerciais isso seja menos aceito).

E quando você fizer uma pergunta sobre SO, invista tempo na pergunta:

  • Quando você tiver um erro, publique o texto exato do erro. Publique também o código que levou ao erro, de preferência um exemplo independente que é executado em qualquer computador.
  • Mostre o que você já tentou.
  • Mencione versões do software que você usa: versões do compilador, versão do python.

Estes são apenas alguns pontos. Ao investir tempo em uma pergunta, você respeita as pessoas no SO, usa o tempo delas de graça. Mais importante, você estrutura seu problema. Isso já pode resolver o seu problema :).

Apenas meus 2 ct ...

Paul Hiemstra
fonte
1

Acredito que o importante aqui é realmente entender o que você está preso e tentar chegar ao problema principal. Depois de realmente descobrir qual é o problema real, usar o Stack Overflow é uma das primeiras coisas que faço.

Mas, não está fazendo uma pergunta.

Está pesquisando todas as ótimas respostas. As chances são de que o problema que você está enfrentando no momento tenha sido causado por outra pessoa e ela já fez sua pergunta. Se você se sentir compelido a usar o Stack Overflow, lembre-se de que não é apenas um site para você fazer uma pergunta quando estiver perplexo. É também um repositório de informações realmente ótimas sobre programação de computadores; use a função de pesquisa.

Se você pesquisou com alguns termos / palavras-chave diferentes e ainda não conseguiu nada, e você já fez sua lição de casa e possui exemplos de código, pode mostrar e tem certeza de que sua pergunta não é realmente uma duplicata , então pergunte por todos os meios sua pergunta no Stack Overflow. É para isso que o site existe pela última vez que verifiquei.

Charles Sprayberry
fonte
1

É inteiramente subjetivo, mas aqui estão minhas regras básicas para o meu uso.

1) Minha casa está pegando fogo? Obviamente, não literalmente, mas esse é um problema que precisa não apenas de uma solução imediata, mas de uma solução de emergência. Nesse caso, faça uma rachadura, falhe rapidamente, obtenha a melhor ajuda possível.

2) Isso é algo que eu posso pesquisar? Se é algo que eu tenho tempo e é pesquisável, seguirei esse caminho, e isso inclui o SO como recurso complementar. O SO é ótimo, o Wiki também, assim como as outras dezenas de recursos.
Leia muito, isso ajuda você a entender quando há abordagens diferentes para um problema, mas primeiro gaste o tempo tentando verificar se o seu conhecimento existente pode ser reaplicado ao problema e, em seguida, você criou uma nova ferramenta mental.

3) Isso é algo que fica fora do meu conjunto de habilidades / é tão obscuro que provavelmente 100 pessoas já o viram? Isso acontece, e acontece frequentemente. Geralmente tentarei pesquisar por uma hora ou duas e depois vou para cá ou outros recursos.

Eu sei que é mais nobre sentar e fazer a pesquisa e passar o tempo, mas muitas vezes temos restrições de tempo e você usa todos os recursos disponíveis, mesmo que pareça "enganar" o sistema.

Nicholas Smith
fonte
0

"Quão rapidamente" será, por natureza, subjetivo. Todo mundo vai ter uma opinião um pouco diferente.

Se você não conseguir descobrir a causa do seu problema em cerca de 5 minutos olhando o código real, eu pelo menos pesquisaria no Google. Se uma boa pesquisa não tiver as respostas, eu começaria a escrever sua pergunta no SO.

Lembre-se de que não há problema em postar essa pergunta; houve momentos em que, ao colocar a pergunta em palavras escritas, a solução se apresentou e eu não precisei colocar isso para vocês.

KeithS
fonte
0

Você pode escrever sua pergunta com antecedência, mas não deve publicá-la até ter pesquisado adequadamente a origem do seu problema. Escreva as coisas que você eliminou e como as eliminou. Você também deve procurar outras perguntas semelhantes e, se realmente quiser postar sua pergunta, explique por que essa não é a mesma pergunta.

Se você fizer isso corretamente, verá que muitas vezes resolverá seu próprio problema.

Marcin
fonte