Há um tempo atrás, decidi começar a programar. Eu realmente pulei em um idioma (Perl) e fui dali. O que lamento é que acabei de pular:
Não aprendi o básico (se você pudesse chamá-lo de básico).
Eu não aprendi sobre ciência da computação.
Esta questão, acredito, está me afastando do meu verdadeiro potencial. Onde devo "reiniciar"? Existem livros, artigos etc. que devo ler? Existem tópicos que um programador experiente deve saber? Qual é o seu conselho?
education
computer-science
experience
Dinâmico
fonte
fonte
Respostas:
Eu faria o seguinte:
Caminho A: O método semi-típico
Aprenda um idioma com uma sintaxe mais regularizada, como Java, C # ou Python. O Perl é uma ferramenta incrivelmente útil, mas também é muito livre, em termos de como permite fazer as coisas. Os outros idiomas que listei são muito, muito menos.
Obtenha um livro sobre estruturas de dados no idioma mencionado.
Obtenha um livro sobre algoritmos no idioma mencionado.
Obtenha código completo e eficaz Java / C # / Qualquer que seja a versão do Python.
Caminho B: O Caminho da Iluminação de Joel Spolsky (ou Morte, faça sua escolha)
Obter o livro "Código"
Obtenha o "The C Programming Language" da K&R
Obtenha a estrutura e a interpretação da programação de computadores
No que diz respeito ao método, o método 1 ensina a programar de maneira mais regularizada. Os conceitos de Ciência da Computação até certo ponto (ainda não há teoria da complexidade, confie em mim) e fornecem uma linguagem melhor para trabalhar em projetos com outras pessoas e para criar aplicativos maiores.
O método 2 é mais rígido, é muito mais uma abordagem de fundamentos, com "Código" explicando o básico, a K&R introduzindo o material no nível da máquina e o SICP introduzindo os conceitos de nível superior. É um caminho muito mais difícil, mas mais focado.
Em ambos os casos, reserve um tempo. Roma não foi construída em um dia e nem habilidades de programação, mesmo que você seja um gênio. A programação de Peter Norvig em 10 anos é o ensaio habitual para o qual aponto as pessoas.
Termo aditivo:
Tanto quanto o material gratuito disponível: Python the Hard Way, conforme listado abaixo, é um bom começo; a partir daí, como pensar como um cientista da computação é uma continuação razoável.
Existem vários recursos em algoritmos por aí e, honestamente, você provavelmente pode alternar as etapas 3 e 4 sem problemas. Lembre-se, é aqui que a matemática realmente começa a aparecer, portanto, não tenha medo de pedir ajuda quando chegar a esse estágio. Este parece ser um guia gratuito razoável .
Realmente não existe um equivalente gratuito e coeso do Code Complete, por exemplo, embora o Code como um Pythonista pareça bastante sólido. O importante é concentrar-se em tornar seu código legível depois que você entender os fundamentos. Não é "necessário" da mesma maneira que ter toda a sintaxe de código correta, mas facilita muito a vida quando você ultrapassa pequenos programas ou trabalha em algo por um longo período.
Você pode achar que eu me concentrei principalmente em Python, é porque é o mais fácil dos três encontrar coisas gratuitas bem escritas. Acho que os tutoriais de Java da Oracle são bons, mas são um pouco secos e não são ótimos para iniciantes. C # está em uma situação semelhante, embora nenhum sofra de falta de documentação.
Além disso, sua primeira piada / piada de CS: você deseja "Refatorar" sua educação, não o Backtrack.
fonte
Eu diria que o objetivo é aprender Python da maneira mais difícil ; é uma boa abordagem. Vá de lá; levará tempo suficiente para que você tenha tempo para encontrar outros recursos.
Na minha opinião, o "caminho B" mencionado em outra resposta não é apropriado nesta fase.
fonte
Bem, comecei pelo mesmo motivo que tinha algum conhecimento no lado do hardware e fiquei intrigado com a programação. Eu gosto de aprender coisas novas.
Comecei com os arquivos em lote do DOS, QuickBasic, Visual Basic, VBA, MASM, com o Access para trabalho de banco de dados antes de conseguir meu primeiro emprego. Para mim, esse foi o melhor caminho, começando simples e depois construindo a partir daí.
Eu diria que decida o que você mais gosta sobre programação e siga essa rota, scripts, desenvolvimento web, programação para Windows, etc. Se você não souber, comece a trabalhar com algumas linguagens para ver o que você gosta. Você vai precisar de tempo embora. Demora cerca de 5 anos para ficar realmente bom com uma linguagem como Java ou talvez C ++, IMHO.
Como uma linguagem para ajudar a aprender o desenvolvimento da Web, o JavaScript é definitivamente o PHP, e o Python é popular, mas isso é IMHO. Supõe-se que você conhecerá ou aprenderá HTML / CSS. Eu realmente subestimei o javascript, apesar de usá-lo desde 2001. Fiz a mesma coisa com CSS e não achei importante. Eu mudei de opinião sobre isso também.
Quando tento determinar uma tendência, vou para http://www.indeed.com e clico no link de tendências na parte superior esquerda da página. Depois, coloquei palavras-chave como PHP e Python e vi quais estão sendo descartadas para os cargos reais disponíveis na Internet.
Isso é da perspectiva de uma carreira e, com base no que me traz mais valor para os clientes (empregadores). Não apenas da perspectiva de aprendizado.
fonte
Aprenda sobre os algoritmos da forma mais básica, esqueça os idiomas por um tempo. Classificação de vetores, palavras, etc. Freepascal é uma linguagem agradável para começar com essas coisas, eu amo Perl, mas com todos os seus atalhos e coisas legais, muitas vezes você estará negligenciando o algoritmo inerente ao programa.
fonte