Como você se lembra de coisas relacionadas à programação? Você já teve a sensação de que encontrou o erro que estava enfrentando agora, alguns anos atrás, e poderia jurar que conhecia a causa, mas agora a esqueceu?
Você trabalhou com a análise de string do xsl há algum tempo, mas agora não consegue se lembrar exatamente quais são as funções de string do xsl e precisa começar do zero? Ou talvez você se esqueça de algum recurso do Apache Commons como "filtrar uma coleção por algum predicado" que você certamente usou no passado.
Então como você faz isso? Tentei ter um blog, mas quando desenvolvo aplicativos, nunca encontro tempo para atualizar o blog ou escrever sobre minhas experiências. Além disso, o uso de um wiki é uma coisa agradável, mas achei difícil manter uma separação limpa entre eles, pois muitas vezes eu precisava alterar uma postagem de blog para adicionar novas informações sobre esse tópico. Isso me fez pensar que eu deveria ter colocado esse tópico no wiki em vez de no blog.
Você tem algum sistema que o ajude a se lembrar da sua experiência em programação? Qual é a sua configuração?
fonte
Respostas:
Esquecer as coisas é normal. Não se lembrar de alguns truques que o ajudaram no passado também é normal. Este é o primeiro passo que se deve reconhecer. Depois, existem algumas maneiras pelas quais você pode "armazenar" o conhecimento para revisão posterior:
fonte
Minha chave é
Variedade
Repetição. Uma vez pode ser passageiro. Ver a centésima ocorrência faz a diferença!
Memória pelos dedos . Lembro-me muito melhor do código quando eu o digitei algumas vezes.
Biblioteca de códigos - Mantenha um estoque pessoal de códigos e truques que você usou e viu.
Centralização. Eu mantenho 1 arquivo com todos os meus nomes de usuário (centenas) em 1 pc. Eu aplico segurança a ele.
Disciplina - você mencionou não ter tempo / fazer um esforço para atualizar seu próprio blog, etc. Em que você apenas precisa trabalhar mais e garantir que o faça.
Aceitação - habilidades e técnicas e coisas que você aprendeu na semana da moça serão renovadas. Alguns dos itens que você diz há 3 anos serão difíceis de lembrar. Isso é normal, pois o cérebro abre espaço para mais.
Múltiplos sentidos - às vezes eu uso mnemônicos, às vezes eu mostro uma imagem com os principais conceitos desenhados de maneiras distintas. Eu leio, ouço podcasts, assisto a vídeos, uso cores nos editores. Quanto mais sentido eu usar, melhor.
Mnemônicos , por exemplo, ordem de borda css Tarball (TaRBalL) TopRightBottomLeft. Também uso cores e formas para lembrar palavras e temas. Muitas vezes, quanto mais bizarro, mais memorável!
Uso continuado - Esse é o efeito 'use-o ou perca-o'. Todo o conhecimento desaparece com o tempo. Time ++ Fade ++
Rede Stack Exchange - Estou usando o Stack Overflow em várias áreas para tentar manter o máximo de habilidades e técnicas diferentes 'atualizadas' e 'lembradas', mesmo que não as esteja usando no meu trabalho / projeto atual.
Dropbox - mantenho pequenos arquivos comuns com itens relacionados à memória
Livros - ainda gosto do tolo e do sentimento dos livros físicos. Também tenho vários livros e outros livros técnicos on-line aos quais posso me referir em qualquer lugar. Obviamente, minha biblioteca técnica pode ser acessada em qualquer lugar quando for digital, o que é enorme.
O efeito do Google - nenhuma lista de itens seria realmente completa sem mencionar isso. É mais sobre o que você não precisa se lembrar - porque você pode pesquisar e encontrar no Google. Essa é uma consideração importante também. À medida que mais pessoas se tornam mais hábeis nessa maneira de obter conhecimento, a necessidade de realmente memorizar qualquer fato está caindo. No entanto, isso também está 'elevando a fasquia' para os profissionais do conhecimento que estão descobrindo cada vez mais que um profundo entendimento conceitual é necessário para o desempenho no ambiente atual. Claro que para os CME's !
Meu próprio blog
Meu próprio site de favoritos .
fonte
Durante o último ano, o Evernote se tornou um programa que eu não poderia prescindir. Eu copio tudo para o Evernote. Código Snippeds, Screenshoots, dados de contato, histórico de versões e assim por diante. Portanto, não preciso me lembrar de tantos detalhes. Eu só sei que está lá em algum lugar.
A versão básica é gratuita. Então tente!
fonte
Sherlock Holmes disse uma vez algo como "A mente de um homem é como um sótão. Se você a encher de trivialidades, não há espaço para algo realmente importante. Por todos esses detalhes, temos a enciclopédia".
A menos que você tenha uma memória fotográfica e os problemas nela, você não se lembrará de tudo. Crie um conjunto de recursos, uma biblioteca pessoal de informações e técnicas de solução de problemas.
Você pode não se lembrar da resposta e nem lembrar onde a resposta está escrita. Mas, se você souber como resolver o problema, poderá sempre encontrar a resposta novamente. Felizmente, isso incluirá a documentação da sua solução de maneira pesquisável e reutilizável.
fonte
Bem, talvez meu caso seja particular ... mas: tenho todos os fragmentos de software que escrevi desde 76 no meu laptop, programas, scripts, configurações etc. Então, com o tempo (devo confessar), minha carga de memória mudou de lembrar ' coisas "para lembrar metadados sobre coisas. Claro, muito disso não é mais relevante, mas acho que a parte mais difícil é ter as idéias, e não implementá-las. Portanto, os metadados são basicamente um índice de quais 'idéias' podem ser encontradas onde.
Hoje em dia, quando chego a um novo território, geralmente encontro uma grande base de código que usa os novos aspectos e passo algum tempo de qualidade com a base de código. Eu estudo, tento fazê-lo funcionar em um ambiente de teste e, em seguida, tento aumentá-lo para que eu possa acessar novas ferramentas (bibliotecas, linguagens, tecnologia de construção, etc ...). Esse processo me permite mapear meus padrões, idéias, para um exemplo. Posso levar algum tempo para fazer alguns desses mini-projetos e escolher como referência aquele com o qual me sinto mais em casa. Feito isso, acabarei reutilizando essa base de código para criar o esqueleto de meus próprios aplicativos.
Quando os arquivos pessoais falham, eu chego à rede, à qual adicionei o SO recentemente. Eu vou ter um sucesso em 'novos' conceitos (novos do ponto de vista pessoal) no SO antes do gaagle. De fato, raramente (hoje em dia) volto ao gaagle. A primeira resposta relevante é tipicamente um link para algumas perguntas interessantes sobre SO.
fonte
Como outros, eu acompanho as coisas usando marcadores.
Eu costumava usar o Delicious, mas agora mudei para o Pinboard.
Mas eu não uso dessa maneira tanto quanto costumava. Parece que todo problema de programação que encontro é uma pequena pesquisa no Google. E, no último ano, comecei a usar o Stackoverflow como um dos meus termos de pesquisa!
Sempre que me deparo com uma pergunta SO para uma questão particularmente difícil, eu a escolhi para acompanhar, de modo que essa é outra forma de bookmarking.
fonte
É absolutamente normal não lembrar os detalhes. No entanto, o que você deve se preocupar é esquecer as principais coisas. Se você corrigiu um bug, deveria ter pelo menos uma idéia conceitual sobre qual era o problema.
Marcadores, blogs e cadernos são ótimos para guardar esses detalhes. Mas, no final das contas, você ainda precisa se lembrar da "imagem" maior. Caso contrário, redescobrir esses detalhes "mais refinados" será muito mais difícil.
fonte
Mantenha suas próprias anotações, expressando as coisas com suas próprias palavras. Seu público-alvo é você , mais ninguém, para que você possa ser conciso. (No entanto, uma postagem no blog precisa ser clara e bem editada, o que é demorado.) Se você encontrar bons artigos / postagens de blog, grave o URL, mas ainda explique as coisas com suas próprias palavras.
Eu mantenho uma grande hierarquia de arquivos pequenos, curtos e de tópico único. Os arquivos são principalmente de formato livre, mas estou mudando para o Markdown. Pesquise usando grep / find. Eu mantenho a pasta no meu DropBox, para que esteja sempre disponível para mim.
fonte
Todo mundo pode ter seu próprio estilo ao qual está acostumado. Para mim, separo o conhecimento em categorias:
Livros
Artigos
Coleções (coisas que eu acho interessantes limitadas a poucos parágrafos - na verdade eu copio as informações e às vezes anoto a fonte) - Por exemplo: desenvolvimento de OOD, genéricos, ... etc.
Código reutilizável (texto e trechos) - Cada um em um arquivo separado em uma boa organização em árvore. Por exemplo, o nó DataValidation conteria muitas técnicas para validar itens de dados diferentes, cada um em um arquivo separado
Projetos completos
Tutoriais em vídeo pessoal (às vezes eu gravo vídeos de como fazer coisas quando há etapas demais).
Ligações
Organizo o exposto por assunto, com cada assunto em uma estrutura de árvore apropriada.
Algumas vezes há coisas sobrepostas, mas consigo encontrar o que quero.
Além disso, usando o Google Desktop, encontrar texto ou arquivos é muito rápido.
fonte
Eu uso o OneNote. Eu tenho muitas linguagens de programação diferentes com as quais trabalho, então tenho seções diferentes para cada linguagem e guias diferentes para diferentes tipos de notas.
Agora, estou começando a usar o Stack Exchange também.
fonte
Você deve estar equilibrado entre memória e "armazenamento". Se você confiar demais ou em coisas erradas na memória, == problema, se você confiar demais em armazenar tudo == inútil.
Minhas regras:
-Não exagere! escreva as coisas importantes, mesmo que o tamanho da fonte varie no seu documento :)
-Não se orginize. Convença-se de que organizar seus pensamentos não precisa de uma estrutura de árvore de 10 níveis
-Passe o tempo em encontrar o que gravar. você pode encontrar 5 soluções para o mesmo problema. no momento em que você escreve tudo, você solta. Anote 1-2 que REALMENTE o ajudarão. NÃO permita que você não tenha tempo para isso agora. É bastante estranho, mas se aplica: "Passou um tempo para conseguir tempo"
Eu não gosto de colocar essas coisas em algum "produto" porque quero ter certeza de que ela existirá 20 anos depois e não quero migrar para várias plataformas.
Então o que fazer?
Tudo o que você pode obter as informações com o mínimo esforço.
Por exemplo, instale o phpBB e escreva para você mesmo. você obtém a funcionalidade de pesquisa pronta para uso, é gratuita e pode extrair dados com instruções SQL simples e colocá-las em arquivos. você pode ter um cronjob exportando seus pensamentos em arquivos para arquivamento. Portanto, se você precisar colocá-los em outro sistema, estará pronto com o mínimo de esforço.
Outro problema é que ninguém garante que os links encontrados funcionem amanhã (imagine 5 anos depois). Portanto, tente duplicar as informações:
-Faça o download do vídeo com alguma extensão do navegador e anexe-o, por exemplo, ao seu post do phpBB (ou wordpress ou o que for).
Admita: você é um programador e cria aplicativos para outras pessoas. Faça um simples para si mesmo e torne-se o seu melhor cliente.
meu 2c
fonte
Resposta curta:
Prática, prática, prática.
Resposta não tão curta:
Como você se lembra de andar? Como você se lembra de como falar? Essas habilidades não são exatamente as mesmas e não exigem um conhecimento enciclopédico (aparentemente para iniciantes, pelo menos), mas você está usando a mesma coisa: memória.
Embora eu admita que, para iniciantes, a programação possa parecer um assunto incrivelmente grande quando você começa a estudá-lo, torna-se como qualquer outro assunto depois que você aprende o básico.
Assim que eu descobri isso, comecei a dividir as coisas em pedaços cada vez menores (minha própria versão pessoal da abstração). Dessa forma, algo que parecia difícil de lembrar se torna mais fácil (pelo menos comigo).
Escrever as coisas ajuda mais do que você imagina (tendo trabalhado em Educação, sei que isso pode ter efeitos positivos maciços na retenção). Especialmente se você puder colocá-lo com suas próprias palavras - em vez de apenas copiá-lo literalmente. Se você pode parafrasear ou equiparar a algo que você já conhece, melhor ainda.
Por exemplo: Em C #, os objetos String são imutáveis. Isso significa que sempre que digo ao meu programa para alterar o conteúdo de um objeto de string, o que realmente acontece é que a string original é destruída (tecnicamente, ela é colocada no nível mais baixo do coletor de lixo). Exatamente como quando um artista comete um erro ao criar uma escultura em mármore - ela não pode ser alterada, sendo destruída e criada uma nova.
Não é um ótimo exemplo, mas mostra o básico do que estou falando.
A documentação de qualidade também ajuda. Algo que meu professor de programação 101 me disse uma vez ficou comigo:
Bons livros também são um excelente recurso. Um tutor diferente me disse uma vez que, se um livro não tem um índice (e há muitos deles por aí que não têm), não vale a pena comprar.
O Google pode ser um recurso incrível, mas esteja ciente dos codificadores de copiar e colar. Fique longe de sites que oferecem apenas um bloco de código sem explicações. Prefiro ler um artigo inteiro sobre pequenos blocos de código, assim você sai sabendo exatamente o que o bloco de código deve fazer, como ele faz e por que o programador escreveu dessa maneira.
espero que ajude
fonte