Para mim eu sou uma pessoa C # e Java. Eu acho que esses dois idiomas são bem parecidos, então é mais fácil para eu me cruzar. Não tenho certeza se é uma boa ideia escolher outros idiomas diferentes. Alguma ideia?
programming-languages
Cara Digital
fonte
fonte
Respostas:
Posso pensar em pelo menos cinco razões para aprender um idioma, e parece que você deve aprender um para cada um deles.
fonte
Não se trata de quantas línguas você aprende. É sobre aprender novos conceitos. Alguns idiomas podem ensinar muitos conceitos, enquanto outros podem ensinar apenas um.
Se você conhece C #, provavelmente não aprenderia nada terrivelmente novo aprendendo Java. Mas você faria se aprendesse Haskell.
Portanto, quando você escolhe um novo idioma para aprender, escolha algo que ensine conceitos que você ainda não conhece.
fonte
Eu diria que a coisa mais importante é a capacidade de aprender rapidamente. Dito isto, é importante conhecer diferentes idiomas que são usados para diferentes fins. Por exemplo, eu sei:
1) Python e Perl para a categoria de linguagens de script
2) C ++ como linguagem "framework"
3) Java para aplicativo móvel
4) C para a enorme quantidade de código legado
5) Algumas línguas obsoletas que eu conhecia quando jovem (básico, Pascal, Clipper etc.)
Eu diria que você precisa de pelo menos um idioma principal e um de script. Conhecendo o C #, eu diria que você precisa aprender Python, Perl ou Ruby a seguir. (Eu iria com Python, mas isso é apenas uma questão de preferência).
fonte
É bom aprender uma nova linguagem de programação a cada ano. Mas, em vez de aprender algo semelhante ao que você já sabe, aconselharei a aprender algo radicalmente diferente como Scala ou F #. Ele mostrará novas maneiras de fazer as coisas e, eventualmente, enriquecerá suas habilidades de programação.
fonte
Você deve se concentrar nos idiomas de que precisa e usar para o que está fazendo . Aprender um idioma realmente vem da prática, então você obtém o benefício desse idioma quando o pratica. Se você quiser aprender um novo idioma no seu tempo livre, faça-o implementando-o em tarefas de crescente complexidade, para que você possa realmente lidar com ele.
fonte
concentre-se em nenhum. concentre-se em aprender e escrever código limpo; claro, expressivo, simples e, o mais importante, não duplicado.
vá para os princípios desse tipo de programação, o básico (por exemplo, encapsulamento para OOP; o que significa e o que isso implica) e aprenda alguns princípios
esse material facilitará seu trabalho. isso tornará ainda mais fácil para as pessoas que trabalham com você ou depois de você.
você também precisa conhecer a sintaxe muito bem. mas isso não é algo que leva o seu foco por um longo tempo
e você também deve entender muito bem as tecnologias que usa. mas esses podem ser priorizados de acordo com o nível de complexidade exigido pelos seus negócios.
os dois últimos não são do foco principal, mas de algum foco
fonte
Um programador precisa conciliar a programação, não em uma (s) linguagem (s) específica (s).
fonte
O número necessário para fazer o seu trabalho.
Mas C # e Java são tão próximos quanto o inglês do Reino Unido e o inglês dos EUA. Você pode aprender algo novo indo para finlandês ou navajo.
fonte
Eu não acho que você possa necessariamente dominar um idioma sem ter compreensão suficiente de outros idiomas para ver esse idioma "de fora" por assim dizer. Cada idioma diferente traz outra coisa para a mesa e os conceitos que eles trazem são coisas que você pode levar para os principais idiomas com os quais trabalha.
Portanto, o tempo gasto aprendendo a usar outros idiomas nunca é desperdiçado, mesmo que você não esteja planejando usá-los comercialmente.
O velho ditado é aprender um idioma todos os anos e eu certamente diria que nos primeiros dez anos, mais ou menos, você precisa fazer isso. Talvez além disso, você possa escolher entre explorar alguns dos que já conhece mais profundamente (talvez atualizar seu conhecimento sobre os que aprendeu alguns anos atrás) ou trabalhar com bibliotecas específicas, em vez de acumular novos idiomas sem parar, mas mantendo um olho em explorar a prática da programação através do trabalho com diferentes idiomas é certamente uma ajuda para o seu desenvolvimento como programador.
fonte
Linguagens de programação populares, como C # e Java, manterão você empregado na maioria dos lugares, mas nenhuma é diferente o suficiente uma da outra para aprender novas maneiras de resolver problemas. Eu acho que existem alguns idiomas com os quais você come (os que você usa para fazer seu trabalho) e outros com os quais você brinca. Ambos têm seus propósitos.
Descobri que, ao aprender novas linguagens de programação, também aprendi maneiras novas e mais elegantes de resolver problemas. Não se trata do número de idiomas ou da frequência com que você os escolhe. Cada linguagem de programação que vale a pena aprender tem um ponto de vista único, o que obriga a abordar seus problemas com uma nova mentalidade. Muitas vezes o valor vem do aprendizado dessa mentalidade.
Eu toquei no Smalltalk e adorei. A linguagem foi apenas um prazer de desenvolver. Depois que você se acostumou com os idiomas, eles ajudaram você a ser mais expressivo com seu código. Eu não perdi a digitação estática que você tem em Java / C ++ / C #. Os genéricos com os quais vivemos em nossas linguagens estaticamente tipificadas são realmente construções para contornar as limitações impostas pela digitação estática.
Eu uso Ruby e Ruby on Rails regularmente, embora não para pagar empregos no momento. O princípio de design de Ruby era "aumentar a felicidade do programador". Você precisa amar esse sentimento e, na maioria das vezes, acho que ele transmite.
Eventualmente, o Java seguirá o caminho do lisp e do Smalltalk, e o C # seguirá o exemplo. O que estará lá para tomar o seu lugar continua a ser visto. No final do dia, se você souber como resolver problemas e tiver várias maneiras de dividir e dividir o problema, poderá encontrar um emprego e escolher o idioma de que precisa.
fonte
Quando se trata de manter as habilidades atualizadas e flexíveis, acho que você deve tentar aprender pelo menos uma linguagem de programação completamente nova a cada 6 meses. E eu quero dizer uma linguagem que é muito, muito diferente.
Portanto, ao aprender mais da estrutura .net ao usar C # ou as estruturas Java, você ajuda a manter a flexibilidade, ao aprender que Haskell, Smalltalk, Scala, Clojure ou Ruby expandirá sua técnica e o ajudará a pensar de maneiras diferentes, algumas das quais você pode usar de volta à sua linguagem principal e algumas das quais podem ajudá-lo a seguir em frente se o Java deixar de ser o rei da colina.
Se você nunca aprendeu C, embora sua sintaxe tenha sido trazida para Java, a mentalidade pode ser bem diferente. Vale a pena conhecê-lo em profundidade e, melhor ainda, entender como o código OO pode ser escrito nessa linguagem que parece apenas processual.
Eu recomendo a leitura do livro de Bruce Tate "Beyond Java", que destaca muito bem os perigos de estar em apenas uma linguagem, observando a ascensão e queda do C ++. Embora o C ++ esteja longe de morrer ainda e tenha décadas restantes, está se tornando cada vez mais restrito o uso somente em situações que não podem se beneficiar dos ganhos de produtividade em outros idiomas. Por outro lado, o Sinatra, uma estrutura em rubi, permite criar um serviço da Web simples em cerca de 6/7 linhas de código, o equivalente em C ++ pode ser uma ordem de magnitude maior que isso.
fonte
Quando você não é um falante nativo de inglês, pelo menos você deve se concentrar em melhorar seu inglês . Estou dizendo isso com base na minha experiência. Compreender essa linguagem me ajudou muito.
Todos os bons materiais (livros, artigos, código, etc.) para aprender linguagens de programação, tecnologias e novos conceitos são escritos em inglês.
fonte
Idiomas são ferramentas para realizar o trabalho. Alguns idiomas são bons para alguns tipos de problemas, outros geralmente são bons em todos os tipos de resolução de problemas. Eu recomendo aprender novos idiomas à medida que forem surgindo. Não fique obcecado com o que está na moda neste mês, mas aprenda o que eles podem fazer, no que são bons. Meu conselho é 1 novo idioma por ano. Eles saem mais rápido do que isso, mas você deseja colocar novas ferramentas em sua caixa de ferramentas, não ser o garoto novo e elegante da moda.
Um ensaio que fala sobre as diferenças de idiomas é "Beat the Averages", de Paul Graham. Eu recomendo a leitura, mas uma parte importante está aqui (ele usa "Blub" como uma linguagem hipotética para que você não discuta sobre o que seu idioma favorito pode fazer):
{recorte}
http://www.paulgraham.com/avg.html
A maioria dos aplicativos que enviamos são escritos em C # ou VB. Quando precisamos adicionar scripts a um aplicativo, escolhemos o Python (Lua foi a escolha do segundo colocado). Estamos aprendendo F # porque isso pode fazer algumas coisas novas e difíceis de explicar e entender, se tudo o que sabemos é C # / Java / VB.
fonte
Bem, primeiro de tudo, há várias linguagens que são muito difíceis de evitar para a maioria dos programadores: javascript, sql, c, etc., para que você possa se familiarizar com elas, elas não vão desaparecer.
também é uma boa idéia conhecer uma linguagem de script tipada por pato ... por exemplo, uma de perl, python, ruby, lua etc. essas são incrivelmente úteis para uma enorme variedade de problemas, incluindo a automação de grande parte de sua própria rotina diária.
para melhor ou para pior, você provavelmente também encontrará c # e / ou java em algum momento, eles são bastante difundidos.
de qualquer forma, não se limite artificialmente. aqueles codificadores que conheço que explicitamente evitam pegar ferramentas interessantes parecem ter visões de mundo enclausuradas e impacto limitado.
fonte
Isso poderia se tornar outro especialista versus debate generalista em certo sentido. Algumas pessoas podem passar um longo tempo conhecendo um idioma em grandes profundidades, o que funciona bem para eles. Outras pessoas podem gostar de saber um pouco sobre vários idiomas diferentes, o que funciona bem para eles. A maioria das pessoas está entre esses dois extremos.
Se você deseja sugestões de idiomas para explorar, aqui estão algumas idéias:
Programação funcional - Haskell ou Lisp seriam exemplos aqui e a mudança de paradigma pode ser um pouco assustadora até certo ponto.
Específico ao banco de dados - PL / SQL ou T-SQL vem à mente como algo que pode ser útil se você deseja fazer mais trabalhos de back-end com sistemas que requerem um banco de dados para algumas de suas funcionalidades.
Idiomas da web da interface do usuário - o ActionScript ou o Javascript seriam exemplos aqui dos idiomas usados nos Rich Internet Applications, embora o AIR possa fazer com que alguns aplicativos de desktop usem chamadas da Web em alguns casos, como o Twhirl, usando a API do Twitter.
Essas são apenas idéias e, dependendo de onde você quer estar, podem ser úteis ou inúteis para você. Boa sorte com as escolhas que você fizer.
fonte
Um programador precisa conhecer três idiomas: C, inglês e outra coisa.
C é muito uma linguagem central, está perto da máquina e possui regras de sintaxe comuns a várias linguagens de alto nível. C obriga você a pensar em coisas como estruturas de dados de uma maneira muito diferente do Java. Além disso, os vms Python e Ruby são construídos em C, e você pode incorporar C nos dois idiomas quando quiser aumentar sua velocidade.
O inglês é a linguagem comum da programação. A maioria dos livros, relatórios técnicos, sites técnicos e documentos de periódicos são publicados primeiro em inglês e, às vezes, exclusivamente em inglês. Além disso, se o inglês não é o seu primeiro idioma, o aprendizado do inglês expandirá seu kit de ferramentas para manipular conceitos (isso vale para os falantes de inglês que também aprendem outro idioma, é claro).
O Something Else deve ser uma linguagem que não seja processual, ou não esteja estaticamente tipada, ou seja fortemente orientada a objetos, ou de alguma forma seja fundamentalmente diferente de C. Haskell, Scala, Python, Ruby, algum dialeto Lisp, qualquer que seja .
Depois disso, você poderá aprender o que sua situação específica exigir, provavelmente C # ou Java.
fonte