Programação - qual das linguagens devo aprender "C, C++ ou Java" ?

Autor Mensagem
Guilherme 90
Veterano
# jan/10
· votar


Bog
Aprendi fazendo. Mas na verdade, comecei porque toda vez que ia jogar o gorilla.bas ou o nibbles.bas, olhava para aquele monte de textos e comecei a achar que aqueles ifs todos pareciam fazer algum sentido. =P

kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk

Bog, eu li seriamente seu texto e vou segui-lo, eu estou me apavorando demais sem precisar, para que eu fico me cobrando a aprender isso, sabe...

Vou entrar na faculdade esse ano, é o que eu mais quero cara, estudar, formar, arrumar em emprego bom e ir pegando a prática com o tempo.

2. Nao fique correndo atras de pilhas e pilhas de livros. Voce soh vai aprender mesmo com a pratica. E sim, isso vai levar tempo. Nao conheco uma unica pessoa que tenha virado um BOM desenvolvedor de software com menos do que um punhado de anos de pratica. Note que eu usei o termo "desenvolvedor de software", e nao "programador", ja que voce tambem parece estar confundindo as duas coisas (ainda).

Me diz, qual a diferença básica de um cara desenvolvedo e um programador ?

adnz
Veterano
# jan/10
· votar


guilherme_90
Antes de entrar na faculdade eu também fiquei meio preocupado que eu não sabia muita coisa. Mas a faculdade te ensina MUITA COISA MESMO! E coisas extremamente úteis... Então acho que você vai aprender alguma coisa cedo ou tarde.

Bog
Veterano
# jan/10
· votar


guilherme_90
Me diz, qual a diferença básica de um cara desenvolvedo e um programador ?

Na verdade, a diferença é meio que imposta por um modelo de produção que a engenharia de software tentou levar da engenharia para a produção de software. Sabe a diferença entre o eletricista e o engenheiro elétrico? Ou melhor, entre o pedreiro e o engenheiro civil?

Então, alguém teve a brilhante idéia de chamar de "programador" o "pedreiro" do software. Um empilhador de códigos. Alguém que faz o trabalho manual, em contraste com o trabalho intelectual do "desenvolvedor". Mas no caso de software, é uma distinção bem discutível, para falar bem a verdade. Muita gente não concorda. EU não concordo, exceto em tarefas repetitivas e mecânicas (e que hoje em dia, muitas vezes são codificadas automaticamente por alguma ferramenta mágica). Mas é bom estar atento para isso, porque quando me formei (2002), a maior parte das vagas para "programador" era sim para empilhadores de códigos, tradutores de diagramas, pedreiros de software.

Em uma conversa com o ROTTA, ele me disse que algumas boas empresas estão tomando juízo e abandonando esta idéia - aliás, estão também abandonando o termo "engenheiro" de software, e adotando o "arquiteto" de software., que para mim também é muito mais adequado. Mas saiba que muita gente ainda torce o nariz para alguém que se diz "programador", e acha que isso é função para estagiário ou recém-saído de curso técnico.

Black Fire
Gato OT 2011
# jan/10
· votar


No meu curso a gente programa em C, é util pra automatizar cálculos.

Guilherme 90
Veterano
# jan/10
· votar


adnz

Não se cheguei a te perguntar isso, mas você formou em que ?

Bog

pedreiro e o engenheiro civil?
O engenheiro faz todo o planejamento da construção, e o pedreiro que constroi o seu projeto..


Mas esse termo de falar que um programador é o "pedreiro" do software é bom ou ruim ? Porque muitos ganham bem...

Bog
Veterano
# jan/10
· votar


guilherme_90
Mas esse termo de falar que um programador é o "pedreiro" do software é bom ou ruim?

Bom, isso parte do pressuposto de que o trabalho do programador é "burro", repetitivo e sem criatividade. Decida você se isso é bom ou ruim.

Porque muitos ganham bem...

... mas bem menos do que um analista ou desenvolvedor.

Mas eu não posso falar muito da realidade do mercado atual, já que dei uma boa olhada nele quando estava no final da faculdade e saí correndo do que vi, hehahah.

adnz
Veterano
# jan/10
· votar


guilherme_90
Não sou formado. Estudo ciência da computação.

Guilherme 90
Veterano
# jan/10
· votar


Bog
Bom, isso parte do pressuposto de que o trabalho do programador é "burro", repetitivo e sem criatividade.

Isso é ruim, bem ruim, programador burro é osso. Um analista por exemplo precisa saber muito bem programação e a fundo de algumas linguagens ?

adnz
Como que é o curso ?

Guilherme 90
Veterano
# jan/10
· votar


Black Fire

Já ta sabendo muita coisa ou apenas o básico ?

Bog
Veterano
# jan/10 · Editado por: Bog
· votar


guilherme_90
Isso é ruim, bem ruim, programador burro é osso.

Não é que programador é burro. É que há quem acredite que o trabalho de programador não exige muito esforço intelectual. O burro neste caso seria o trabalho, não o programador.

Um analista por exemplo precisa saber muito bem programação e a fundo de algumas linguagens ?

Depende do que você quer dizer com saber muito bem programação. Conceitos gerais entram aí? Porque um analista precisa conhecer UML, design patterns, ferramentas de desenvolvimento, algoritmos em geral e outras coisas que saem bastante da sintaxe desta ou daquela linguagem. Aliás, conheço um punhado de gente que mal sabia programar e foi trabalhar de analista. Em parte, é bem esse pessoal que se coloca acima dos "pedreiros", que "sujam as mãos". Eles lidam muito mais com clientes e suas demandas impossíveis, prazos, diagramas, e o software de um jeito mais abstrato do que com o código propriamente dito. Para entender, pergunte a um bom mestre de obras se ele conhece um engenheiro que sabe fazer um reboco bem feito.

No mais, mais uma vez você parece estar confundindo desenvolver software com conhecer a sintaxe de uma linguagem de programação. São coisas diferentes. Tem projeto que é todo descrito de um jeito abstrato, em diagramas e design patterns - e nesses casos, a programação é quase que um trabalho mecânico (obviamente, estes não são TODOS os casos, e é ISSO que leva à polêmica sobre os programadores serem "pedreiros de software").

Apelando de novo para analogias, programar é como escrever um romance: embora o idioma usado possa influenciar na forma como você conta a história, em pricípio a história em si (i.e. os eventos que ocorrem, os personagens, etc) é uma coisa diferente do texto que conta a história. Muitas vezes, você pode contar a mesmíssima história em outro idioma, com outras palavras, ou mesmo em outra mídia, sem perder o conteúdo. Às vezes, o sujeito nem domina totalmente as coisas mais obscuras do Português, mas cria histórias fantásticas. Por outro lado, conhecer a fundo a gramática do Português não garante que você sabe escrever boas histórias em Português. Entende?

Bog
Veterano
# jan/10
· votar


guilherme_90

Aliás, cuidado para não glamourizar o trabalho de desenvolvimento de software. As coisas hoje em dia não funcionam mais como eram nos anos 70 ou 80. Muita gente vive afundada em trabalhos repetitivos e maçantes. Fazer interfaces com bancos de dados e janelinhas de cadastro pode não ser exatamente uma avendura.

Eu conheço um punhado de gente que fugiu do mundo das "fábricas de software" depois de ver como era o mundo corporativo. Eu incluso.

SuperGeo
Veterano
# jan/10
· votar


Bog

Isso aí. Tive uma matéria de arquitetura de software na faculdade onde aprendemos o Processo Unificado. Aprendemos UML e o semestre inteiro foi levantamento de requisitos, identificar operações e consultas, conceitos, mensagens, tudo isso num nível totalmente abstrato e independente de qualquer implementação (podia ser até alguns empregados com algumas fichas escritas a mão).

Depois de toda essa "papelada" a tarefa de escrever o código ficava completamente mecânica e fácil de ser implementada por qualquer um que tinha a documentação em mãos. A parte da estruturação já estava toda feita.

Guilherme 90
Veterano
# jan/10
· votar


Bog

Apelando de novo para analogias, programar é como escrever um romance: embora o idioma usado possa influenciar na forma como você conta a história, em pricípio a história em si (i.e. os eventos que ocorrem, os personagens, etc) é uma coisa diferente do texto que conta a história. Muitas vezes, você pode contar a mesmíssima história em outro idioma, com outras palavras, ou mesmo em outra mídia, sem perder o conteúdo. Às vezes, o sujeito nem domina totalmente as coisas mais obscuras do Português, mas cria histórias fantásticas. Por outro lado, conhecer a fundo a gramática do Português não garante que você sabe escrever boas histórias em Português. Entende?

Eu to entendendo sim cara, pelo que vi, um programador faz sempre as mesmas coisas, são coisas muito repetitivas, etc..

Tenho um primo que era analista de sistemas, mas esse não é o principal foco dele mais.

No mais, mais uma vez você parece estar confundindo desenvolver software com conhecer a sintaxe de uma linguagem de programação. São coisas diferentes. Tem projeto que é todo descrito de um jeito abstrato, em diagramas e design patterns - e nesses casos, a programação é quase que um trabalho mecânico (obviamente, estes não são TODOS os casos, e é ISSO que leva à polêmica sobre os programadores serem "pedreiros de software").

Acho que desenvolver software deve exigir muito conhecimento, etc, aliás, muito mais do que somente saber programar.

Depende do que você quer dizer com saber muito bem programação. Conceitos gerais entram aí? Porque um analista precisa conhecer UML, design patterns, ferramentas de desenvolvimento, algoritmos em geral e outras coisas que saem bastante da sintaxe desta ou daquela linguagem.

Não sei bem o que é UML, mas já li algo disso, é interessante até.

adnz
Veterano
# jan/10
· votar


guilherme_90
Meu curso é um curso de ciência da computação normal, eu acho. o.o Tem um enfoque teórico/prático e até agora ensinou coisas úteis que acredito que sejam usadas no resto do mundo: estruturas de dados, assembly, linguagens funcionais, algumas coisas matemáticas como cálculos, probabilidade, álgebra linear, teoria de grafos...

Algumas dessas matérias têm um enfoque mais prático do que teórico, assembly e estruturas de dados por exemplo. Em Arquitetura de Computadores (uma cadeira) nós aprendemos como o computador funciona em baixo nível (assembly) e temos provas e trabalhos (que valem bastante) sobre isso. Os trabalhos geralmente são fazer alguma coisa banal, como uma calculadora ou algum jogo fácil de implementar. A idéia é fazer o aluno aprender a montar um programa decente e que funcione usando o que ele aprendeu até o momento na cadeira. Em Estruturas de Dados (outra cadeira) a mesma coisa. Aprendemos várias estruturas de dados (durrrr) e usamos algumas delas em um trabalho final, que é uma aplicação de alguma coisa qualquer. Certamente depois de fazer esses trabalhos a pessoa sai sabendo ALGUMA coisa, qualquer coisa. É impossível fazer um trabalho desses sem aprender nada.

As aulas mais teóricas são, para a maioria das pessoas, menos legais. Já que é só matemática e prova... Então tem que estudar bastante e ir bem. Na minha opinião são as partes mais legais do curso, não sei bem dizer por qual motivo.

Mas eu acho que se você se preocupa tanto assim você não vai se arrepender. Não sei em que curso você vai entrar, mas se for um bacharelado, não se atenha a ganhar um diploma e ir trabalhar. Existem várias opções além de ficar programando softwares quaisquer por aí.

Guilherme 90
Veterano
# jan/10
· votar


adnz

Esse curso parece ser bom mesmo cara, seu "review" deu pra entender bem o conteúdo do curso. Dizem que é um pouco puxado, etc, mais isso vai mais de pessoa pra pessoa, se o cara estuda, não tem com que se procupar, mais se leva a faculdade pra lá, ai o bixo pega de verdade, e essa parte de cálculo acredito que tem que estudar bastante, não deve ser muito fácil também não..

Eu pretendo fazer Tecnologo em Analise e Desenvolvimento de Sistemas, ou então Sistemas de Informação, mas estou com dúvidas sabe, tenho esse semestre para decidir, até vou pensando com calma e sem pressão.

Eu me preocupo bastante em entrar numa faculdade, formar e arrumar um bom emprego, e é claro, vou me dedicar muito na faculdade, quero ser um bom professional nessa área. O bom é que eu descobri isso um pouco "cedo" ou sede de estudar mais rápido, tem pessoas que entram em faculdade lá pro seus 25 anos...

Você está em qual semestre do curso ? E a primeira linguagem que aprendeu foi Pascal ? Geralmente costuma ser a primeira a passar para a turma, já que todos dizem ser bem mais simples que as demais.

shoyoninja
Veterano
# jan/10
· votar


Bog
Eu conheço um punhado de gente que fugiu do mundo das "fábricas de software" depois de ver como era o mundo corporativo. Eu incluso.
o/

adnz
Veterano
# jan/10 · Editado por: adnz
· votar


guilherme_90
Passei pro 3º e as primeiras foram C e Scheme.

Mas para o aluno curioso, receber algum conhecimento de C já o convida a aprender C++. Se ele gostou de C++ ele já tem uma boa noção de OOP e daí as outras linguagens que são um pouco parecidas também ficam fáceis.
E Scheme é uma linguagem funcional, então o mesmo aluno curioso já vai dar uma olhada em outras linguagens funcionais como Lisp, Haskell, etc...

Até agora as únicas linguagens que nos ensinaram alguma coisa no curso foram C e Scheme. Porém, as coisas que eu sei fazer em Scheme eu sei fazer em Haskell pois a idéia é a mesma (pelo menos muito parecida) com linguagens funcionais. Analogamente, o que eu sei fazer em C eu vou saber fazer em C++, só que fazer algumas coisas em C++ fica mais fácil, então é um conhecimento adicional. E também, se eu sei montar n estruturas em C, eu vou saber montá-las em Java, Python, etc, dado tempo pra aprender a sintaxe dessas novas linguagens. O bom do C é que é uma linguagem de baixo nível, então quando você aprender a construir uma estrutura qualquer, você realmente sabe como essa estrutura funciona, então 'transferir' ela pra outra linguagem de mais alto nível fica mais fácil.

Alex Supertramp
Veterano
# jan/10
· votar


programa em C++, Java (ou qualquer outra linguagem OO) ainda é uma porção de pequenos códigos em programação estruturada. Orientação a objeto é só a forma como esses códigos são organizados e ligados uns aos outros.

Não cara, não é apenas uma forma de organizar os códigos, é um conceito totalmente diferente. Em OO se trabalha com uma abstração do mundo real, involve herança, classes, polimorfismo, encapsulamento, etc... Conceitos impossiveis de se aplicar em um linguagem sem suporte a OO (C por exemplo)

shoyoninja
Veterano
# jan/10
· votar


Alex Supertramp
Certo... E como se implementa uma linguagem OO?

Bog
Veterano
# jan/10 · Editado por: Bog
· votar


Alex Supertramp
Em OO se trabalha com uma abstração do mundo real, involve herança, classes, polimorfismo, encapsulamento, etc...

Pois é, e isso tudo é só um jeito de organizar uma porção de pequenos códigos onde se tem um bando de decisões e iterações em sequência. Olha o que tem dentro de uma função qualquer em C++.

Conceitos impossiveis de se aplicar em um linguagem sem suporte a OO (C por exemplo)

Aqui eu discordo, e discordo com força. Impossível não é.

1. Como você acha que são implementados compiladores ou interpretadores de linguagens OO?

2. Você acha que as instruções que ficam por baixo de um programa OO depois de compilado são diferentes daquelas que ficam por baixo de um programa em C?

3. Sugestão: estude como C++ faz para implementar os conceitos de OO. Você vai encontrar coisas bem curiosas. Em especial, ponteiros secretos e mágicos.

4. Pode te parecer estranho, mas eu já usava alguns conceitos de OO mesmo programando em C. Você se espantaria com o que dá para fazer com um punhado de structs e pointers (espeacialmente, ponteiros para funções).

No mais, você não entendeu o que eu quis dizer. Eu nunca disse que é a mesma coisa programar em C ou C++. O que eu disse é que OO é um jeito de organizar pequenos trechos de códigos imperativos e estruturados. É ÓBVIO que fica difícil organizar o programa deste jeito sem usar uma linguagem com suporte a este jeito de organização. Mas isso não muda o fato de que o miolo de qualquer programa em C++ é um bando de ifs e fors.

Jaum_Paulo
Veterano
# jan/10
· votar


Muita gente vai torcer o nariz agora, mas...

guilherme_90
Eu recomendaria pra você os livros da série 'Use a cabeça!'.
É muito bom pra quem ta saindo do zero, e não é massante/chato.
Com um pouco de determinação, pode proporcionar um bom começo.
Eu sei que na série tem pra Java e C#, mas não sei se tem pra C. O de Java eu tenho e usei, achei muito bom dentro do proposto.

Guilherme 90
Veterano
# jan/10
· votar


adnz

Entendi cara, pra falar a verdade nunca ouvi falar nessa linguagem Scheme...

hAEUAHUAEHAE

Eu tava vendoa grade curricular da Fatec-SP do curso Analise e Desenvolvimento de Sistemas, e tem as seguintes linguagens:

Cobol (Até o avançado)
Visual Basic
Delphi
C
C++

Agora me pergunto: Cobol é boa linguagem pra ensinar em faculdade ? Porque eu nunca vi em uma grade curricular, e VB já vi em algumas, mais Delphi é em todas...

Guilherme 90
Veterano
# jan/10
· votar


Jaum_Paulo
Eu recomendaria pra você os livros da série 'Use a cabeça!'.
É muito bom pra quem ta saindo do zero, e não é massante/chato.


Então, eu andei olhando a serie desses livros, tem bastante até, tem de Java, C# entre outros, e por incrivel que pareça, até hoje não achei de C e C++ (eu acho)

E são baratos até, o de Java por exemplo é 125 reais

Guilherme 90
Veterano
# jan/10 · Editado por: Guilherme 90
· votar


Jaum_Paulo

To vendo aqui a série de Use a Cabeça no Submarino, tem os seguintes:

C#
Desenvolvimento de Software
Java
Web Design
SQL (Banco de Dados)
Ajax
Ajax Profissional
Servelets & JSP
HTML Com CSS e XHTML
JavaScript
Análise e Projeto Orientado a Objeto
Rails

Jaum_Paulo
Veterano
# jan/10
· votar


guilherme_90
Se vc já tem uma base em C (sabe fazer alguns for's e if's e usar umas funções) pode escolher a que vc simpatiza mais (Java ou C#) e pegar um livro desse tranquilamente. Depois é só ir com calma, um passo de cada vez.

Ou então, procure algum curso fornecido por universidade mesmo. A UTFPR (ou UTF+estado) fornece alguns bem úteis, rápidos e baratos. Já da pra começar.

Jaum_Paulo
Veterano
# jan/10
· votar


No meu livro dessa série, de Java, ta escrito assim aqui na introdução:

(...)

A quem se destina esse livro?
Se você puder serponder 'sim' a todas essas perguntas:
1. Você já programou?
2. Quer aprender Java?
3. Prefere conversas estimulantes na hora do jantar a palestras secas, chatas e técnicas?
Então este livro é destinado a você.

Quem provavelmente deve ficar longe deste livro?
Se você puder responder 'sim' a qualquer das perguntas a seguir:
1. Sua experiência em programação se limita somente à HTML, sem nenhum contato com linguagem script? (Se você já fez algo com loops ou lógica if/then, conseguirá se virar com este livro, mas somente tags HTML podem não ser o suficiente.)
2. Você é um bom programador de C++ procurando um livro de referência?
3. Você tem medo de tentar algo diferente? Prefere fazer um tratamento de canal a misturar listras e xadrez? Acredita que um livro técnico não pode ser sério se houver a figura de um pato na seção de gerenciamento de memória?


(...)

Veja se você se encaixa e o resto é contigo, vai um passo de cada vez e boa.

SuperGeo
Veterano
# jan/10
· votar


guilherme_90
Entendi cara, pra falar a verdade nunca ouvi falar nessa linguagem Scheme...

Scheme é um dialeto do LISP.

Guilherme 90
Veterano
# jan/10 · Editado por: Guilherme 90
· votar


Jaum_Paulo
Se vc já tem uma base em C (sabe fazer alguns for's e if's e usar umas funções) pode escolher a que vc simpatiza mais (Java ou C#) e pegar um livro desse tranquilamente. Depois é só ir com calma, um passo de cada vez.

Na verdade eu sei fazer isso com JavaScript, mas C ainda não, to pegando aos poucos...

O que me atrapalha é um pouco de lógica mesmo pra fazer uns programinhas em JavaScript, porque já sei umas coisas que dá pra fazer coisas legais, em JS, eu sei:

Operadores, Loop (For, While), Array, um pouco de String, Function, If, Else. Com isso dá pra fazer algo legalzinho, mas o que acontece é a lógica me atrapalha, é foda, mais to levando com calma, sem pressão, quando eu assustar, já vou estar conseguindo fazer algo legal..

Guilherme 90
Veterano
# jan/10
· votar


Jaum_Paulo

Veja se você se encaixa e o resto é contigo, vai um passo de cada vez e boa.


Parece ser um ótimo livro.

Guilherme 90
Veterano
# jan/10
· votar


SuperGeo
Scheme é um dialeto do LISP.

Não entendi também, LISP ?

Enviar sua resposta para este assunto
        Tablatura   
Responder tópico na versão original
 

Tópicos relacionados a Programação - qual das linguagens devo aprender "C, C++ ou Java" ?