Como programador, se você nunca ouviu falar do Stackoverflow, é melhor pensar nisso. Um dos livros de programação que os programadores mais precisam ler (na verdade, basta deixar esse para livros de programação!). ):
(A página inicial que Jun inseriu fortemente, a imagem acima é uma paródia, alguns internautas não entendiam isso antes, especialmente para dizer isso) Para aqueles programadores que ainda não leram o livro, é hora de comprar um. Se você ainda está em dúvida, dê uma olhada neste artigo para entender por que não consegue ficar sem o StackOverflow. A sabedoria de fazer perguntas Quando você faz uma pergunta técnica, se você acaba recebendo uma resposta útil geralmente depende de como você pergunta e faz o acompanhamento. —— Eric S. Raymond Às vezes, uma descrição clara de um problema, especialmente um técnico, não é tão simples quanto parece. Fazer perguntas sempre foi uma ciência, mas infelizmente muitas pessoas não percebem ou não prestam atenção suficiente. Ou, alguns que perguntam nem pedem ajuda. Então vamos encontrar todo tipo de pergunta que as pessoas não conseguem responder ou não querem responder: Problema com regex em Java? O que é tempo de resposta do SLA? Qual é a diferença entre classes ATL e herança geral de classes? Para evitar que o problema acima seja fechado ou modificado, coloque uma foto aqui para experimentar esse problema ruim:
Você pode encontrar várias dessas perguntas nas perguntas sem resposta no SegmentFault, então muitas pessoas obviamente não têm sabedoria ou atitude para fazer perguntas. Raymond e Rick Moen escreveram um ensaio clássico sobre como fazer perguntas, The Smart Way (http://www.catb.org/~esr/faqs/smart-questions.html#translations), que foi traduzido para vários idiomas, amplamente distribuído e pode ser encontrado na edição chinesa aqui. Stackoverflow e Segmentfalut também têm sugestões para fazer perguntas: Centro de Ajuda > Perguntando Como Perguntar Como faço uma boa pergunta? Que tipo de perguntas são bem-vindas Há muitas perguntas clássicas no Stackoverflow, e podemos aprender a fazer perguntas e nos comunicar com quem responde. Quando você se acostuma a ler perguntas no stackoverflow, vai imitá-las inconscientemente ao fazer perguntas, evitando assim perguntas sem sentido. Aqui estão algumas das perguntas mais importantes para prestar atenção ao fazer perguntas: Faça uma pergunta cujo mecanismo de busca não tenha uma resposta satisfatória (o Google tem pelo menos quatro páginas). Faça perguntas que você não consegue resolver sozinho e que já tentou muitas vezes Tente descrever o problema da forma mais clara possível: boa tipografia, código, prompts de erro, imagens, etc Faça suas perguntas úteis para os outros Deveria haver uma resposta definitiva para a pergunta, e não deveria haver muita subjetividade Esquemas diferentes Muitas vezes esperamos encontrar uma solução, mas no Stackoverflow, muitas vezes há ganhos inesperados. Você pode ver diferentes soluções para um problema, incluindo até comparações dessas soluções. Suponha que agora você queira saber como chamar um comando externo em Python, como ls -l, para imprimir um artigo em um diretório. Pesquise no Google o comando de chamada de sistema em python, e o primeiro é uma pergunta relacionada sobre stackoverflow: Chamar um comando externo em Python. (http://stackoverflow.com/questio ... l-command-em-python) (problemas técnicos do Google, basicamente problemas relacionados ao stackoverflow serão exibidos). Então, sob essa pergunta, alguém resume várias formas de invocar comandos externos: os.system() os.popen() subprocess.popen() subprocess.call() subprocess.run() E cada método também é introduzido, você pode escolher o que se adequa ao seu cenário de aplicação. Outro exemplo é a pergunta: Como verificar se um arquivo existe usando Python? (http://stackoverflow.com/questio ... exists-using-python), que descreve diferentes métodos em Python para verificar a presença de um arquivo. Uso de ferramentas Existem muitas ferramentas poderosas que podem nos ajudar a estudar melhor os problemas, você pode conhecer a ferramenta de depuração gdb, pode conhecer o módulo de monitoramento timeit do python, mas não conhece as ferramentas que não conhece. Muitas vezes, quando conhecemos uma ferramenta pela primeira vez, sentimos que estamos nos encontrando tarde demais. No entanto, as ferramentas que você gosta são sempre muito difíceis de encontrar. No Stackoverflow, pode haver boas ferramentas em cada pergunta, resposta ou comentário, e você sempre terá a chance de encontrar as melhores que ficaram para trás. Aqui está uma lista de algumas das ótimas ferramentas que encontrei: Truss/Strace: Rastreia chamadas do sistema e sinais recebidos quando um processo é executado, o Strace pode rastrear chamadas de sistema geradas por um processo, incluindo parâmetros, valores de retorno e tempo de execução. (Da pergunta: Por que ler linhas do stdin é muito mais lento em C++ do que em Python?) vprof: Uma ferramenta visual que analisa as características de programas em Python, como tempo de execução, uso de memória, etc. (Da pergunta: Como você pode perfilar um Python?) Regex 101: Um assistente online de expressões regulares que pode ajudar você a entender o significado de expressões regulares, depurar expressões regulares e fazer experimentos simples. (Da Edição: Aprendendo Expressões Regulares) Aqui está um exemplo simples do Regex 101:
O processo de pensar Muitas vezes, quando enfrentamos um problema, não temos como começar e não sabemos para onde pensar. Mas com o stackoverflow, podemos facilmente descobrir a solução específica e, às vezes, até saber o que os outros pensam diante desse problema. Digamos que você queira usar um decorador para realizar uma tarefa adicionando antes e depois da sequência retornada pela função say abaixo, e você pense em definir, digamos, assim. @makebold @makeitalic Definitivamente diga(): retornar"Olá" Cada ligação para dizer retorna Olá. Mas como implementar makebold e makeitical é um problema. No Stackoverflow, há grandes touros que vão te dar a resposta diretamente e te passar um link para a documentação dos decoradores. Mas também há Daniels, que vão contar em detalhes sobre seu processo de pensamento e seu entendimento dos decoradores, para que você possa entender profundamente o mecanismo do decorador. Em resposta à pergunta acima, há uma resposta que já recebeu mais de 3.000 curtidas, mostrando como resolver o problema passo a passo. Antes de tudo, conte para nós quais são as características das funções em python: Funções são objetos Uma função pode ser atribuída a uma variável Uma função pode ser definida em outra função Uma função pode retornar outra função Você pode passar funções como parâmetros Depois, comece a explicar o que é um decorador: na verdade, é um encapsulador, que nos permite executar outro código antes e depois de executar a função original sem modificá-la. Um protótipo simples de decorador é implementado manualmente, seguido pela introdução da sintaxe do decorador em Python. Por fim, alguns usos avançados dos decoradores são listados, incluindo a passagem de parâmetros para os decoradores. Leia a resposta completa, você certamente terá um entendimento mais profundo sobre o decorador e entenderá o processo de pensamento para entender o decorador. Dessa forma, seguindo esse caminho de pensamento, você mesmo pode deduzir como usar os decoradores. Possíveis pontos cegos Quando você não tiver perguntas para fazer, também pode visitar o stackoverflow de vez em quando, navegar por algumas perguntas com mais votos e ver o que outros responderam. Nessa vasta base de conhecimento, você provavelmente encontrará alguns dos seus pontos cegos cognitivos e descobrirá conteúdos aos quais nunca prestou atenção. Encontrei algumas perguntas interessantes, como: Imprimir no terminal com cores usando Python? O que é uma metaclasse em Python? Qual é o seu atalho mais produtivo com a Vim? Reuni aqui uma lista de perguntas de alta qualidade em Python para referência frequente. Lamento que nos tenhamos encontrado tarde demais Então, como encontrar o StackOverflow, duas sugestões: Descreva o problema com precisão em inglês Pesquise no Google Desde que você não seja a primeira pessoa a enfrentar um problema técnico, provavelmente encontrará o mesmo ou semelhante problema no StackOverflow. Conheça logo, apaixone-se pelo Stackoverflow cedo, e você vai perceber que a vida é muito confortável.
|