Qual a linguagem escolher

Também é uma hipotese, mas certamente será mais confuso do que não usar OO numa linguagem não-OO. ;)
Claro que o C++ é, na minha opinião, um mau exemplo. Tiras-lhe o OO e lá se vão as vantagens de usar C++ que, na minha opinião, já são poucas, tanto relativamente ao C como ao Java.

De qualquer forma, mesmo o Java é mais detalhado que o Scheme, por exemplo. A minha opinião é que quando-se está a começar, deve se usar uma linguagem o mais simples possível a nível da escrita do código, de forma a parecer mais natural e próximo do que escrevemos no dia-a-dia.
 
Última edição:
eu penso que o C é uma boa opção. não conheço Pascal, mas pelo que ouço falar também me parece indicada.

Java ou C#

C nao é nada facil.

discordo totalmente, programar CORRECTAMENTE em Java é muito mais complicado do que em C, pois é necessário aprender programação Orientada aos Objectos, o que não é assim tal fácil.
 
discordo totalmente, programar CORRECTAMENTE em Java é muito mais complicado do que em C, pois é necessário aprender programação Orientada aos Objectos, o que não é assim tal fácil.

Isto ouve-se cada uma aqui... java é como beber água. c não necessariamente.

meu percurso:
basic -> clipper -> pascal -> assembly -> c -> java -> .net c#

(e prolog algures pelo meio)

hj em dia o k faço é 95% c#.

Convém começares por perceber estruturas de dados (listas ligadas, listas duplamente ligadas, arvores, o raio k o parta.... ), algo que podes aplicar em quase qualquer linguagem, basicamente sugiro que comeces por algo onde tenhas 1 objectivo, alguma coisa onde aplicar a linguagem, sempre facilita.

Depois podes passar para bases de dados, onde tens uma linguagem de sintaxe, SQL, e outras declarativas PL-SQL (Oracle) T-SQL (SQL Server) etc

depois tens uma serie de linguagens web, php, cfm (macromedia), lasso, asp que basicamente servem para tu gerares HTML dinamicamente. isto sao linguagens do lado do servidor. se precisares de funcionalidade do lado do cliente usas javascript, ou em ajax com chamadas assincronas a funcoes do servidor.


aprender por aprender n te leva a lado nenhum, primeiro há q saber (e necessitar) aplicar.

concluindo e baralhando, deves começar por C.

e isto porque: ninguem começa a aprender frases sem saber as letras primeiro.
e isto porque 2: a mais baixo nivel ja eh exagero e nao vais precisar de saber nada disso.
 
Última edição:
Isto ouve-se cada uma aqui... java é como beber água. c não necessariamente.
Quem nunca programou em POO acredita que não é como beber água. Dá muitas dores de cabeça e depois como o Rui_Carlos disse é necessário programar sob um conjunto de regras, como por exemplo a correcta identação do código.

C e JAVA são as duas linguagens muito poderosas, mas como já disse é melhor começar por C.
Isto porque se reparares a maioria das linguagens deriva do C. E não é por acaso que na maioria das faculdades se ensina o C primeiro.
 
Quem nunca programou em POO acredita que não é como beber água. Dá muitas dores de cabeça e depois como o Rui_Carlos disse é necessário programar sob um conjunto de regras, como por exemplo a correcta identação do código.

C e JAVA são as duas linguagens muito poderosas, mas como já disse é melhor começar por C.
Isto porque se reparares a maioria das linguagens deriva do C. E não é por acaso que na maioria das faculdades se ensina o C primeiro.
Estás a falar do java? Correcta identação?
Isso é uma boa prática, mas não um requisito, pelo menos não em java (nem em C)...

Então ainda não se lembram das dores de cabeça que a alocação de memória vos deu quando tentaram, pela primeira vez, programar em C? E os apontadores (*)? E que tal apontadores para apontadores (**)?!

Java é muito mais amigável, já que não tens de andar a mexer nessa tralha toda. É mais simples, mais fácil, mais intuitivo, e muito mais prático e produtivo :P
 
encapsulamento, hierarquias, interfaces, excepções, etc. será que isto é assim tão simples?

será que criar uma classe que implemente uma lista ligada (por exemplo) é assim tão simples em Java? parece-me que a diferença para C não é assim tão grande.
a diferença é que em Java já temos isso feito e é só fazer um import e consultar a API da classe. em C temos o trabalho de implementar as funções (ou então vamos ao Google que certamente aparece lá alguma coisa...), mas em contrapartida também ficamos a perceber como as coisas funcionam.
 
Estás a falar do java? Correcta identação?
Isso é uma boa prática, mas não um requisito, pelo menos não em java (nem em C)...

Então ainda não se lembram das dores de cabeça que a alocação de memória vos deu quando tentaram, pela primeira vez, programar em C? E os apontadores (*)? E que tal apontadores para apontadores (**)?!

Java é muito mais amigável, já que não tens de andar a mexer nessa tralha toda. É mais simples, mais fácil, mais intuitivo, e muito mais prático e produtivo :P


Pois é, nisso tens razão. Agora JAVA é muito mais abstracto que C. Para um iniciante convém escrever código sozinho e não andar a consultar APIs com código feito.
 
Vejamos o clássico "Hello, World!"

Em Python é assim:

Código:
print "Hello, World!"

Acham que arranjam algo mais simples que isto? Eu aconselho Python para começar se bem que já tentei algumas vezes mas por uma razão ou por outro fui deixando mas já sei algumas coisas.
 
[knap];1148090 disse:
Vejamos o clássico "Hello, World!"

Em Python é assim:

Código:
print "Hello, World!"

Acham que arranjam algo mais simples que isto? Eu aconselho Python para começar se bem que já tentei algumas vezes mas por uma razão ou por outro fui deixando mas já sei algumas coisas.
Diz-me que tás a brincar... :rolleyes:

Tu queres provar que uma linguagem é simples com um programa do mais simples que há?
Pá, eu não tenho expriencia com Python, mas do que sei, Python está longe de ser mais simples até que Java. Python até tem uma das coisas mais nojentas, horríveis e sei-lá-mais-o-que que alguem alguma vez se lembrou de por na sintax de uma linguagem de programação: identificação de blocos através da identação.

http://en.wikipedia.org/wiki/Image:IDLE_Windows.png
Não me parece muito simples.

Mas o que foi de facto mau foi o teu exemplo.
Vou provar que Lisp é a linguagem de programação mais simples de sempre!
(format "Hello world!")
Melhor! Se escreveres "Hello World" o interpretador escreve no ecrã HELLO WORLD! Está claramente provado que Lisp é a liguagem mais simples do mundo! :rolleyes:

Por acaso até acho que o Lisp é, sintáticamente, MUITO simples, mas não vou provar isso com um hello world...
 
(...) Python até tem uma das coisas mais nojentas, horríveis e sei-lá-mais-o-que que alguem alguma vez se lembrou de por na sintax de uma linguagem de programação: identificação de blocos através da identação.
:wow: Diz-me que não falas a sério. Primeiro desde quando é que identação é horrível? Se há linguagem que é possível ler decentemente sem olhar para a documentação essa linguagem é Python, e todos sabemos que dos maiores problemas da programação hoje em dia é legibilidade de código de outros. Supera e de longe quaisquer parentisis.

Fica aqui um parágrafo da Wikipedia que achei interessante.
Wikipedia disse:
Python is notable amongst current popular high-level languages for having a philosophy that emphasizes the importance of programmer effort over that of computers and for rejecting more arcane language features (readability trumps speed and expressiveness). Python is often characterised as minimalist, though this only applies to the core language's syntax and semantics; the standard libraries provide the language with a large number of additional libraries and extensions.
E se isto não te parece simples... :rolleyes:
 
:wow: Diz-me que não falas a sério. Primeiro desde quando é que identação é horrível? Se há linguagem que é possível ler decentemente sem olhar para a documentação essa linguagem é Python, e todos sabemos que dos maiores problemas da programação hoje em dia é legibilidade de código de outros. Supera e de longe quaisquer parentisis.

Fica aqui um parágrafo da Wikipedia que achei interessante.
E se isto não te parece simples... :rolleyes:

A identação é boa mas não quando a funcionalidade do programa depende disso!
Exemplo: se não estou em erro, o Emacs, em certos modos, não põe tabs mas sim espaços. Lá se vai o programa por causa do editor de texto. Achas isso bom? Eu acho irritante, no mínimo. A identação deve ser feita mas não deve ser a sintax da linguagem a obrigar a isso! Deve ser uma prática do programador e sim, eu também acho horrível codigo não identado. Quem não acha?

Quanto a superar os parentises, é discutivel. A mim faz impressão ter blocos aninhados com espaços, é uma questao de gostos. Eu cá prefiro as minhas S-expressions! :D
Já agora, não estou a conseguir relacionar o que o facto da identação servir para criar blocos aninhados tem a ver com o facto de ter de olhar para a documentação.

Quanto há simplicidade, obviamente que eu estava a críticar a falsa ideia de simplicidade que o [knap] estava a tentar passar. O bocado de código é simples, mas comparando com o Hello World é relativamente complexo. Simplesmente acho que não se deve comparar uma linguagem de programação através de um Hello World. Shoot me for that!

PS: Não leves isto a peito, opiniões valem o que valem...
 
O pessoal tá aqui é para debater. :) Né nada a peito.

Sim eu percebi o teu POV, um Hello World não mostra nada. ;)

Quanto ao facto da documentação, o meu ponto era dizer que identação e código o mais limpo possível de caracteres não legíveis, tipo "{[()]};", melhora em muito a legibilidade do código. And that's Python.

Quanto aos tabs e spaces, Python usa tanto uns como outros. A regra é: linhas seguidas que começem com uma sequência de caracteres-espaço iguais fazem parte do mesmo bloco de código. Logo tanto podes usar tabs como espaços. Exemplo:

Código:
def funcao(n):         # 0 espaços
 if n==0:              # 1 espaço (dentro da função)
      print 'lol'      # 1+5 espaços (dentro do if)
      return 1         # 1+5 espaços (idem)
 else:                 # 1 espaço (dentro da função)
  return 2             # 1+1 espaço (dentro do else)

funcao(2)              # 0 espaços (fora da função)
 
Última edição:
Ok, um grande menos mal! :p Se não há diferença entre o espaço e tab e os números de espaços, não é tão grave, mas ainda assim...
Pá, não gosto de ver as coisas assim sem estarem delimitadas.

Não estou a dizer que gosto, como tu disseste, de ter 'n' elementos diferentes delimitadores. Gosto de ter o menos possível mas o suficiente para conseguir ver claramente em que bloco estou.

Além disso, como disse há pouco, diferentes editores de texto podem interpretar esses caracteres de maneiras diferentes, o que pode ser chato.
 
Mas porque é que ninguém aconselha o Visual Basic? Eu aprendi em QBasic, passei para VBDOS e agora estou no Visual Basic 6 (windows). Pelo menos aprendem-se as bases da programação ao mesmo tempo que fazemos qualquer coisa de jeito (RAD rings a bell?). Para um programador não profissional, é o que eu aconselho. Programas superficiais; rápidos; brincadeiras; etc...

Para prog's mas avançados, ou sérios, ou até Sistemas Operativos, C/C++ - usados para programar Unix, Windows e Linux (mas isto já veio de uma fonte menos fiável :-D)

Visual Basic é a minha opção

Cumps [[[[[[[[[[]]]]]]]]]]
angelofwisdom
 
C e' normalmente uma boa solucao para quem comeca, em grande parte por se tratar de uma linguagem procedimental. Se optares pelo C existem varios livros em Portugues. Um dos livros e' o "Fundamental da Programacao em C" da Editora FCA que e' muito completo e tem a vantagem adicional de ser pequeno. Felicidades.
 
10 Programming Languages You Should Learn Right Now

www.eweek.com disse:
1. PHP
What it is: An open-source, interpretive, server-side, cross-platform, HTML scripting language, especially well-suited for Web development as it can be embedded into HTML pages.
Why you should learn it: It's particularly widely used. "High-speed scripting with caching, augmented with compiled code plug-ins (such as can be done with Perl and PHP) is where the future is. Building Web apps from scratch using C or COBOL is going the way of the dinosaur," said Duquaine.
Job availabilities: 1,152*

2. C#
What it is: A general-purpose, compiled, object-oriented programming language developed by Microsoft as part of its .NET initiative, it evolved from C and C++
Why you should learn it: It's an essential part of the .Net framework. "Learning C#, which is just Java with a different name plate, is critical if you heavily use Microsoft," said Duquaine.
Job availabilities: 5,111

3. AJAX (Asynchronous JavaScript and XML)
What it is: Though technically not a programming language, AJAX uses XHTML or HTML, JavaScript and XML to create interactive Web applications.
Why you should learn it: Ever since Google Maps put AJAX, well, on the map, the requests for AJAX-knowledgeable pros went through the roof. "The demand for AJAX knowledge is huge because it's so damned hard to learn," said Huckaby. Of note, Microsoft announced recently plans to release a tool named Atlas that will make AJAX easier to implement. "If Microsoft's Atlas tool is successful, it would bring the extreme complexity and annoyance of AJAX to the average worker," said Huckaby.
Job availabilities : 1,106

4. JavaScript
What it is: Not to be confused with Java, JavaScript is a an object-oriented, scripting programming language that runs in the Web browser on the client side. It's smaller than Java, with a simplified set of commands, easier to code and doesn't have to be compiled.
Why you should learn it: Embedded into HTML, it's used in millions of Web pages to validate forms, create cookies, detect browsers and improve the design. With its simplicity to learn as well as wide use, it's considered a great bang for your educational buck.
Job availabilities: 4,406

5. Perl
What it is: Perl is an open-source, cross-platform, server-side interpretive programming language used extensively to process text through CGI programs.
Why you should learn it: Perl's power in processing of piles of text has made it very popular and widely used to write Web server programs for a range of tasks. "Learning some form of scripting language, such as Perl or PHP is critical if you are doing Web apps," said Duquaine.
Job availabilities: 4,810

6. C
What it is: A standardized, general-purpose programming language, it's one of the most pervasive languages and the basis for several others (such as C++).
Why you should learn it: "Learning C is crucial. Once you learn C, making the jump to Java or C# is fairly easy, because a lot of the syntax is common. Also, a lot of C syntax is used in scripting languages," said Duquaine.
Job availabilities: 6,164, including all derivatives

7. Ruby and Ruby on Rails
What they are: Ruby is a dynamic, object-oriented, open-source programming language; Ruby on Rails is an open-source Web application framework written in Ruby that closely follows the MVC (Model-View-Controller) architecture.
Why you should learn it: With a focus on simplicity, productivity and letting the computers do the work, in a few years, its usage has spread quickly. As a bonus, many find it easy to learn.
Job availabilities : 210 and 54, respectively

8. Java
What it is: An object-oriented programming language developed by James Gosling and colleagues at Sun Microsystems in the early 1990s.
Why you should learn it: Hailed by many developers as a "beautiful" language, it is central to the non-.Net programming experience. "Learning Java is critical if you are non-Microsoft," said Duquaine.
Job availabilities: 14,408

9. Python
What it is: An interpreted, dynamically object-oriented, open-source programming language that utilizes automatic memory management.
Why you should learn it: Designed to be a highly readable, minimalist language, many say it has a sense of humor (spam and eggs, rather than foo and bar), Python is used extensively by Google as well as in academia because of its syntactic simplicity.
Job availabilities: 811

10. VB.Net (Visual Basic .Net)
What it is: An object-oriented language implemented on Microsoft's .Net framework.
Why you should learn it: Most argue that VB.Net is currently more popular than ever and one of the only "must-learns." "It is currently dominating in adoption and that is where all the work is," said Huckaby.
Job availabilities: 2,090
* All numbers on job availability were pulled from nationwide queries on Dice.com, a job site for technology professionals.

Link do estudo:http://www.eweek.com/article2/0,1759,2016415,00.asp?kc=EWRSS03119TX1K0000594
É de salientar q a ordem nao tem a ver c a necessidade apenas foi colocada assim p um mero acaso e sem ordem especial.
 
Eu se fosse a ti começava com pascal é bastante simples e depois passava para C que vai dar mais dores de cabeça porque tens apontadores e trabalhas com a memoria e alocaçoes de memoria.

Podes começar por java nunca utilizei mas pelo que vi parece-me simples.

Acho que tens e mesmo que escolher uma linguagem simples (java ou Pascal) e depois tentares aprender C que é uma linguagem bastante flexivel e da qual derivam muitas linguagens.

Qualquer que seja a linguagem que prentendas aprender vais ter que te aplicar e tens que gostar daquilo aconselho-te a comprar um bom livro sobre essa linguagem e leres e ao mesmo tempo ir treinando..

Não te esqueças que programar não é só no pc vais ter por vezes que fazer desenhos e que imaginar no papel como vao as coisas funcionar acredita que vais resolver assim os problemas mais complicados
 
Não te esqueças que programar não é só no pc vais ter por vezes que fazer desenhos e que imaginar no papel como vao as coisas funcionar acredita que vais resolver assim os problemas mais complicados
That's correct :)

Estou a ver que o Visual Basic não é muito popular :lol:
Nesse caso, digo Delphi para aplicações e PHP/HTML/Javascript para Web Development ;)
 
Não sou engenheiro informático ne nehum autodidacta em termos de informática, mas asseguro que Java não é dificil de aprender...até um toto como eu aprende java...!
Sou matemático, s calhar tenho raciocinio logico pa coisa...mas nao m oriento pq nunca sei que comandos utilizar...:P
 
normalmente não existem muitos comandos em programação e preciso é saber utilizar o que temos e dar grandes voltas para fazer coisas simples mas é isso que é bonito em programação é como conseguimos com uma linguagem restrita fazer tanta coisa.

Claro que existem funções prefeitas que fazem praticamente tudo mas é mais fixe seres tu a fazer e perceber o que tens que fazer
 
Back
Topo