Quais são os melhores recursos (sites, livros ou tutoriais) para a aprendizagem de programação?
I'tenho passado 6-8 horas/dia me ensinando a programar durante o mês passado e basicamente vasculhei a Internet para cada tutorial gratuito ou semi-livre por aí.
Her's as coisas boas que eu's tenho usado e recomendado:
<
- CodeHS -- Problemas no formato de vídeo e programa, começando com uma linguagem de brinquedo chamada Karel e indo até o Javascript, culminando em você fazendo o jogo Breakout no seu navegador. Fundada por dois ex-CS106a TAs em Stanford, dos quais o currículo foi amplamente adaptado. Eles têm provavelmente 40 horas de conteúdo realmente bom e, o mais importante, fornecem-te uma ajuda amigável, um-a-um com ~3 horas de reviravolta quando precisas. Confira minha versão do Breakout que fiz depois de fazer todo o conteúdo: EpicBreakout. (1)
- Google's Python Class -- Ao contrário do acima, requer alguma configuração na sua máquina (ou seja, você'não está codificando no navegador), mas ainda assim é bom. Cerca de dois dias de palestras sobre Python com um punhado de bons problemas, culminando em expressões regulares (como um CRTL + F personalizado em um documento Word) e um problema onde você descodifica uma imagem codificada de um website.>li>CodingBat -- Problemas Python e Java. Sem folhos, apenas os exercícios -- provavelmente melhor para alguém com um pouco de fundo (o que significa que você sabe o que é uma função/parâmetro e pode usar o Google para descobrir a sintaxe/funções que você precisa). O site foi feito pelo mesmo cara que ensinou o Google Python Class.
- Khan Academy -- Alguns tutoriais de introdução (na maioria gráficos/animação) em JS usando uma biblioteca bem conceituada (Processing.js) e depois um amplo espaço de projeto aberto para você ver os programas que outras pessoas fizeram (ou seja, o resultado final e o código) e para fazer o seu próprio, potencialmente forking off do trabalho deles. Aqui'é um jogo que algum cara fez que serviu de inspiração para a minha versão do Breakout: Mercúrio Subespacial. Bastante bom, certo?>Codecademy -- Sólido formato de código de leitura-e-escrita de pequenos problemas quebrados em diferentes sub-peças. Eu usei seus tutoriais de HTML/CSS para obter um fundo básico antes de fazer meu site pessoal (http://www.thenickhuber.com/) e vou usar suas coisas em JS e jQuery mais avançados quando eu chegar a ele. Ainda assim, seu nivelador é um pouco buggy e lá's uma grande variação na qualidade do curso/sobreposição no material, já que tudo é escrito por pessoas diferentes.
- Learn Python The Hard Way -- Exercícios de leitura-implementação, começando a partir de nenhum conhecimento assumido. Bom, mas ainda não tão bom quanto os problemas interativos; eu desisti depois de fazer ~20% ou mais, porque ele'é pouco repetitivo, mas li muitas revisões boas sobre ele.
>br>>>Outras coisas boas que quero verificar:
- curso de Stanford iPhone (todos os slides e trabalhos: http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2011-fall) -- um aplicativo para iPhone parece ser um projeto tão bom no início, porque é tão fácil mostrar aos seus amigos o que você'já fez, mas tem que descobrir o quão completo seria para mim. Além disso, você pode't obter seus conjuntos de problemas classificados se você'estiver trabalhando por conta própria a partir do material online.>li>K&R (http://www.amazon.com/Programming-Language-2nd-Brian-Kernighan/dp/0131103628) -- livro de introdução altamente considerado sobre C e implementações dos algoritmos mais canônicos. (Se você conhece um site que tenta fazer algo como isto, adoraria obtê-lo de você.)
- Os muitos cursos de CS sobre Coursera e Udacity. No entanto, eu acho que é muito importante que você tenha alguém que classifique seu trabalho para que você possa obter feedback (e que você realmente faça os problemas ao invés de apenas assistir às palestras). I'não tenho certeza se isso é possível se você fizer o curso "off-cycle" e como os problemas são bons, mas ainda vale a pena dar uma olhada.
Depois de um mês, I'agora tenho uma idéia melhor do que eu posso fazer e isso então informa coisas que eu acho que seria legal fazer. Neste ponto, I'estou mais entusiasmado em continuar com esta abordagem de aprendizagem baseada em projectos, pois penso que é mais eficaz/ duradouro/ divertido do que mais tutoriais/aulas, mas ainda é difícil conseguir isto fora da universidade/ambiente de trabalho.
------br>>--br>
ol>Note: it's unwinnable now -- eu preciso refactor e expandi-lo, incluindo um monte de powerups e o confronto final com o nosso herói's boss final, The Brick King. FYI, a minha pontuação alta é de 550 e o jogo fica com buggy em níveis altos. Mudar para balas ajuda e na verdade acrescenta alguma dificuldade inesperada. Adoraria receber o seu feedback/ideas.