Qual Linguagem escolher para começar a aprender?

Concordo plenamente com o amigo pq passei por isso,
e complementando que o java vc já inicia aprendendo do jeito certo.[/quote]

porque?[/quote]

Devido a maioria dos tutorias forçar o OO.[/quote]

Java por si só é totalmente orientada a objetos então provavelmente usando ela não hà como sair desse paradigma. Mas digo em questão, se algum dia um profissional precisar usar uma outra ferramenta(outra linguagem) como c++, ou c no caso de um sistema embarcado se ele só conhece java, devido ao nível de abstração que ela tem do hardware esse profissional vai passar muitas dificuldades.

Dependendo do tipo da aplicação você precisar ter mais contato com o hardware real. Um exemplo disso é dar suporte a uma webcam para um aplicativo java.

Concordo plenamente com o amigo pq passei por isso,
e complementando que o java vc já inicia aprendendo do jeito certo.[/quote]

porque?[/quote]

Devido a maioria dos tutorias forçar o OO.[/quote]

Java por si só é totalmente orientada a objetos então provavelmente usando ela não hà como sair desse paradigma. Mas digo em questão, se algum dia um profissional precisar usar uma outra ferramenta(outra linguagem) como c++, ou c no caso de um sistema embarcado se ele só conhece java, devido ao nível de abstração que ela tem do hardware esse profissional vai passar muitas dificuldades.

Dependendo do tipo da aplicação você precisar ter mais contato com o hardware real. Um exemplo disso é dar suporte a uma webcam para um aplicativo java.[/quote]

concordo com você nisso, porém se ele obtiver essa necessidade o nível dele terá que ser outro e não somente aprendizado.

Concordo plenamente com o amigo pq passei por isso,
e complementando que o java vc já inicia aprendendo do jeito certo.[/quote]

porque?[/quote]

Devido a maioria dos tutorias forçar o OO.[/quote]

Java por si só é totalmente orientada a objetos então provavelmente usando ela não hà como sair desse paradigma. Mas digo em questão, se algum dia um profissional precisar usar uma outra ferramenta(outra linguagem) como c++, ou c no caso de um sistema embarcado se ele só conhece java, devido ao nível de abstração que ela tem do hardware esse profissional vai passar muitas dificuldades.

Dependendo do tipo da aplicação você precisar ter mais contato com o hardware real. Um exemplo disso é dar suporte a uma webcam para um aplicativo java.[/quote]

concordo com você nisso, porém se ele obtiver essa necessidade o nível dele terá que ser outro e não somente aprendizado.[/quote]

olha, acho que você tem razão nisso. Como java abstrai boa parte do hardware talvez seja melhor para aprender por ter menos com o que se preocupar.Para aprender e praticar algoritmos não precisa saber de hardware.

Eu penso diferente. Para começo você deve aprender uma linguagem sem OO para não confundir e aprender bem a lógica de programação. Tipo eu comecei aprendendo Pascal Estruturado e depois Pascal Orientado a Objetos. Depois de ter aprendido um pouco dessas linguagens daí aprendi java OO. Assim fica mais fácil porque você já tem boa noção da lógica de programação.

eu aprendi usando uma linguagem de médio nível como c. Ter noção de ponteiros me ajuda até hoje mesmo quando uso java, mas creio que para estudar lógica isso seja desnecessário, não acha?

Uma boa opção também são as linguagens de scripts. Com elas você vai “pegando as manhas” da lógica de programação com o tempo.
Além disto, costumam apresentar um ambiente de desenvolvimento bem mais simples, com um ciclo do tipo “escrevo - executo” ao invés do Javão tradicional “escrevo - compilo - executo”.

Parece bobagem tirar um passo a mais, mas te da um ganho bacana.

Sou suspeito pra falar, mas gosto muito de Groovy.

eu aprendi usando uma linguagem de médio nível como c. Ter noção de ponteiros me ajuda até hoje mesmo quando uso java, mas creio que para estudar lógica isso seja desnecessário, não acha?[/quote]
Não sei. Foi legal eu ter começado com pascal, uma linguagem um pouco mais baixo nível que java, pois assim além de eu ter aprendido lógica de programação sem me preocupar com OO, eu aprendi ponteiros e arrays(possuem também em java, mas uso muito pouco pois os Collections da vida faz o trabalho chato) e hoje sou mais feliz ^^.

Não faz muito tempo eu estava na mesma dúvida que você e escolhi Java por alguns motivos.

C# é uma linguagem de propriedade da Microsoft e, por isso, fica sujeita às evoluções/decisões tomadas/determinadas pelo rumo que a empresa decidir tomar, ao meu ver, empresas de grande porte, como bancos, instituições financeiras etc…, não querem ficar sujeitas a essas variações, e, na maioria desses casos optam por java, pois podem trocar de plataforma na hora em que quiserem, caso a Oracle decida parar com o Java, podem criar suas próprias JVM’s e seguirem independentes. Continuo achando isso e não me arrependo de ter escolhido Java, e hoje vejo que dá para ser produtivo também, mas exige mais conhecimento do programador, mas pela média salarial que tenho visto, acho que paga melhor que C#. Quanto à sintaxe e outras coisas, não esquente sua cabeça com isso agora, a sintaxe, seja de C# ou de Java, vc vai aprender com o tempo e prática, ou, como falaram acima, noites sem dormir, cafés etc…

Espero poder ter ajudado.

Abraços

[quote=kicolobo]Uma boa opção também são as linguagens de scripts. Com elas você vai “pegando as manhas” da lógica de programação com o tempo.
Além disto, costumam apresentar um ambiente de desenvolvimento bem mais simples, com um ciclo do tipo “escrevo - executo” ao invés do Javão tradicional “escrevo - compilo - executo”.

Parece bobagem tirar um passo a mais, mas te da um ganho bacana.

Sou suspeito pra falar, mas gosto muito de Groovy.[/quote]
Com certeza essas linguagens de script são boas para começo. Pena que quando comecei com pascal não conhecia elas.
Groovy é muito bom, e você pode mais tarde chamar classes groovys compiladas no java e vice-versa. Além do mais tem o grails que é um framework que usa o groovy e te dá muita agilidade no desenvolvimento web.

[quote=Ivan Sotelo Codo]Não faz muito tempo eu estava na mesma dúvida que você e escolhi Java por alguns motivos.

C# é uma linguagem de propriedade da Microsoft e, por isso, fica sujeita às evoluções/decisões tomadas/determinadas pelo rumo que a empresa decidir tomar, ao meu ver, empresas de grande porte, como bancos, instituições financeiras etc…, não querem ficar sujeitas a essas variações, e, na maioria desses casos optam por java, pois podem trocar de plataforma na hora em que quiserem, caso a Oracle decida parar com o Java, podem criar suas próprias JVM’s e seguirem independentes. Continuo achando isso e não me arrependo de ter escolhido Java, e hoje vejo que dá para ser produtivo também, mas exige mais conhecimento do programador, mas pela média salarial que tenho visto, acho que paga melhor que C#. Quanto à sintaxe e outras coisas, não esquente sua cabeça com isso agora, a sintaxe, seja de C# ou de Java, vc vai aprender com o tempo e prática, ou, como falaram acima, noites sem dormir, cafés etc…

Espero poder ter ajudado.

Abraços[/quote]

No quesito “fechado” pode acreditar que a especificação java é mais que a dot net. Em termos de linguagem também.
Existe um padrão iso que regulariza c# assim como a linguagem c ansi.

Escolha cobol…é a melhor

Você não utiliza nenhum if, else, if/else? Nenhum for? while, do/while? switch/case?

Isso tudo é P estruturada…

Java não é 100% OO.

Claro, faça uma página web com cobol, já que é a melhor!!!

Cobol é uma linguagem estabelecida, com mercado bom e aprendizado médio (fica entre aprender PHP e C# ou java).
Embora alguns digam que pode-se programar OO em cobol, nunca vi mais gordo…

Sabe uma outra linguagem interessante pra aprender? Lisp

É pouco usada? Sim. Mas no entanto é uma das linguagens introdutórias no MIT.

Como vantagens cito:

  • A sintaxe é mínima (quase inexistente)
  • Fácil de aprender
  • Emprega o paradigma funcional e portanto já te habitua pra algo que vai ser sua realidade no futuro
  • Você usa a abordagem declarativa mais que a imperativa, ou seja, te ajuda a focar na descrição do problema a ser tratado

Se quiser, pode brincar com Clojure, que é um dialeto Lisp que pode ser executado direto na JVM

[quote=kicolobo]Sabe uma outra linguagem interessante pra aprender? Lisp

É pouco usada? Sim. Mas no entanto é uma das linguagens introdutórias no MIT.

Como vantagens cito:

  • A sintaxe é mínima (quase inexistente)
  • Fácil de aprender
  • Emprega o paradigma funcional e portanto já te habitua pra algo que vai ser sua realidade no futuro
  • Você usa a abordagem declarativa mais que a imperativa, ou seja, te ajuda a focar na descrição do problema a ser tratado

Se quiser, pode brincar com Clojure, que é um dialeto Lisp que pode ser executado direto na JVM[/quote]

Boa também.

O importante é entender conceitos.
Linguagens, por mais complexas, são apenas repetição de sintaxes e palavras chaves.
Lógica e conceitos de OO são perenes, linguagens, mudam sempre.

Você não utiliza nenhum if, else, if/else? Nenhum for? while, do/while? switch/case?

Isso tudo é P estruturada…

Java não é 100% OO.[/quote]

todos os blocos do software são obrigados a estar dentro de objetos, então não é estruturada. Diferentes de pascal e c.
c++(multi paradigma) e object pascal não são estruturadas(isto é se você usar realmente “c++” e “object pascal”). A maioria das pessoas confundem c++ e opascal com c e pascal.

[quote=drsmachado][quote=kicolobo]Sabe uma outra linguagem interessante pra aprender? Lisp

É pouco usada? Sim. Mas no entanto é uma das linguagens introdutórias no MIT.

Como vantagens cito:

  • A sintaxe é mínima (quase inexistente)
  • Fácil de aprender
  • Emprega o paradigma funcional e portanto já te habitua pra algo que vai ser sua realidade no futuro
  • Você usa a abordagem declarativa mais que a imperativa, ou seja, te ajuda a focar na descrição do problema a ser tratado

Se quiser, pode brincar com Clojure, que é um dialeto Lisp que pode ser executado direto na JVM[/quote]

Boa também.

O importante é entender conceitos.
Linguagens, por mais complexas, são apenas repetição de sintaxes e palavras chaves.
Lógica e conceitos de OO são perenes, linguagens, mudam sempre.[/quote]

isso é uma grande verdade, embora conceitos de OO não sejam necessários para se construir bons softwares. Vide linux, gimp, inkscape que são escritos em c.

[quote=juliocbq][quote=drsmachado][quote=kicolobo]Sabe uma outra linguagem interessante pra aprender? Lisp

É pouco usada? Sim. Mas no entanto é uma das linguagens introdutórias no MIT.

Como vantagens cito:

  • A sintaxe é mínima (quase inexistente)
  • Fácil de aprender
  • Emprega o paradigma funcional e portanto já te habitua pra algo que vai ser sua realidade no futuro
  • Você usa a abordagem declarativa mais que a imperativa, ou seja, te ajuda a focar na descrição do problema a ser tratado

Se quiser, pode brincar com Clojure, que é um dialeto Lisp que pode ser executado direto na JVM[/quote]

Boa também.

O importante é entender conceitos.
Linguagens, por mais complexas, são apenas repetição de sintaxes e palavras chaves.
Lógica e conceitos de OO são perenes, linguagens, mudam sempre.[/quote]

isso é uma grande verdade, embora conceitos de OO não sejam necessários para se construir bons softwares. Vide linux, gimp, inkscape que são escritos em c.[/quote]

Em nenhum momento afirmei que bons softwares são feitos apenas com OO. Veja a galeria de softwares bancários, feitos em cobol, clipper e uma infinidade de linguagens PE.

Você não utiliza nenhum if, else, if/else? Nenhum for? while, do/while? switch/case?

Isso tudo é P estruturada…

Java não é 100% OO.[/quote]

todos os blocos do software são obrigados a estar dentro de objetos, então não é estruturada. Diferentes de pascal e c.
c++(multi paradigma) e object pascal não são estruturadas(isto é se você usar realmente “c++” e “object pascal”). A maioria das pessoas confundem c++ e opascal com c e pascal.[/quote]

Independente de onde estejam, ter objetos não significa que seja orientada a objetos.
Veja na internet a quantidade de artigos, posts e tudo o que se imagina quanto ao fato de java não ser 100% OO.
Nem mesmo SmallTalk é 100% OO.

[quote=drsmachado][quote=juliocbq][quote=drsmachado][quote=kicolobo]Sabe uma outra linguagem interessante pra aprender? Lisp

É pouco usada? Sim. Mas no entanto é uma das linguagens introdutórias no MIT.

Como vantagens cito:

  • A sintaxe é mínima (quase inexistente)
  • Fácil de aprender
  • Emprega o paradigma funcional e portanto já te habitua pra algo que vai ser sua realidade no futuro
  • Você usa a abordagem declarativa mais que a imperativa, ou seja, te ajuda a focar na descrição do problema a ser tratado

Se quiser, pode brincar com Clojure, que é um dialeto Lisp que pode ser executado direto na JVM[/quote]

Boa também.

O importante é entender conceitos.
Linguagens, por mais complexas, são apenas repetição de sintaxes e palavras chaves.
Lógica e conceitos de OO são perenes, linguagens, mudam sempre.[/quote]

isso é uma grande verdade, embora conceitos de OO não sejam necessários para se construir bons softwares. Vide linux, gimp, inkscape que são escritos em c.[/quote]

Em nenhum momento afirmei que bons softwares são feitos apenas com OO. Veja a galeria de softwares bancários, feitos em cobol, clipper e uma infinidade de linguagens PE.[/quote]

Eu sei. Estou concordando com você. Não disse o contrário no meu post.