Estou aprendendo novos idiomas à medida que avança, escrevo código para programas muito básicos em vários idiomas e vou para as aulas. Eu li livros, artigos, lições, vídeos, você escolhe, no entanto, parece que não consigo entender certas coisas.
Por exemplo, eu nunca entendi indicadores - no que eles são bons. (NÃO FAZ PARTE DA PERGUNTA - não é necessário marcar novamente com "Ponteiros" ...)
Minha pergunta, no entanto, não é o que os ponteiros fazem, mas como posso entender coisas assim? Se, depois de ler um livro ou um artigo sobre uma certa parte da programação, e eu não entendo, o que devo fazer? Escrever código em um determinado recurso da programação certamente ajuda, no entanto, na verdade, não ajuda muito a entender isso. A parte teórica é importante no entendimento.
fonte
Computer Architecture 101
curso ajudaria muito a entender os ponteiros. ...e qualquer outra coisa.Respostas:
Se você tiver problemas para entender um conceito abstrato, basta descer um nível. Se você não conseguir obter os ponteiros em C - desça até o nível da montagem. Ainda tem problemas? Aprenda mais sobre o hardware, até os portões lógicos.
fonte
MIX
e outras arquiteturas de brinquedos similares por aí. Para uma parte de hardware, é a mesma coisa - existem muitos núcleos simples de CPU de brinquedo para estudar.Ciclo de vida curto de aprendizado incremental
Etapas adicionais
Para usar com cautela.
man -k
,apropos
, etc ...)Eles são mais furtivos, pois você precisa se reavaliar para garantir que está certo. A orientação direta por uma pessoa experiente geralmente é melhor, seguida, é claro, pela sua própria validação do conhecimento adquirido, reimplementando o que você acabou de aprender (e, em seguida, tentando avançar um pouco mais e aprender um conceito de nível superior construído no topo). dessa, por exemplo, listas vinculadas para seus ponteiros).
Créditos: Nupul (para diagramação)
fonte
Na minha experiência, é tudo sobre entrada e feedback. Você deseja obter informações da forma mais ampla possível e obter feedback sobre seus erros o mais rápido possível.
Na minha experiência, meu diploma de CS era muito seco, muito formal e totalmente inútil no ensino de qualquer programação. Participei de duas ou três palestras por semana e, se você não conseguir, é praticamente isso: o professor tem outra classe para ensinar e não pode ficar por perto para ajudá-lo. E, provavelmente, esse cara entende de uma certa maneira, e ele a ensina de uma certa maneira, e é isso, então, se você não pensa como ele, nunca vai entender. O pior é que, uma vez que ele provavelmente entende um bilhão de outros conceitos relacionados, ele provavelmente o enquadrará em termos desses outros conceitos, que podem muito bem ultrapassar sua cabeça ou simplesmente nem mesmo no material do curso.
Fui ao Stack Overflow e perguntei no canal de bate-papo C ++ e obtive cinco explicações diferentes em cinco minutos. Eles foram todos adaptados especificamente para mim e para o problema exato que eu tinha, então não é surpresa que um deles tenha chegado em casa por mim e eu o entendi. A taxa com a qual você pode aprender ao receber feedback ao vivo de vários especialistas excede largamente o que você pode obter de uma fonte de papel seco.
Então, idealmente, faça uma pausa e, em seguida, você encontrará um grupo pequeno e médio de pessoas afins que não têm nada melhor para fazer e conversar com elas ao vivo. A propósito, o Stack Overflow é um excelente lugar para obter esse tipo de feedback pessoal de alta qualidade e alta velocidade.
fonte
Em nenhuma ordem, livros, amigos e leitura de códigos bem documentados são boas fontes. A prática é a única maneira de aprender: tente escrever pequenos testes de unidade. Por exemplo, para ponteiros escrever código que lida com seqüências de caracteres: inverter uma string, inverter cada palavra em uma string, testar palíndromo, substituir uma letra por um número ...
Faça perguntas sobre stackexchange ...;>
fonte
A prática leva à perfeição! (bem melhor de qualquer maneira). Continue tentando e tente usar o máximo de fontes e sentidos possíveis:
Fontes: Livros, Internet, Grupos de usuários, amigos, Aprendizado em vídeo, usando sites que permitem testar pouco 'código' como jsfiddle (principalmente html),
Rubular (expressões Ruby),
SQlzoo para testar sql,
jslint para javascript,
bloco de código para muitos idiomas.
Para se lembrar de coisas abstratas, considere a mnômica - os médicos as usam!
Considere-se um aprendiz ao longo da vida e permaneça humilde e poderá ir longe.
fonte
Você precisa mudar seu foco por um tempo, não por 5 minutos. ou 5 horas ... quero dizer algo como 1 dia sem olhar para esse código ... apenas relaxe ... vá ler algo diferente ...
Se você precisa entender agora ... peça ajuda a amigos ou aqui =)
fonte
O que todo mundo na TI faz.
Utilizo um mecanismo de pesquisa para pesquisar os conceitos relacionados que não entendo até poder revisitar o tópico que inicialmente queria entender.
Provavelmente, você também não entende completamente a pilha, a pilha, as variáveis automáticas, o processo de compilação do C ++, a montagem, a memória gerenciada e a memória não gerenciada.
Mais clareza sobre esses e outros conceitos relacionados a ponteiros provavelmente esclareceriam tudo.
fonte
Não existe uma maneira rápida de entender um assunto. Seu sucesso depende de quanto contexto você traz em seus estudos. Você terá muita sorte em encontrar alguém que explique as coisas com seu ponto de vista. Como as máquinas de Turing, qualquer um pode aprender o que os outros sabem, e é apenas uma questão de persistência e aceitação que a frustração é natural.
Lembro-me da imensa dificuldade que tive com ponteiros. Não foi até um cara muito paciente me explicar como se eu fosse um completo idiota que eu entendi. Às vezes é o que é preciso.
fonte
Este é um problema comum no aprendizado e no ensino. E, como outros já disseram, não há maneira de contornar isso. É uma verdade fundamental que todos aprendemos de maneira diferente, já que nossos cérebros são conectados de maneira sutil, mas crucial.
O aprendizado gera novas conexões neuronais. Sem entrar muito na neurociência (sobre a qual não sei quase nada), gerar novas conexões requer diferentes tipos de exposição a um conceito para pessoas diferentes. Tente muitos ângulos diferentes, leia / ouça / assista a explicações diferentes. Prática!
Se isso não funcionar, deixe o problema de lado: você pode simplesmente estar perdendo outra parte do quebra-cabeça que, uma vez adquirida, faz com que o problema original pareça óbvio.
Você conhece esses aha! momentos? É quando seu cérebro acaba de fazer uma nova conexão. É assim que o aprendizado acontece.
Aliás, qualquer bom professor sabe disso. As diretrizes para redação técnica geralmente afirmam que todo conceito deve ser explicado pelo menos duas vezes, usando palavras diferentes (e talvez com algum texto entre elas). Se você prestar atenção, será capaz de perceber que todos os bons escritores científicos seguem essa regra.
Infelizmente, muitos professores o ignoram e explicam as coisas apenas uma vez. E mesmo que consigam encontrar uma explicação elegante com uma grande metáfora, isso simplesmente não é suficiente.
fonte
Leia qualquer documentação relevante e pesquise no Google suas dúvidas.
Tente escrever exemplos de código, veja o que eles fazem.
Tente executar o código na depuração e assista passo a passo.
Se você ainda não entende um determinado comportamento, pergunte a alguém, pessoalmente ou em um site como este. Se você tentou todas as opções acima, deve ter todos os elementos para compor uma boa pergunta. Não seja tímido :)
Eu acho que é praticamente o que todo mundo faz.
fonte
Continue pesquisando e aprendendo. Eu tive o mesmo problema com vários outros aspectos da programação. Mas conversar com outras pessoas e ler artigos acaba levando a um momento "AHA". Geralmente, é alguma outra postagem no blog ou resposta SO que apresenta as informações que eu posso seguir.
Basicamente, continue procurando e seja paciente com o entendimento que está por vir.
fonte