por que eles não ensinam essas coisas na escola?
<p>durante o verão, tive a sorte de entrar no google summer of code. aprendi muito (provavelmente mais do que aprendi na soma de todos os meus cursos universitários). estou realmente me perguntando por que eles não ensinam algumas das coisas que aprendi mais cedo na escola. para nomear alguns:</p><ul> <li>teste de unidade</li> <li>controle de versão</li> <li>desenvolvimento ágil</li> </ul><p>parece-me que eles passam uma quantidade significativa de tempo ensinando outras coisas como estruturas de dados e algoritmos antecipadamente. embora eu ainda ache que são muito importantes para aprender desde o início, por que eles não ensinam mais esses três antes deles? ou é apenas a minha escola que não ensina muito disso?</p><p>não me interpretem mal, não acho que seja desejável que as universidades sempre ensinem os modismos mais modernos da programação, mas meus professores não deveriam estar me ensinando algo além de "desenhar um diagrama antes de começar a codificar?"</p>
<p>a resposta mais simples para sua pergunta é que os campos da ciência da computação e do desenvolvimento de software são muito novos e pouco compreendidos. embora todas as disciplinas científicas e de engenharia estejam avançando mais rapidamente nos tempos modernos, outros campos têm muito mais experiência para aproveitar e há uma compreensão compartilhada muito mais ampla de como elas funcionam.</p><p>por exemplo, apesar dos recentes avanços na ciência dos materiais, os engenheiros civis sabem há cerca de 2000 anos como construir um arco que não cairá, e isso é algo que pode ser ensinado e aprendido na universidade com relativamente pouca controvérsia. embora eu concorde totalmente com você sobre as técnicas que os desenvolvedores de software devem aprender, esse contrato é baseado na experiência pessoal e no raciocínio informal. para ser uma "melhor prática" aceita socialmente, precisamos de dados quantitativos que podem ser muito caros para reunir: quanto o controle de versão ajuda? como isso ajuda? teste de unidade? podemos argumentar sobre a eficácia de várias técnicas, mas na verdade provar que a eficácia seria muito cara. precisávamos executar um projeto de software completo e realista do começo ao fim, inúmeras vezes, com grupos de programadores com experiência equivalente, usando técnicas diferentes. no mínimo, precisaríamos de muitos dados sobre projetos existentes que esses projetos não estariam dispostos a liberar.</p><p>os engenheiros civis têm milhares de anos de pontes para examinar, com muitas informações. os desenvolvedores de software, por outro lado, têm apenas algumas décadas de informações, a maioria das quais é mantida em segredo, uma vez que há pouca motivação para as organizações coletarem e publicarem informações sobre a eficácia de seus desenvolvedores, mesmo que estejam coletando (o que geralmente não é necessário). 't).</p><p>há também alguma confusão de campos. desenvolvimento de software, ou "engenharia" de software, é realmente uma coisa diferente da ciência da computação. os desenvolvedores de software precisam de um conhecimento prático da ciência da computação, mas trabalhar nos limites da complexidade algorítmica ou raciocinar sobre paralelismo não é algo que um programador que trabalha faz todos os dias; da mesma forma, um verdadeiro "cientista da computação" escreverá um monte de código descartável que simplesmente não funciona ou não faz nada de interessante e não se beneficiará tanto do tipo de rigor que um produto de software real faria.</p><p>o surgimento da internet e da comunidade de código aberto pode fornecer dados suficientes para começar a responder a essas perguntas de maneira conclusiva, mas mesmo que as respostas estejam disponíveis amanhã, provavelmente levará 100 anos para que permeiem a sociedade internacional a ponto de todos concordarem com o que deve ser ensinado nas escolas.</p><p>finalmente, existem algumas considerações econômicas. faz um tempo relativamente curto, já que quase todos os envolvidos no desenvolvimento de software tiveram acesso fácil e barato a máquinas dedicadas para executar as ferramentas de desenvolvimento que desejarem. algumas décadas atrás, dedicar completamente uma máquina apenas para executar seus testes ou até abrigar uma história infinita de código-fonte teria parecido frivolamente caro para muitas pessoas.</p>
<p>eu diria que uma das razões pelas quais a programação funcional não é mais prevalente é a falta de base de conhecimento. minha experiência é que as empresas são muito avessas ao risco em termos de implementação de tecnologias que não são o fluxo principal e preferem investir em estruturas testadas e verdadeiras (java, c ++, c #). é somente quando há uma necessidade comercial (como na ericsson) que novos paradigmas são considerados. mas mesmo no caso da ericsson, ouvi dizer que a gerência exigia que o c ++ fosse usado e joe armstrong foi obrigado a codificar chamadas erlang em c ++ !! isso deve mostrar como as empresas estão relutantes em implementar novas tecnologias!</p> muita gente passa muitas horas estudando mas nem sempre isso significa que estão realmente absorvendo  conteúdo. outras pessoas confundem decorar com estudar e são coisas bem diferentes. e existe ainda um terceiro caso que são as pessoas que não tem os conhecimentos básicos e querem aprender os avançados e ai perdem muito tempo e na maioria dos casos não conseguem aprender e se frustam.  não importa quantas horas você vai estucar, o que realmente importa é o quanto vai aprender. boa sorte. <p>olá, idelilde! tudo bem contigo? espero que sim!!</p>
<p>eu sei bem o que você está sentindo neste momento. dá a impressão de que tudo que você viu em lógica ficou lá atrás e que não absorveu nada, não é?</p>
<p>pois eu te digo que isso não é verdade!!!</p>
<p>quando fiz pela primeira vez o curso e parti para uma linguagem específica vi que minha base em lógica não tinha ficado tão sólida como eu imaginava. e qual foi minha saída? busquei muita informação sobre lógica e não somente escrevia os códigos no computador... eu escrevi a mão, até eu decorar a estrutura! isso me fez vez com uma certa clareza o que era uma variável, qual a importância e como trabalhar com ela, como funcionava a estrutura do <strong>if</strong>, do <strong>for</strong> e do <strong>while</strong> e assim por diante!</p>
<p>meu conselho? para um pouco ou, caso consiga, estude em paralelo a lógica de programação. quando você sentir que esta mais confiante tudo vai começar a fazer sentido. e não pense que está longe não! se você já passou por lógica esta mais perto de compreender do que você imagina! a internet está repleto de informações sobre lógica ;-)</p>
<p>um detalhe importantíssimo!!!</p>
<p>lógica é algo que vai te acompanhar p/ resto da sua vida em programação. </p>
<p>sempre temos que praticar!!!</p>
<p>espero ter ajudado, idelilde!!!</p>
<p>estaremos sempre aqui para o que precisar.</p>
<p>bateu a dúvida....travou? nos procure!!!</p>
<p>bons estudos e vamos em frente!!!</p> <p>olá carlos!</p>
<p>é sempre uma boa prática separarmos as classes do nosso sistema pois se fazemos tudo em somente uma acabamos pendendo para o paradigma estrutural e não para o orientado a objetos.</p>
<p>isso também facilita na manutenção do código.</p>
<p>espero que tenha ajudado! :d</p>
<p>bons estudos! ^^</p> parte disso é para garantir que todas as pessoas tenham uma certa base de conhecimento e habilidade necessária para operar como membro da sociedade. leitura, escrita e aritmética são habilidades que basicamente todos usam em suas vidas diárias. além disso, qualquer sociedade avançada precisa de especialistas com formação avançada. como ninguém sabe quando são jovens o que farão quando envelhecerem, todos os alunos precisam ter a oportunidade de explorar diferentes áreas de possível interesse. essas classes também precisam garantir que aqueles que buscam educação adicional em uma especialidade tenham o conhecimento básico necessário para ingressar nas aulas avançadas com os fundamentos necessários para o sucesso. ter uma compreensão básica de certos assuntos fundamentais também ajuda a dar-lhes perspectiva e discernimento que podem beneficiá-los, tanto interagindo com pessoas de outras disciplinas, como também promovendo uma perspectiva ampla que pode beneficiar qualquer pessoa. <p>eu estava pesquisando há algumas semanas atrás por algumas informações sobre as metodologias de desenvolvimento do google e encontrei o seguinte que eu <a href="http://www.chrisdoesdev.com/?tag=methodologies">publicado no meu blog</a> </p><ul> <li>steve y - good agile vs bad agile</li> <li>um resumo das metodologias do google no post de steve y</li> <li>processo de gerenciamento/desenvolvimento de produtos do google</li> </ul><p>no entanto, não posso postar mais de um link no momento (prevenção de spam de troca de pilha aparentemente), então siga o link para o meu blog ou pesquise no google as strings acima.</p><p>chris.</p> bom dia vander, há muitos sites e empresas que fornecem aprendizado gratuíto na internet, você pode optar por esses que eu conheço e indico, são muito bons: 


microsoft:


<http://technet.microsoft.com/pt-br/bb291022>


<http://www.codelines.com/manualvb/manualvb.htm>


<http://www.microsoftvirtualacademy.com>


[www.http://channel9.msdn.com/browse/allcontent?lang=pt](http://www.http://channel9.msdn.com/browse/allcontent?lang=pt)


dell:


<http://content.dell.com/br/pt/empresa/d/campaigns/treinamento>


c++ :


<http://algoritmizando.com/desenvolvimento/curso-de-programacao-em-c-gratis/>


boa sorte!!! Reconheço sua preocupação com o futuro da sua filha, mas sendo franco, ainda é muito cedo para você pensar em prepara-la para uma vida acadêmica no exterior. Ela ainda é uma criança do inicio do ensino fundamental.  

Não há cursos de línguas para crianças que abranja preparação para o universo acadêmico. Via de regra, os cursos de Inglês são desenvolvidos considerando o nível intelectual e para uma alfabetização concomitante dos estudantes, para a idade e o tempo deles.  

Crianças e adolescentes possuem a capacidade de se desenvolver e aprender uma nova língua muito mais fácil e rápido do que os adultos, se a sua filha for introduzida aos estudos da língua agora (com 8 anos) e der continuidade a isto de forma efetiva e sistemática, espera-se que ela seja bilíngue bem antes de estar na idade de ingressar numa universidade (o que deve ocorrer daqui a uns 10/11 anos).  

Quanto a que tipo de Inglês estudar (Americano do norte OU Europeu), tenho dito que os diversos cursos regulares, ainda que tenham materiais de "origem ou editoras Britânicos", a maioria possui predominância do Inglês Americano não dando portanto a opção de escolha, na verdade muitos são um mix de ambos e ainda com bastante "Inglês Internacional" (falado por não-nativos) e, isto eu considero muito bom (muito recomendado por mim), este é o "pulo do gato" para o ensino e para o aprendizado moderno do Inglês.   

Para finalizar, quando sua filha estiver mais próxima da idade de ir para a universidade, ela poderá fazer um cursinho extra de Inglês específico para fins acadêmicos, inclusive para realização de exames de admissão em universidades estrangeiras (há diversos, como o TOEFL).  

Blz! olá jovem, seja muito bem vindo ao fórum. 
parabéns por ter iniciado tão cedo os estudos de programação. desejo excelente aprofundamento, mas não descuide da educação formal convencional (colégio, faculdade etc.). os caminhos não são excludentes, pelo contrário, eles são complementares. 
qualquer dú… as tecnologias de informaã§ã£o sã£o muito ãºteis na pedagogia, jã¡ que podem ser ferramentas importantes na facilitaã§ã£o do aprendizado dos alunos. as tecnologias digitais vem sendo cada vez mais utilizadas nas escolas como ferramentas para auxiliar os professores no dia a dia das salas de aula e com isso, os alunos tãªm tido a oportunidade de acesso as tecnologias, tenso a possibilidade de aprender os conteãºdos clã¡ssicos escolares de uma forma diferente e que muitas vezes chama mais a atenã§ã£o dos mesmos. assim, se usada de maneira correta, as tecnologias digitais podem ser muito ãºteis no aprendizado dos alunos.