O que você acha? Qual é a sequência ideal de aprendizado de linguagem de programação que abrangerá a maioria das linguagens e paradigmas mais usados atualmente, além de ajudar a compreender conceitos, idéias e práticas comuns de programação? Você pode até sugerir sequência de aprendizado para paradigmas, e não para idiomas.
NB: Essa é a porta da pergunta que fiz no stackoverflow e foi fechada por ser subjetiva e argumentativa.
programming-languages
Gulshan
fonte
fonte
Respostas:
Python, Lisp, C, Haskell
Assumindo que a pergunta era sobre uma sequência de aprendizado ideal para iniciantes em programação (como os veteranos da programação terão sua própria sequência de aprendizado (provavelmente acidental)), sugiro ler o ensaio de Norvig sobre como aprender programação em 10 anos ;
Python : comece com uma linguagem dinâmica, de alto nível, OO e funcional. Porque é realmente importante que os iniciantes se sintam produtivos o mais rápido possível, e não deve ser desativado por sintaxe estrangeira, falta de bibliotecas, falta de multiplataforma, falta de recursos de aprendizado e falta de comunidade. O Python é altamente legível, possui inúmeras boas bibliotecas (especialmente bibliotecas científicas - um cientista / engenheiro moderno deve saber programar), é facilmente executado na maioria dos sistemas operacionais, possui vários tutoriais e livros gratuitos inteiros e geralmente é fácil de usar - enquanto continua sendo poderoso o suficiente para crescer com você, à medida que se torna um programador avançado trabalhando em grandes problemas. Também é importante reforçar convenções importantes + úteis para um iniciante: a legibilidade do código conta MUITO, e você deve escrever código para você e outras pessoas entenderem prontamente.
Lisp: Em particular, pelo menos vasculhe The Structure and Interpretation of Computer Programs ou assista aos vídeos do SICP , e tenha os olhos bem abertos ao ver os fundamentos e o poder expressivo da programação - é possível fazer muito com tão pouco. Aprenda como o Lisp pode expressar não apenas o paradigma funcional, mas OO, lógico / declarativo e muito mais - como a criação de novas linguagens específicas de domínio. Leia o PAIP de Norvig para testemunhar o que um mestre pode fazer com o idioma. Então confira Clojure , um dialeto Lisp moderno que pode ser uma das Próximas Grandes Coisas.
C: Somente porque é a língua-franca da computação. :) Possivelmente opcional nos dias de hoje, se alguém é principalmente um programador em um domínio específico que não é de software. Acho feio, mas vale a pena conhecer para apreciar o hardware subjacente. Vá com K&R , é claro.
Haskell : Poder funcional puro. Onde atual Com.Sci. teoria e poder expressivo prático se encontram. Veja o mundo real Haskell .
Após o tour acima, seria muito hábil em resolver problemas e expressar soluções em código, e ficar totalmente à vontade com os paradigmas aqui :
fonte
É assim que eu faria:
Python (ou Ruby ou Lua): uma linguagem interpretada, sem tipos, você pode fazer coisas em poucas linhas. Biblioteca enorme (Python é o melhor para isso, eu acho). Você pode se aprofundar em algoritmos porque não há distrações. Nenhuma compilação necessária, basta executar. Além disso, no Python, você ensina implicitamente bom estilo, já que o recuo no Python é obrigatório. Você também pode ensinar orientação a objetos (em Lua é mais um problema). O objetivo aqui é se divertir muito e mostrar ao aluno o que pode ser feito.
C ++ (ou talvez Java): uma linguagem rápida e digitada. Se você precisar de Orientação a Objetos, já conhece alguns conceitos. A idéia principal é "traduzir" o que você fez em Python e fazê-lo com as novas restrições (principalmente tipos). Agora, se você tiver os conceitos corretos, adicionar tipos não é um problema. O próximo passo é pensar em um nível mais baixo (Java não ajuda aqui) e ensinar bem os ponteiros . Com isso, quero dizer explicar um pouco sobre o espaço de endereço, a CPU, o SO, para que você possa começar a ver o programa. Uma linguagem compilada introduz a distinção entre interpretação e compilação, muito útil para explicar o que é linguagem de máquina etc.
Montagem : Finalmente, não há mágica, você apenas fala com a máquina. Há um debate sobre a sintaxe da Intel e GAS, não é importante. Se você possui MIPS, acredito que seja melhor para o ensino, mas suponho que o x86 seja mais conveniente, pois é mais difundido (x86_64 é melhor, pois possui mais registros e detalhes). Você apenas precisa remover parte da complexidade e permitir que os alunos investiguem mais, se quiserem.
(Esses três primeiros são a "profundidade". Até agora, descemos até você tocar o fundo, que é "próximo ao metal", como eles dizem. Acho que isso é muito importante, muitas questões na programação são resolvido quando você tem uma idéia clara do que está acontecendo. Quando você sabe disso, pode adquirir mais conhecimentos com confiança.)
Esquema (ou Common Lisp ou Clojure): Como o @dukeofgaming disse, as linguagens Lisp permitem que você ensine bem a recursão (para esse esquema é melhor, pois não possui loops explícitos). Mas eu ensinaria duas outras coisas: fechamentos e macros. Macros são o que separa os idiomas Lisp dos outros. Pessoalmente, não gosto de macros do Scheme, mas isso não é muito importante. Eu acho que as macros do Clojure são boas, por exemplo (mas a recursão no Clojure não é tão limpa, pois a JVM não possui recursão de cauda). Os fechamentos são um conceito muito importante, depois que você os grava, "vê" o Javascript instantaneamente. Tendo estudado C ++, Python e Lisp, o Javascript se torna "trivial".
Haskell : Para uma linguagem funcional, não acho que você possa vencer o Haskell. Lisp e Scheme são considerados funcionais, mas para enfatizar a programação funcional, você deve forçar os alunos a pensar sem estado. Haskell também tem outras coisas muito legais, como curry e correspondência de padrões para "desestruturar". Não conheço muito Haskell, mas a concisão do código que você pode escrever é simplesmente linda. Conhecer bem Haskell facilita muito o caminho para entender Erlang.
Quarto : Uma linguagem de pilha. Isso interrompe totalmente sua lógica novamente (se Lisp e Haskell não foram suficientes). Eu iria até o ensino de Jones Forth, já que eles conhecem assembléia e então você pode entender totalmente o que está acontecendo. (Saber adiante abre o PostScript, por exemplo.)
(Portanto, esses três últimos são a amplitude que você estava dizendo. Para mim, essas línguas são estranhas o suficiente para mudar sua maneira de pensar. Elas fizeram por mim pelo menos. E eu acho que com essas, você entende paradigmas suficientes para aprender um novo idioma. muito rapidamente.)
Opcionalmente, você pode estudar estes:
SmallTalk : uma linguagem puramente orientada a objetos. Para ver o que acontece quando você leva a sério a Orientação a Objetos, o idioma não precisa de "se", "para". Tudo é uma mensagem: grande realização novamente. (Isso facilitaria o Objective-C agora.)
Ir : Um idioma (bonito) com ênfase na simultaneidade. Acho Go muito agradável e confortável para programar.
Prolog : Outro paradigma de programação. Não escrevi nenhum prólogo, mas entendo que é mais uma linguagem alucinante.
fonte
Sério, eu posso ter aprendido BASIC, COBOL, Fortran, Forth, Pascal e Prolog no meu tempo, mas eu nunca precisei particularmente usá-los e não vejo realmente como eles influenciaram meu uso de outros idiomas, exceto talvez aplicando paradigmas um do outro. Levei anos para desaprender o BASIC o suficiente para realmente escrever Pascal estruturado, alguns anos para parar de escrever o código Pascal em C e outros dois para realmente entender OOP quando comecei a usar Objective-C e Java. Por outro lado, desde que eu trabalho (quase) exclusivamente em linguagens OO, consegui me concentrar em melhorar meu uso de linguagens OO, sem tentar fazê-las parecer com Scheme ou PostScript.
fonte
É difícil afirmar que qualquer sequência é ideal, mas apresentarei um plano que posso justificar:
C
Aprender C exige paciência e diligência e apresentará as maneiras básicas pelas quais os computadores lidam com dados e mostra quase o conjunto mais amplo de responsabilidades que um programador pode aceitar para lidar com essa máquina.
Perl
Como um antídoto para o rigor exigido por C, tente o Perl inacreditavelmente perdoador. O que levou uma semana para escrever em C, você pode escrever em uma hora em Perl. Ele apresenta um tipo diferente de prazer encontrado na programação e mostra como a exclusão de certas preocupações e detalhes libera o programador para se concentrar em coisas diferentes.
C ++ , ou talvez Java
A seguir, veja como o foco da C nos aspectos primitivos e de baixo nível da programação serve como base para aumentar o nível de abstração, observando as negociações que se faz em eficiência ao subir na abstração. Explore como formar abstrações que ainda podem reter as eficiências importantes para o seu programa.
Lisp comum
Esta é a recompensa pelo trabalho anterior. Você encontrará ecos do que aprendeu em todas as linguagens anteriores e verá como são tolas tantas concessões anteriores ao programar no Lisp. O pré-processador de C e os modelos de C ++ preparam um para apreciar o sistema macro de Lisp. Você recuperará a facilidade de expressão do Perl, as oportunidades de otimização de baixo nível do C, os recursos de criação de abstração do C ++ ou Java e superará todos eles. Nenhum dos três anteriores - talvez, exceto o depurador de Perl - o tenha preparado para a experiência de programação interativa com um REPL capaz ("read, eval, print loop"). Trabalhando com uma imagemambiente baseado em código - que altera o relacionamento entre seu código-fonte e a idéia de um "programa executável" - mudará toda a sua idéia do que significa construir um programa.
Além desses quatro, explorar outros estilos de programação, como programação funcional em Haskell ou programação lógica em Prolog, possibilita uma compreensão mais abrangente da gama de programação - amplo conhecimento, se você desejar -, mas nesse momento seu tempo é melhor servido melhorando seu ofício - conhecimento profundo - com qualquer idioma que você conheça.
Tendo provado idiomas distintos o suficiente, sua visão aumentará para se concentrar nas idéias que transcendem qualquer uma delas. É uma espécie de como a diferença entre aprender a conduzir o carro do seu pai e saber como conduzir qualquer carro: Você pode não gostar de ter de conduzir a locação mini-van por alguns dias, sabendo muito bem os prazeres de dirigir um carro esporte favorito, mas você descobrirá como operá-lo e certamente obterá mais do pobre animal do que um amador.
fonte
1. Smalltalk
Projetado originalmente, pelo menos em parte, como uma maneira de as crianças usarem computadores para aprender. A sintaxe é simples o suficiente para descrever em um parágrafo. Como o LOGO, exemplifica o princípio "baixa barreira à entrada, teto alto".
Smalltalk é uma linguagem OO pura no sentido de que "tudo é um objeto".
Ele também ensina muitas técnicas funcionais, particularmente em sua API Collection: encadear mensagens, funções de ordem superior, mapear, reduzir e assim por diante.
A comunidade Squeak é vibrante e acolhedora. Você também verá muitas discussões sobre técnicas avançadas: assim como a comunidade lisp, há muitos Smalltalkers muito experientes na lista de e-mails dispostos a compartilhar seus conhecimentos. (Não faz mal que a comunidade Squeak tenha uma grande subpopulação de educadores profissionais.) Há também outra lista para iniciantes.
2. PROLOG
Uma linguagem de programação lógica que lhe dará uma visão muito diferente da computação em relação a qualquer outra linguagem. Prolog também é altamente declarativo (mas não completamente): o
!
operador ou cut pode ter um efeito semântico significativo em um predicado).3. Lisp comum
Substitua o esquema aqui, se quiser. O Lisp comum suporta múltiplos paradigmas, especialmente OO e funcionais. Ele também tem uma longa história (o Lisp é a segunda linguagem ainda mais usada: apenas a mais antiga do FORTRAN).
4. Haskell
(Advertência: eu apenas comecei a aprender.) Provavelmente a linguagem funcional mais pura do planeta. Possui um sistema de tipo estático muito avançado. Existem livros de introdução úteis .
5. C ou Delphi
Você precisa saber como os computadores funcionam. Você precisa saber como a memória e a CPU realmente funcionam. Ambos são tradicionalmente "próximos do metal" e têm comunidades que incentivam o pensamento de como sua linguagem é compilada para montagem.
Por que essa ordem?
O Smalltalk é muito fácil de aprender, para que você possa começar a se concentrar rapidamente na solução de problemas, em vez de combater um compilador ("baixa barreira à entrada"). Depois de iniciar a programação, também não há limite artificial para o que você pode fazer - "teto alto".
Depois de ter uma idéia justa de como o OO funciona (e - com a condição de que MUITOS entendimentos diferentes do que "OO" significa - é justo dizer que o OO domina o mercado), migrar para o Prolog garante que você não comece pensando que OO é o único caminho. O prólogo é muito diferente da maioria dos idiomas e alonga seus músculos mentais para que você não comece a pensar que sabe tudo.
Lisp comum, por sua vez, é a linguagem de um adulto. Ele tem um padrão maduro, lidera o design de idiomas há décadas (junto com o Smalltalk) - todos esses novos recursos sofisticados que seu idioma favorito acabou de adquirir? As chances são as idéias incubadas no Lisp ou no Smalltalk. O Lisp comum também é um pouco complicado, e você encontrará verrugas em todos os lugares.
O quarto de Haskell está na lista porque (me disseram: eu apenas comecei a aprender) sua pureza significa que algumas coisas muito comuns (como E / S) são mais difíceis de fazer do que em linguagens menos puramente funcionais. O pessoal da Haskell também usa algumas terminologias bastante exóticas (palavras como "catamorfismo", por exemplo), e você provavelmente se sairia melhor com alguma experiência em programação antes de abordá-la. (Mas devo reiterar, eu apenas comecei a aprender! Tome essa opinião com uma pitada de sal!)
E por que C / Delphi durou? Porque, a menos que você trabalhe em sistemas embarcados, não precisará aprender programação, pensando que o gerenciamento manual de memória é tudo o que existe. A coleta de lixo funcionou bem o suficiente para uma máquina de nível dos anos 80. Seu telefone é tão poderoso!
Finalmente, eu não coloquei Erlang na lista acima, mesmo que eu realmente devesse.
fonte
Pitão. Uma excelente introdução à programação. Isso também estará associado a qualquer exposição anterior à programação.
Esquema. Também é uma excelente introdução à programação. Se você lida com novatos em programação, você pode ensinar isso primeiro e depois o Python. Uma alternativa seria Python primeiro e depois Common Lisp em vez de Scheme: mais trabalho, mas mais recompensa.
C. Uma linguagem de baixo nível que fica próxima ao silício. É bom para aprender o que um computador pode fazer. Você pode substituir alguma forma de linguagem assembler, mas C é bem próximo do básico e muito mais fácil de trabalhar.
Prolog. Como alternativa, substitua qualquer linguagem de uso geral de estilo declarativo, se você puder encontrar uma que mais goste.
Haskell. Para o sistema de tipos e funcionalidade pura, se nada mais.
Existem vários candidatos aqui, pois é impossível cobrir todos os conceitos com seis idiomas. Vale a pena aprender o Common Lisp, mesmo que seja apenas para o sistema macro e o sistema de objetos (que é diferente da maioria dos outros que já vi). Quarto, Tcl e APL são idiomas estranhos que tiveram algum sucesso, e um deles seria bom para impedir que o aluno se sentisse como se tivesse aprendido tudo. Erlang seria bom para simultaneidade.
fonte
Muitas boas respostas foram fornecidas, mas eu não vi ninguém oferecendo SQL. É um animal completamente diferente do que a maioria dos outros listados e muito importante para qualquer programador que precise lidar com bancos de dados.
Você também pode considerar algumas 'linguagens' de script no nível do sistema operacional, como Batch, grep, awk, etc. 'Make' também pode se enquadrar nessa categoria.
Um outro idioma que você pode querer considerar (se ainda não estiver completamente morto) é o COBOL. É suficientemente diferente de outras linguagens processuais que merece alguma menção. Variações de C, Fortran, Basic etc. tornaram-se tão semelhantes que, quando você se familiariza com um, mudar para outro não é um grande problema, mas o COBOL carece de muitas das construções que são consideradas certas nos outros. (Faz mais de 20 anos que não faço nada com o COBOL, portanto, minhas observações podem não ser mais válidas em relação a esse idioma.)
Você pode mencionar o APL apenas do ponto de vista histórico - ou deixá-lo descansar em paz. Sua escolha.
fonte
Eu sugeriria a primeira leitura de Eric Raymonds "Como se tornar um hacker", pois ele tem alguns pontos muito interessantes sobre como começar, incluindo Lisp, que tem a noção "código é dados e dados são código".
Para programação, eu também sugeriria a linguagem Haskell, Prolog, SQL e assembly (apenas algumas).
Independentemente do que você deseja aprender, reserve um tempo para aprender adequadamente e escreva quantidades não triviais de código. É como andar de bicicleta - você não pode aprender com um livro.
fonte
Primeiro> O que você deseja fazer quando começar a programar? Aprender a ser um programador de jogos é diferente de aprender a ser um programador de banco de dados para uma empresa ... é diferente de um programador baseado na Web ...
Segundo> Depois de começar a aprender, você quer começar do alto e trabalhar o seu caminho? Ou comece baixo e suba. Aprender C # (nível alto) é muito diferente de aprender Assembly (nível baixo).
Uma enorme escolha dependerá do que você deseja fazer. A programação de um driver provavelmente incluirá C ou Assembly ... A programação de um site será PHP, C #, asp, etc ... Você não tocará em assembly para programação na Web ... etc ...
No que diz respeito ao básico ... depois de decidir o que você quer fazer, é mais fácil escolher um idioma. Eu, por exemplo, me tornei analista de dados em um hospital. Portanto, minha "escolha" de idiomas é SQL / TSQL / DB2 para acesso a dados, C # WPF para clientes Windows, Silverlight para clientes Web, alguns RPG / CL para lógica de back-end IBM ...
Pessoalmente, mantenho um bom livro + construo seu próprio programa para praticar o idioma. Eu gosto do APress e adorei ler o C # 2008 Illustrated ao aprender C #. Eles têm outros livros que abrangem conceitos básicos para os não instruídos e também para os especialistas.
fonte
Um iniciante precisa de apenas um idioma para começar. Depois de aprender o segundo idioma, ele já está progredindo além de muitos desenvolvedores concorrentes. Eu aprenderia na seguinte ordem:
Você pode perguntar "onde está o C ++?" e o X? Honestamente, o aprendizado de vários idiomas faz algumas coisas: enriquece sua experiência e fornece um impulso para aprender mais idiomas. A lista de linguagens que conheço bem (Java, C #, Ruby, C ++, Javascript) é toda orientada a objetos - mas é principalmente porque é isso que tenho que fazer no trabalho todos os dias. A lista de idiomas aos quais fui exposto (Smalltalk, Python, Erlang, JESS, C, Assembly [Motorola 6502/6510], Go) me ensinou lições valiosas. Eu posso pelo menos entender o que está acontecendo com esses idiomas. Há muita coisa que eu não explorei, mas muito bem pode no futuro. Também existem algumas linguagens de marcação: HTML, XSL: FO, XSLT, CSS, XML, SGML às quais as pessoas precisam de exposição, se quiserem trabalhar com a Web de qualquer forma.
Depois de aprender pelo menos duas línguas diferentes, acho que você não deve restringir o que alguém que deseja aprender decide aprender a seguir. O aprendizado deve ser uma experiência orgânica, e muita estrutura no processo cria um grupo de pessoas que pensam exatamente da mesma maneira. Uma monocultura, por assim dizer.
fonte
A maioria dessas respostas parece mais ou menos a mesma, então vou oferecer uma opinião diferente. Há muito tempo acredito que a melhor primeira língua é o Tcl.
Por quê? Por um lado, é muito fácil de aprender. Não há muita sintaxe na linguagem, portanto o aluno pode se concentrar mais nos conceitos de programação e menos nas peculiaridades sintáticas de uma linguagem específica. Até o momento em que este artigo foi escrito, o Tcl tinha exatamente 12 regras que governam o idioma inteiro (acima das onze nas duas últimas décadas).
Por outro lado, o Tcl vem com uma fantástica linguagem GUI integrada, para que você possa obter uma gratificação relativamente instantânea e aprender o básico da programação orientada a eventos.
Terceiro, é extensível. Quer ensinar sobre um loop de repetição? Você pode escrever um comando que executa um loop de repetição, para que não apenas possa aprender a usar o repeat ... até, como também pode ser diferente de um loop while, porque você mesmo o escreveu.
Além disso, como é extensível, é fácil seguir para C. Você pode aprender o básico de C e aprender como a) estender o Tcl com novos comandos escritos em outro idioma ou b) aprender como adicionar uma linguagem de script a um programa escrito em C.
Depois de aprender Tcl e C, a maioria dos outros idiomas fica entre esses dois extremos e deve ser relativamente fácil de entender. Minha lista completa, com as quatro que eu ensinaria depois de Tcl e C, são:
fonte
Linguagem Assembly, C, SQL, C #
Eu sei, chato e velho skool. E toda a questão ignora a parte realmente difícil da programação, que é a solução de problemas, modelagem de domínio e construção de algoritmos. Mas aqui está o porquê:
você não pode fingir na linguagem assembly; você entende ou não. o compilador não salvará você, não há sobrecarga de estrutura ou biblioteca e você não pode se esconder da arquitetura da máquina; é pura programação (no nível iniciante, adicione dois números)
depois de escrever alguns programas em linguagem assembly com mais de algumas centenas de linhas, os ponteiros e o gerenciamento de memória não são mais misteriosos e você deve ter começado a perceber padrões no código (if, switch, array, loops etc.) ) C traz esses padrões para a luz do sol e os deixa brilhar. A biblioteca padrão é útil sem ser imensa, mas não se preocupe com macros / templates / etc. nesta fase.
agora pule para bancos de dados com SQL. Não exagere nos procedimentos armazenados, apenas obtenha o básico de tabelas e consultas.
depois de escrever alguns programas em C com mais de algumas centenas de linhas, ponteiros, estruturas e gerenciamento de memória são uma segunda natureza e as construções processuais são velhas amigas. Você começará a notar padrões de ordem superior: essas funções sempre acompanham essa estrutura de dados, essa parte do código é exatamente igual à parte do código, exceto pelos métodos X, Y e Z, e assim por diante. Acrescente a isso sua compreensão de dados relacionais e agora você está pronto para uma linguagem orientada a objetos. Com uma estrutura massiva e documentação geralmente obtusa. Bem-vindo ao mundo real! Explore GUIs, escreva aplicativos de desktop, escreva sites, escreva serviços web, escreva o que quiser. Vá conseguir um emprego, se você é tão inclinado.
Você é agora um Jedi de programação? Um ninja de código? Não , agora você é meramente competente. Mas você tem uma base sólida para explorar as novas e divertidas coisas divertidas.
fonte
Você precisa dos fundamentos:
Depois disso, provavelmente não importa.
fonte
OK, este é o último dia da recompensa. E estou adicionando minha resposta. Minha sequência sugerida
C, C ++, JAVA / C #, Python / Ruby, Qualquer outra linguagem (Assembly / Lisp / Prolog etc)
fonte
Esquema, C, C ++
Serei tendencioso e usarei o modelo que minha universidade atualmente usa em seu currículo principal de Ciência da Computação. Eu fui contra durante o meu primeiro ano, mas nos últimos anos sou grato por isso. O modelo baseia-se em não exigir nenhuma experiência em programação, mas exigir a capacidade de aprender.
Esquema
Nós somos que você está aprendendo a programar primeiro, quanto menos mágica, melhor. A linguagem de ensino do Scheme apresenta uma definição clara e razoável de uma língua, um conjunto realmente pequeno de axiomas (a "mágica") que você pode construir e expandir. Qualquer pessoa que entenda as funções da matemática pode rastrear e raciocinar com os programas do Scheme. Começando com o Scheme fornece uma maneira limpa e poderosa de pensar em computação sem se preocupar com os detalhes específicos do idioma.
C A
mudança de Scheme para C é drástica, mas permite que você aprenda sobre o mapeamento muito importante de idiomas de alto nível para idiomas de baixo nível. Aprender o modelo de memória (ponteiros, pilha, pilha etc.) e como os programas são compilados e executados, como ponteiros, pilha e pilha funcionam são habilidades essenciais. Através desse entendimento de baixo nível, você pode começar a analisar programas em um nível superior (Big O). Você pode começar a rolar seus próprios tipos de dados abstratos, jogando com diferentes implementações (por exemplo, uma tabela de hash simples versus uma árvore binária de um conjunto).
C ++
Ao aprender C e Scheme, começamos a ver diferentes paradigmas de linguagens de programação e como elas podem se aplicar a diferentes problemas. Agora você pode abordar os aspectos mais assustadores da programação: escolhas e trocas. A escolha da linguagem de programação pode afetar o desempenho, a legibilidade, a manutenção, a robustez etc. Para resolver problemas maiores do que aquilo que você pode ter em sua mente, essa escolha é ótima, mas também perigosa. O C ++ tenta fazer o menor número possível de opções para o programador. Ao aprender C ++, você aprenderá como fazer essas trocas e escolhas para resolver seus problemas.
Você pode não usar nenhum desses idiomas na indústria ou nunca tocá-los novamente, mas o processo de aprendê-los ajuda a entender outros idiomas que você usará. Outro aspecto é que você aprende as ferramentas em torno de um idioma específico. Executando o gcc na linha de comando, aprendendo o Vim, percorrendo um programa usando o GDB, criando arquivos Make, verificando código usando o SVN, escrevendo scripts de shell para automatizar testes etc.
Lembre-se de que o currículo principal também possui outros cursos (arquitetura de computadores, estruturas e algoritmos de dados, compiladores, sistemas operacionais etc.). Portanto, apenas o aprendizado dessas linguagens não é suficiente para ser proficiente em programação.
fonte
Indo de um idioma básico para um de alto nível é o caminho a percorrer. Dessa forma, você ainda tem uma idéia do que está acontecendo nas costas.
fonte
Pitão. Para fazer as coisas, faça uma programação comum. Procedimental, OO e (até certo ponto) funcional.
Expressões regulares. Eles estão na biblioteca Python, mas é um DSL separado.
Shell (BASH ou o que for). O "&", "|", ";" operadores para combinar processos são críticos e desagradáveis no Python.
SQL Esta é - por enquanto - a língua franca para acesso a dados.
XHTML. Esta é - por enquanto - a língua franca para apresentação de dados.
CSS.
Talvez C, se necessário.
fonte
Comece perto do metal:
Agora, o problema com uma abordagem tão ampla é que ninguém pode se tornar nem remotamente capaz nesses idiomas sem anos de estudo.
A menos que sua intenção seja ensiná-los "Olá, mundo", que deve levar cerca de um mês para todos os 6.
fonte
Por que não entrar direto e aprender VB ou C #. Na minha opinião, ambos são idiomas completos, do iniciante ao avançado, imho.
fonte