Contexto pessoal: Eu tenho aprendido C ++ formalmente nos últimos 6 meses na universidade. Antes disso, eu me envolvi em JavaScript por um ano. Agora, estou pensando em aprender Python durante um mês fora da escola.
Ao dividir meu foco no início do processo de aprendizado, estou degradando a eficiência do meu aprendizado? Devo passar o mês de folga continuando em C ++? Ou nunca é cedo para aprender um novo idioma?
programming-languages
learning
efficiency
Antecipação
fonte
fonte
Respostas:
Minha experiência com o Python é limitada a algum código de jogo apenas um pouco mais complexo que o hello world, portanto, essa não será uma resposta muito profunda para o python especificamente, mas posso lhe dizer:
As diferenças entre os idiomas estão nos detalhes, como a sintaxe e determinados idiomas específicos serão diferentes (como as diferentes formas de tratamento dos erros, recursos de E / S e como os compiladores convertem sua entrada em algo executável), mas C ++ e Python oferecem o mesmo paradigmas, para que a solução de problemas possa ser feita da mesma maneira nos dois idiomas. Tanto o C ++ quanto o Python são imperativos e orientados a objetos; portanto, você provavelmente entenderá o python rapidamente se estiver familiarizado com o C ++ depois de dominar a nova sintaxe usando técnicas de solução de problemas que você aprendeu com o C ++. Se você quiser, também pode usar o Python para programação funcional, mas nunca toquei nessa parte, por isso não posso falar muito sobre isso.
É muito cedo? Eu realmente não posso contar da sua história em um definitivo sim ou não. Você já está confiante o suficiente para escrever aplicativos completos (GUI) com C ++? (ou seja, use bibliotecas, recursos de linguagem mais complexos, como genéricos e / ou modelos, etc.) Acho que aprender um novo paradigma de idioma é muito mais difícil do que aprender um novo idioma na mesma família de paradigmas. Quando você entra em um novo território de paradigma, precisará gastar muito mais tempo para ter uma boa idéia de como resolver problemas com esse paradigma. Entre as linguagens OO, existem diferenças quanto ao tratamento da herança e como os dados são transmitidos na memória quando você passa um parâmetro / argumento para uma função que afeta o desempenho. Mas, para começar, essas são geralmente de menor preocupação a princípio.
Meu palpite é que, se você está confiante o suficiente com C ++ para fazer algo mais do que o olá mundo de uma maneira elegante, você está pronto para o lançamento. O aprendizado superficial de muitos idiomas o ajudará a entender exemplos de código, independentemente do idioma usado, mas a criação de seu próprio código requer um pouco mais de compreensão de como os idiomas funcionam e como eles diferem entre si.
PS: Quando eu quiser aprender a usar um novo idioma superficialmente, geralmente tentarei o seguinte para entender a sintaxe do idioma e o funcionamento superficial:
fonte
Bem, claro que é.
Sem dúvida, às vezes é muito cedo para aprender uma nova linguagem de programação.
O caso mais simples é se uma linguagem el-stinko surgir e antes que alguém aponte sua inadequação, aprendendo que você danifica seu cérebro. Um casal que vem à mente inclui BASIC, FORTH e APL.
Para um caso mais complicado, um dos grandes cientistas da computação descreveu esse problema, que afirmou muito brevemente: a prática se torna permanente, e há muitas disciplinas que devem ser aprendidas antes de se aprender idiomas de computador, para que o idioma não distorça o entendimento mais fundamental. . Nas suas palavras:
O oponente de apenas mergulhar na programação é chamado Edsger Dijkstra e ele teve uma carreira muito distinta. Ele recebeu o Prêmio ACM Turing com a seguinte citação:
O artigo em que ele descreve o aprendizado prematuro de linguagens de programação é:
"Sobre a crueldade de ensinar realmente a ciência da computação" http://www.cs.utexas.edu/users/EWD/ewd10xx/EWD1036.PDF
Além disso, por favor, não me chame, sou apenas o mensageiro.
fonte
É cedo demais para aprender um novo idioma?
Eu diria que sim. Se você ainda está pensando no próprio conceito de que o computador pode realmente fazer o que você manda, então aprender um segundo idioma provavelmente o confundirá.
Mas se você ultrapassou o ponto em que percebe que o computador faz exatamente o que você manda, não importa o quão estúpido seja, então as chances são de que você tenha uma compreensão suficientemente razoável do seu primeiro idioma, olhando para um segundo (e terceiro). !) O idioma não quebra seu foco.
fonte
Você não pode fazer as duas coisas ?? Eu faria um projeto em C ++ e aprenderia bits do Python (só porque é incrível), você poderia resolver problemas no ProjectEuler.net usando Python
Em geral, acho uma má idéia aprender um idioma, deixá-lo e começar a aprender um novo. Deve-se ser flexível trabalhando com diferentes paradigmas nos estágios iniciais. Mas é exatamente isso que eu penso.
fonte
Para um programador praticante, diria sem reservas que aprender um novo idioma quase nunca é uma má idéia. Para um estudante universitário, eu recomendaria um pouco de cautela, dependendo de quais aulas estão chegando. O motivo é que, em um exame escolar, você frequentemente recita detalhes do idioma sem o benefício de um ambiente de compilação / execução que apontará facilmente seus erros.
Especialmente quando você tem apenas alguns meses de experiência, é muito fácil misturar os detalhes em sua mente. Se você se preocupa com suas notas e está fazendo uma aula com exames como esse, eu seria cuidadoso. No mundo real, isso não é uma preocupação.
edit : eu disse originalmente a sintaxe, mas os detalhes não sintáticos são tão importantes para os professores, e existem muito mais.
fonte
append()
vs.push_back()
de uma lista, algo que até mesmo programadores experientes precisam procurar se não usam um determinado recurso em um determinado idioma há algum tempo. Ser capaz de recuperar a sintaxe no local, sem dúvida, ajuda, mas para a grande maioria dos trabalhos, isso nunca é necessário .