Meu irmão mais novo está olhando para começar a programar. Ele tem 14 anos e é tecnicamente inclinado, mas não tem experiência em programação real. Ele está olhando para mim em busca de orientação, e eu não sinto que minha experiência seja suficiente, então pensei em perguntar aqui.
Ele está mais interessado em programação na web, mas também tem interesse em aplicativos de desktop / mobile / servidor.
Qual seria um bom caminho de aprendizado para ele seguir? Vou comprar um monte de livros para ele no Natal para ele começar; a questão é: o que ele deve aprender e em que ordem?
Na minha opinião, ele precisa aprender teoria e código. Eu gostaria de iniciá-lo com Python, Ruby ou PHP. Se ele quiser entrar na Web, também precisará aprender HTML, CSS, Javascript etc.
Desses três domínios (Idiomas, Teoria, Marcação / Etc.), qual a melhor ordem em que você pensa em aprender? Além disso, estou perdendo alguma coisa?
Obrigado!
Respostas:
Registre uma conta para StackOverflow.com e Programmers.StackExchange.com
e adquiri-lo o hábito de navegar em perguntas diferentes quando está entediado . Comece com as perguntas mais populares / populares.
Além disso
Ajude-o a criar uma meta de algo que ele deseja criar que está um pouco além do seu alcance, um jogo simples, um aplicativo que pode enviar um tweet? Tem que ser algo emocionante . Isso ajudará a guiar os tópicos aos quais ele se expõe e a motivá-lo através do resultado tangível que ele cria.
E
Sempre que possível , não compre livros em formato físico, se ele funcionar bem com impressão digital , tenho certeza de que um de vocês tem um android, iphone, blackberry ou ipod touch? Baixe o aplicativo ibooks ou kindle e compre versões digitais .
Ter que lidar com um livro físico atrasa o processo de aquisição de conhecimento; as ferramentas incorporadas nos leitores digitais oferecem muitos benefícios para a leitura técnica.
Nota: conforme mencionado nos comentários, existem desvantagens nos livros digitais versus livros impressos; portanto, considere esse ponto com um pouco de sal
fonte
Eu realmente gosto da maneira como entrei em programação; a única coisa que consigo imaginar mudar é o meu acesso aos livros. Minha família não tinha dinheiro para todos os livros que eu poderia devorar e nossa pequena biblioteca rural não possuía exatamente manuais de tecnologia. No grande esquema das coisas, este é um pequeno detalhe.
Não concordo plenamente com aqueles que dizem que você não pode aprender teoria aos 14 anos. Quanto mais cedo você aprender a teoria, melhor. Eu leio A arte da programação de computadores aos 14 anos, embora já estivesse codificando há algum tempo.
A melhor coisa que você pode fazer pelo seu irmão é dar a ele as ferramentas para perseguir seus interesses e incluí-lo na comunidade de hackers / codificadores sempre que possível, para que ele possa aprender as mentalidade de um ótimo codificador.
Afaste-o das ferramentas proprietárias sempre que possível. Há muito mais disponível para ele no mundo do código aberto. Fiquei tão bom quanto em grande parte devido às orientações que recebi de pessoas mais experientes na comunidade de código aberto.
Se você puder, compre um compre conta do Safari ou ajude-o a comprar livros quando necessário. Mesmo emprestar o que você já possui pode ajudar.
Verifique se ele tem acesso a um desktop ou laptop decente e a um servidor ou VPS para experimentar. Se os aplicativos móveis são a sua cara, verifique se ele tem um telefone ou dispositivo de demonstração para trabalhar.
Mostre a ele como encontrar canais de IRC, listas de e-mail etc. para as coisas com as quais ele está interessado em trabalhar.
Certifique-se de que ele saiba fazer perguntas inteligentes e, inversamente, os detalhes de uma sanguessuga de suporte para que ele saiba o que não fazer.
Sua primeira linguagem de programação não é o fator mais importante. A totalidade das linguagens de programação que ele aprende é extremamente importante. Os codificadores de um idioma nunca passam por um certo nível (relativamente baixo) de codificação.
fonte
Eu aprendia coisas para a área de telefonia móvel, que são os principais imóveis lá. Configure-o com um IDE que possua um emulador de telefone e um telefone para o qual ele possa enviar os aplicativos .
Configure-o para uso e hackers no mundo real, complementado com alguma teoria de seus livros para guiá-lo. Verifique se eles têm boas amostras.
fonte
Eu iria para a escola, se a idade da faculdade. Eu aceitaria o ensino médio, se a idade do ensino médio.
Eu teria uma missão e ajustaria o currículo de acordo com os 14 anos.
muitas pessoas me criticam por isso, mas o Visual Basic .NET parece ser mais fácil para alguns, apenas para dizer pessoal. Parece ser assim para muitos que não estão no iniciado.
fonte
Começar com o web dev é uma boa ideia. Você pode obter resultados mesmo se for um novato de verdade e, se errar, não importará muito.
Eu diria que Html / CSS + Php. Como Jeff afirmou em seu comentário, ter o site hospedado será importante, e os hosters Php não são caros, geralmente gratuitos.
Quanto à teoria, eu simplesmente a esqueceria por enquanto. Do jeito que eu entendo, ele principalmente quer se divertir, e vamos ser sinceros, a teoria não é muito divertida. Além disso, se ele gosta de programação, ele terá bastante na escola.
Obviamente, todos nós nos preocupamos com um código legal, mas se ele apenas está brincando, o que importa se o código dele é confuso?
fonte
programação web / desktop / móvel / servidor? Parece-me que ele está interessado em tudo. O problema é que ele tem que começar com alguma coisa.
Muitos discordam, pois é claro que não há uma resposta "certa" para isso, mas eu compraria um livro para ele sobre Python (o aprendizado de Python é espesso e completo o suficiente para mantê-lo ocupado por um longo tempo), e é definitivamente um linguagem que lhe dará uma boa proporção de coisas que aprendi versus colírio para os olhos (isto é, o que pode ser alcançado com ela). Também é um bom ponto de partida para muitos dos itens acima.
Depois disso, veja o que ele prefere ao máximo o mencionado acima e encaminhe-o ainda com conselhos nessa direção.
fonte
A escola dele oferece aulas de ciência da computação? Por exemplo, nos Estados Unidos, o programa Advanced Placement possui uma aula de ciência da computação que aborda bastante dos conceitos básicos de ciência da computação (fluxo de controle, práticas básicas de desenvolvimento orientado a objetos, loops etc.).
Pude frequentar uma escola secundária que oferecia cursos de ciência da computação por basicamente todos os 4 anos (de um curso introdutório até o básico do LIPS, MIPS e Open GL). Acabei testando o básico na faculdade e, em seguida, re-aprendendo muitas das outras línguas e tópicos nos cursos de nível superior. Posso dizer que o cérebro de 14 a 17 anos teve muito mais dificuldade em compreender a teoria do que um cérebro de 18 a 22 anos. Tópicos como recursão, aritmética de ponteiros, programação de baixo nível, topografia de rede e programação funcional levaram muito tempo para eu entrar no ensino médio, mas na segunda vez na faculdade eu os achei muito fáceis, talvez porque eu '
Mesmo sendo difícil, pensar no CS a partir dos 14 anos é extremamente útil. Fazer isso sem professores parece que teria sido complicado. Eu gastaria tempo desenvolvendo páginas da web por diversão, porque era o que eu adorava fazer naquela época (e agora), mas eu nunca teria me ensinado dicas, recursão e LISP por diversão na época.
fonte
Eu, pessoalmente, não começaria com a teoria do hardcore. Eu começaria com a programação prática misturada com alguns elementos da teoria. Poderia manter um muito mais motivado e não assustá-lo.
É, por exemplo, um caso com escolas de música. Uma grande parte dos estudantes desiste porque fica entediada com a teoria e acaba perdendo o interesse.
Além disso, a teoria não é tão boa quando é aprendida antes de você sujar as mãos com a prática. Você não saberá quando e como aplicá-lo.
Mas se você tivesse algum conhecimento teórico, praticou bastante, depois disso, um curso sério em TI o levaria a um nível diferente. Caso contrário, os anos passados em uma universidade são desperdiçados em um ano surdo.
Naquela ordem:
Alguma teoria básica sobre hardware, arquitetura de computadores e programação desse hardware. Apenas básico.
Então desenvolva coisas práticas. Aplicações básicas para manter o interesse. Primeiro local, depois algo com gráficos. Páginas da Web ainda não, pois você deseja demonstrar a programação do servidor e geralmente é inútil sem bancos de dados.
Largue algumas culturas de conhecimento de banco de dados
Faça a interface do aplicativo local com o banco de dados. Então tente o desenvolvimento web.
Ajuste o curso à medida que avança.
fonte
Minha preferência lógica com base no que sei agora:
Descobrir como as coisas funcionam agora - Enquanto você declara que ele é tecnicamente inclinado, até que ponto ele entende como um computador funciona neste momento? Por exemplo, ele entende as diferenças entre marcação e scripts? Que tal escrever pequenos scripts para fazer isso ou aquilo? Essa seria minha sugestão para um ponto de partida, pois desmistificar o que temos ao nosso redor é um bom ponto de partida, considerando todas as coisas que poderiam ser exploradas livremente.
Escolha um idioma, IDE e controle de origem. Agora, embora isso possa parecer um tanto arremessar contra alguém, essas são as ferramentas básicas que, com um pouco de prática, ele pode muito bem passar a coisas maiores. Descobrindo como fazer um "Olá Mundo!" A página da web que tem a mensagem incorporada no JavaScript não é um mau ponto de partida se alguém quiser algo um pouco mais concreto aqui.
Agora comece a adicionar algumas das coisas mais difíceis. Como fazer loops ou condições? Isso ainda não é tão chique, mas ainda estamos no entendimento do estágio básico aqui. Por fim, introduza a ideia de aulas e quais são algumas das idéias por trás desse conceito.
Seria por onde eu começaria se alguém quisesse aprender algumas noções básicas de meu conjunto de habilidades.
fonte
Eu nunca pensei que diria isso, mas pegue Alice 3.0 .
Eu odeio Alice com a fúria ardente de mil sóis, mas definitivamente faz um bom trabalho ao ensinar os fundamentos da programação (loops, declarações, funções etc.) quando acompanhados de um tutorial decente.
Quando ele estiver sólido no básico, passe para uma linguagem baseada em texto mais prática.
fonte
Isso parece razoável. Distribua algumas habilidades básicas e ajude-o a desenvolver uma idéia para um projeto desafiador no qual ele continuará interessado.
Suas primeiras experiências não precisam ser perfeitas, na verdade, ajudará se ele cometer muitos erros mais cedo. Você só quer garantir que ele continue interessado em expandir seus conhecimentos. Quando ele atingir suas limitações, ele estará implorando por ajuda e você poderá apontá-lo na direção certa, se ele ainda não tiver ramificado para fazer referência ao material.
fonte
Compre para ele um livro sobre Desenvolvimento Orientado a Testes. Isso fará com que os testes de unidade sólidos sejam uma segunda natureza. Eu gostaria de ter os testes como o núcleo da minha programação desde o ponto um.
fonte
Eu começaria com uma linguagem baseada em C. Eu descobri que existem mais recursos úteis para eles. Você também pode obter um livro sobre como projetar e formatar seu código para que ele comece usando bons princípios de codificação. Eu tive uma aula dedicada e usamos um livro chamado "Código Limpo" e outro intitulado "Desenvolvimento de Software: Princípios de Design", se bem me lembro. Eu também gostaria de ter sido apresentado a este site mais cedo haha.
O que mais me ajudou foi a obtenção de um estágio no início da minha carreira universitária. Eu fui para as feiras de carreira como calouro e recebi um estágio no meu segundo ano. Também tento ter um projeto em que estou trabalhando o tempo todo e gosto de fazer algo que nunca havia feito antes para continuar aprendendo. No momento, estou trabalhando no uso de uma torta de framboesa e na implementação do Siri da Apple para um sistema de automação residencial.
Basicamente, faça o que for preciso para mantê-lo divertido. Não fique frustrado. Faça pausas. Não fique muito preso em livros. Às vezes, a melhor maneira de aprender é apenas tentar e usar tentativa e erro.
Ah ... e aprenda a usar o Google :)
fonte
níveis são são seguir
não se esqueça de modularizar as coisas quando você ensinar, entendo que ele não entenderá javascript até que ele saiba c / c ++ ou python etc
Adicionado em 04/07/2013
com 14 anos de idade, quando você quiser testar suas mãos na programação primeiro, você precisa entender quais recursos eu precisava para concluir a tarefa, o projeto ou as diretrizes básicas, bem como mencionei no meu post aprender a programação básica primeiro, ele ajudará você Para entender como os programas ou o software funcionam com loop e condição, quando você pensa que entendo tudo, mas não sei como acessar o mouse ou fazer algo quando clico em algum lugar, você experimentará algumas bibliotecas, como gráficos e mouse, para entender como isso funciona, a próxima pergunta virá à sua mente como colocar meus botões e adicionar eventos para que eles possam interagir com o meu código; assim, você gostaria de aprender a programação de eventos e, quando concluir esta etapa, a próxima pergunta surgirá. código e eu não sei como chamar a função é um pouco complicado,então você experimentará modularização, objeto e classes para aplicação,
Depois disso, você pensará que eu sei como criar aplicativos básicos, mas quero criar aplicativos para o banco de dados. O banco de dados vem à mente, você gosta de aprender, mas o problema é que você sente que é difícil se conectar ao código para trabalhar no banco de dados. prompt de comando,
é uma abordagem programática, acredito, eu aprendo da mesma maneira e meus conceitos básicos são claros para que eu possa entender como as rotinas ou programas funcionam,
depois que você entender e ter muita confiança em que você pode fazer com que o aplicativo para desktop tente as mesmas habilidades para HTML
quando você tenta usar o html, se sente muito mais fácil do que o que aprendeu anteriormente, só porque passou muito tempo no básico.
em html, entenda a estrutura e como o código funciona, depois de saber disso, você deseja validar e conectar o banco de dados para o aplicativo, tentar e obter êxito em um dia, pode facilmente construir botões de lugar de formulário e validar com a metade de javascript, então você fará uma pergunta a si mesmo; eu fiz tudo, mas que tal olhar não combina com o que eu vejo na internet? Por isso, tente arduamente com css; tenho certeza de que se você tentar dedicadamente css com o melhor IDE ou Dreamweaver estar apaixonado por hTML / css.
basta criar um aplicativo ou uma Web simples com HTML;
em determinado momento, você fará outra pergunta a si mesmo: como torná-lo dinâmico quando souber que os hiperlinks funcionam bem; depois, o que é dinâmico, vamos pensar no banco de dados, que você aprende previamente ,
sim, esse é o meu ponto, mostrar registros, inserir registros, excluir registros e jogar com o banco de dados localmente com javascript e programação no servidor; então, outro conceito virá à sua mente automaticamente, para criar usuário, validação, sessão, histórico do usuário, internacionalização etc.
e você seguirá em frente sem orientação, porque sua base é clara e você sabe o que fazer e que recurso precisava para concluir a tarefa
isso é todas as etapas. os princípios básicos são etapas muito importantes e certas também. depois de conhecer o básico, você pode aprender facilmente outro idioma ou migrar de um idioma para outro idioma,
obrigado pela leitura
Adicionado em 04/07/2013
progarme nada mais é que um conjunto de instruções e rotinas, por exemplo, nossa rotina diária, acordamos, tomamos banho, almoçamos, trabalhamos, jantamos, dormimos.
mas se errarmos em alguma das tarefas, sentimos desconforto, é se o dia for domingo, quando você não tiver trabalho ou em férias, a condição será alterada e as rotinas diárias também, para que você se combine com outras coisas, como é a abordagem de programação, aprenda da prática, não do que os livros dizem, os livros são bons para referência, mas entendem a maneira natural como reagimos, trabalhamos com a ajuda da declaração if-else, por exemplo: suponha que tenhamos dois trabalhos e ambos sejam muito importantes, mas só podemos fazer um de cada vez, você escolhe o primeiro e conclui e pode ir para casa; se você escolher o segundo, precisará trabalhar nas próximas 5 horas; caso contrário, se concluir o trabalho, você terá 1 dia de folga, isso é sobre a abordagem de programação
fonte