Quando é a hora certa para dizer "Eu programo na linguagem x"?

Podemos dizer que somos programadores em uma certa linguagem, apenas conhecendo a sua sintaxe? Quando começamos a aprender uma linguagem de programação nova, aprendemos como é a estrutura dessa linguagem, já podemos dizer que “Progamamos nessa linguagem”?
Ou isso requer conhecimentos mais profundos da linguagem em questão, como conhecimento em várias Classes da Linguagem, Frameworks, Integração com banco de dados, User Interface ou isso depende apenas do tempo em que você trabalha com tal linguagem?

Conhecer a linguagem é basicamente conhecer a sintaxe e as práticas mais recorrentes de formatação de código.
Para entender Frameworks basta ler a documentação.

[quote=doravan]Conhecer a linguagem é basicamente conhecer a sintaxe e as práticas mais recorrentes de formatação de código.
Para entender Frameworks basta ler a documentação.[/quote]

Eu, por exemplo, faço faculdade e estou me dedicando à linguagem C e pretendo trabalhar com ela e com C++.
Assim que eu terminar a faculdade e conhecer bem a linguagem, já posso me candidatar a vagas de empresas que trabalham com essa linguagem ou é obrigatório conhecimentos mais “específicos” como algum framework?

[quote=Erick Ribeiro][quote=doravan]Conhecer a linguagem é basicamente conhecer a sintaxe e as práticas mais recorrentes de formatação de código.
Para entender Frameworks basta ler a documentação.[/quote]

Eu, por exemplo, faço faculdade e estou me dedicando à linguagem C e pretendo trabalhar com ela e com C++.
Assim que eu terminar a faculdade e conhecer bem a linguagem, já posso me candidatar a vagas de empresas que trabalham com essa linguagem ou é obrigatório conhecimentos mais “específicos” como algum framework?[/quote]

Você já procurar desde já um estágio pra ganhar experiência, de preferência na linguagem que você quer. Domínio em uma linguagem é conhecer seus recursos e usá-los de forma otimizada.

Mas conhecendo os conceitos profundamente torna-se muito mais fácil programar em outra linguagem.

[quote=Erick Ribeiro][quote=doravan]Conhecer a linguagem é basicamente conhecer a sintaxe e as práticas mais recorrentes de formatação de código.
Para entender Frameworks basta ler a documentação.[/quote]

Eu, por exemplo, faço faculdade e estou me dedicando à linguagem C e pretendo trabalhar com ela e com C++.
Assim que eu terminar a faculdade e conhecer bem a linguagem, já posso me candidatar a vagas de empresas que trabalham com essa linguagem ou é obrigatório conhecimentos mais “específicos” como algum framework?[/quote]

Rapaz, faça como o rafadelnero disse, procure um estágio desde já. Se deixar pra procurar algo apenas depois de se formar vai ter muita dificuldade em encontrar sem experiência, pois por ser formado não poderá ingressar como estagiário e praticamente nenhuma empresa arriscaria contratar alguém sem experiência alguma. Eu mesmo comecei a estagiar na área desde o primeiro semestre, fui precoce, me formei no ultimo ano e hoje o meu tempo de experiência vale muito mais que a graduação. Tanto que ter formado não mudou em nada minha situação na empresa.

[quote=fbl.lucas][quote=Erick Ribeiro][quote=doravan]Conhecer a linguagem é basicamente conhecer a sintaxe e as práticas mais recorrentes de formatação de código.
Para entender Frameworks basta ler a documentação.[/quote]

Eu, por exemplo, faço faculdade e estou me dedicando à linguagem C e pretendo trabalhar com ela e com C++.
Assim que eu terminar a faculdade e conhecer bem a linguagem, já posso me candidatar a vagas de empresas que trabalham com essa linguagem ou é obrigatório conhecimentos mais “específicos” como algum framework?[/quote]

Rapaz, faça como o rafadelnero disse, procure um estágio desde já. Se deixar pra procurar algo apenas depois de se formar vai ter muita dificuldade em encontrar sem experiência, pois por ser formado não poderá ingressar como estagiário e praticamente nenhuma empresa arriscaria contratar alguém sem experiência alguma. Eu mesmo comecei a estagiar na área desde o primeiro semestre, fui precoce, me formei no ultimo ano e hoje o meu tempo de experiência vale muito mais que a graduação. Tanto que ter formado não mudou em nada minha situação na empresa.[/quote]

Então, já faço estágio, termino na metade desse ano. Porém, aqui na empresa não usamos C nem C++ ou Java, e sim PHP e MySQL. Vou precisar fazer outro estágio?

Então procure por alguma oportunidade nesta área…

Você pode dizer que programa em quantas linguagem quiser, se alguém vai ficar impressionado é outra história. Pra maioria das pessoas programação é chato, então é muito provável que vai entrar pelo ouvido e sair pelo outro.

Então, eu não disse sobre impressionar as pessoas. Estou dizendo, profissionalmente, se podemos dizer que temos conhecimento em uma linguagem apenas conhecendo a sua sintaxe, e se temos chance de concorrer a vagas sem experiência em frameworks.

Quanto a entrevista, aposto que eles não acham chato quando o concorrente a vaga fala sobre seus conhecimentos. Muito pelo contrário! Eles tem que falar da capacidade que tem!!

O fato de você já trabalhar com programação ajuda muito na lógica, agora só deve achar uma vaga na linguagem que você deseja, como já trabalha com isso vai ter um aprendizado muito rápido, pois a lógica você já tem, só basta a sintaxe da nova linguagem.
Quanto aos frameworks é muito relativo, isso muda de empresa para empresa.
Tente pesquisar sobre os mais utilizados em C e de uma estuda nesses, não posso te indicar, pois não trabalho com C.

Uma coisa é conhecer sintaxe e outra coisa é ter experiência na linguagem! Um bom programador desenvolve em qualquer linguagem, pois só tem que aprender a sintaxe dessa nova linguagem, porém ele leva muito mais tempo para codificar uma mesma funcionalidade que um programador experiente na linguagem.

Para o mercado de trabalho não basta conhecer a sintaxe, tem que ter experiência. Se você quer se dedicar a trabalhar com C/C++ arrume uma vaga de estágio aonde você possa trabalhar com essas linguagens, pois sem experiência prévia vai ser dificil conseguir uma colocação depois.

Eu creio que a experiência é fundamental para de dizer eu sou programador na linguagem xxx. A meu ver não basta apenas conhecer a linguagem, pois somente a experiência permite um aprendizado mais rico!

[quote=Erick Ribeiro]Podemos dizer que somos programadores em uma certa linguagem, apenas conhecendo a sua sintaxe? Quando começamos a aprender uma linguagem de programação nova, aprendemos como é a estrutura dessa linguagem, já podemos dizer que “Progamamos nessa linguagem”?
Ou isso requer conhecimentos mais profundos da linguagem em questão, como conhecimento em várias Classes da Linguagem, Frameworks, Integração com banco de dados, User Interface ou isso depende apenas do tempo em que você trabalha com tal linguagem?

[/quote]

Existe uma diferença entre ser programador em uma linguagem e desenvolvedor em uma plataforma.

Ser programador de uma linguagem é trivial. Basta saber os comandos e saber programar. Saber programar não está associado à linguagem de máquina. Está associado a algoritmia. Saber que qualquer programa pode ser feito apenas com 3 estrutruas base (Sequencia, Decisão e Repetição) é a essencia de programar. A linguagem só lhe dá isso e uma cola com o computador ( tipo, um system.out.print)

Ser desenvolvedor em uma plataforma é outro jogo. Vc precisa conhecer a plataforma mais que a linguagem. Java é uma linguagem e uma plataforma , mas Scala é uma linguagem diferente para a mesma plataforma.
Depois de alguns meses mexendo uma uma linguagem vc pode dizer que programa em X. Mas para desevolver na plataforma vai mais que isso. Precisa conhecer os frameworks, os ciclos de vida, os conceitos , as convenções, os padrões ,etc… e sobe tudo, precisa saber aquelas pequenas coisas que diferenciam aquela plataforma das outras. Este tipo de conhecimento precisa de mais tempo e experiencia.

Na teoria seria:
Lógica de Programação + Sintaxe da Linguagem + Boas Práticas de Desenvolvimento + API da linguagem + Experiência com a Linguagem(Projetos desenvolvidos durante determinado tempo) = Eu programo na linguagem x;

Mais na prática um programador ainda tem quer saber análise de sistemas(Processos de Software,RUP,UML), banco de dados(conceitos,modelagem,forma normais,SQL) e Frameworks porque o mercado exige.

[quote=Alexsandro Lopes]Na teoria seria:
Lógica de Programação + Sintaxe da Linguagem + Boas Práticas de Desenvolvimento + API da linguagem + Experiência com a Linguagem(Projetos desenvolvidos durante determinado tempo) = Eu programo na linguagem x;

Mais na prática um programador ainda tem quer saber análise de sistemas(Processos de Software,RUP,UML), banco de dados(conceitos,modelagem,forma normais,SQL) e Frameworks porque o mercado exige.[/quote]

Assim que eu terminar a faculdade quero entrar numa empresa onde exista chances de eu crescer. Claro que eu não vou saber tudo isso que vc me disse tão brevemente, acredito que o trabalho em equipe deve entrar aí.

[quote=sergiotaborda][quote=Erick Ribeiro]Podemos dizer que somos programadores em uma certa linguagem, apenas conhecendo a sua sintaxe? Quando começamos a aprender uma linguagem de programação nova, aprendemos como é a estrutura dessa linguagem, já podemos dizer que “Progamamos nessa linguagem”?
Ou isso requer conhecimentos mais profundos da linguagem em questão, como conhecimento em várias Classes da Linguagem, Frameworks, Integração com banco de dados, User Interface ou isso depende apenas do tempo em que você trabalha com tal linguagem?

[/quote]

Existe uma diferença entre ser programador em uma linguagem e desenvolvedor em uma plataforma.

Ser programador de uma linguagem é trivial. Basta saber os comandos e saber programar. Saber programar não está associado à linguagem de máquina. Está associado a algoritmia. Saber que qualquer programa pode ser feito apenas com 3 estrutruas base (Sequencia, Decisão e Repetição) é a essencia de programar. A linguagem só lhe dá isso e uma cola com o computador ( tipo, um system.out.print)

Ser desenvolvedor em uma plataforma é outro jogo. Vc precisa conhecer a plataforma mais que a linguagem. Java é uma linguagem e uma plataforma , mas Scala é uma linguagem diferente para a mesma plataforma.
Depois de alguns meses mexendo uma uma linguagem vc pode dizer que programa em X. Mas para desevolver na plataforma vai mais que isso. Precisa conhecer os frameworks, os ciclos de vida, os conceitos , as convenções, os padrões ,etc… e sobe tudo, precisa saber aquelas pequenas coisas que diferenciam aquela plataforma das outras. Este tipo de conhecimento precisa de mais tempo e experiencia. [/quote]

Para quem não tem experiência com projetos, mas gosta realmente do que faz e quer continuar se desenvolvendo, existe possibilidade de concorrer a vagas como programador? Quanto aos frameworks, acredito que não precisamos nos aprofundar muito estudando eles, apenas usar e consultar a documentação quando necessário. O essencial é conhecer a linguagem que estamos desenvolvendo e assim estaremos preparados a resolver os problemas de forma bemmais rápida, visto que o framework é baseado na linguagem.

[quote=Erick Ribeiro][quote=sergiotaborda][quote=Erick Ribeiro]Podemos dizer que somos programadores em uma certa linguagem, apenas conhecendo a sua sintaxe? Quando começamos a aprender uma linguagem de programação nova, aprendemos como é a estrutura dessa linguagem, já podemos dizer que “Progamamos nessa linguagem”?
Ou isso requer conhecimentos mais profundos da linguagem em questão, como conhecimento em várias Classes da Linguagem, Frameworks, Integração com banco de dados, User Interface ou isso depende apenas do tempo em que você trabalha com tal linguagem?

[/quote]

Existe uma diferença entre ser programador em uma linguagem e desenvolvedor em uma plataforma.

Ser programador de uma linguagem é trivial. Basta saber os comandos e saber programar. Saber programar não está associado à linguagem de máquina. Está associado a algoritmia. Saber que qualquer programa pode ser feito apenas com 3 estrutruas base (Sequencia, Decisão e Repetição) é a essencia de programar. A linguagem só lhe dá isso e uma cola com o computador ( tipo, um system.out.print)

Ser desenvolvedor em uma plataforma é outro jogo. Vc precisa conhecer a plataforma mais que a linguagem. Java é uma linguagem e uma plataforma , mas Scala é uma linguagem diferente para a mesma plataforma.
Depois de alguns meses mexendo uma uma linguagem vc pode dizer que programa em X. Mas para desevolver na plataforma vai mais que isso. Precisa conhecer os frameworks, os ciclos de vida, os conceitos , as convenções, os padrões ,etc… e sobe tudo, precisa saber aquelas pequenas coisas que diferenciam aquela plataforma das outras. Este tipo de conhecimento precisa de mais tempo e experiencia. [/quote]

Para quem não tem experiência com projetos, mas gosta realmente do que faz e quer continuar se desenvolvendo, existe possibilidade de concorrer a vagas como programador?
[/quote]

Claro. Sempre existe a possibilidade de tudo.
Sendo que vc está na faculdade, as pessoas não irão esperar muito de si. Saber programar é o básico do básico. Se vc não sabe isso, não sabe nada. Mas saber programar, como eu disse, não é saber usar uma linguagem. É um pouco mais que isso.
Saber a linguagem é um “segundo grau” de saber programar. Ser um programador de verdade é dominar a linguagem em todas as suas caracteristicas. Por exemplo, vc sabe programar em java se não souber generics ? ou para que serve syncronized ? ou a diferença entre arraylist e linked list ? etc… tem muitas nuances ai. Vc está sendo simplista ao dizer que é precisa saber apenas a linguagem.

[quote]
Quanto aos frameworks, acredito que não precisamos nos aprofundar muito estudando eles, apenas usar e consultar a documentação quando necessário. O essencial é conhecer a linguagem que estamos desenvolvendo e assim estaremos preparados a resolver os problemas de forma bemmais rápida, visto que o framework é baseado na linguagem. [/quote]

Não é verdade. Se vc sabe java isso não lhe diz como funciona o struts ou o spring MVC ou o Vaadin ou o VRaptor ou o Swing ou o JSF. Cada um tem uma forma especifica de usar a linguagem para um propósito, mas esse propóstio não está na linguagem nem nas classes do frameworks. Está fora do código. É conhecer o que “está fora do código” que significa conhecer um framework. Saber a linguagem não é suficiente. consultar a documentação ajuda, mas vc tem que entender o que ela diz. Nem sempre é simples. Depende da documentação.

Mas o mais dificil é escolher entre um framework A e B. Isso que realmente diz se vc conhece os frameworks ou não. É claro que isso não é um estagiária que vai fazer, então vc está livre dessa, por enquanto. Mas se vc quiser vir a ser sênior algum dia, vc precisa evoluir esse seu conceito de que o “framework é baseado na linguagem”. O framework é escrito / implementado, na linguagem, mas é basedo em conceitos fora dela.

[quote=sergiotaborda][quote=Erick Ribeiro][quote=sergiotaborda][quote=Erick Ribeiro]Podemos dizer que somos programadores em uma certa linguagem, apenas conhecendo a sua sintaxe? Quando começamos a aprender uma linguagem de programação nova, aprendemos como é a estrutura dessa linguagem, já podemos dizer que “Progamamos nessa linguagem”?
Ou isso requer conhecimentos mais profundos da linguagem em questão, como conhecimento em várias Classes da Linguagem, Frameworks, Integração com banco de dados, User Interface ou isso depende apenas do tempo em que você trabalha com tal linguagem?

[/quote]

Existe uma diferença entre ser programador em uma linguagem e desenvolvedor em uma plataforma.

Ser programador de uma linguagem é trivial. Basta saber os comandos e saber programar. Saber programar não está associado à linguagem de máquina. Está associado a algoritmia. Saber que qualquer programa pode ser feito apenas com 3 estrutruas base (Sequencia, Decisão e Repetição) é a essencia de programar. A linguagem só lhe dá isso e uma cola com o computador ( tipo, um system.out.print)

Ser desenvolvedor em uma plataforma é outro jogo. Vc precisa conhecer a plataforma mais que a linguagem. Java é uma linguagem e uma plataforma , mas Scala é uma linguagem diferente para a mesma plataforma.
Depois de alguns meses mexendo uma uma linguagem vc pode dizer que programa em X. Mas para desevolver na plataforma vai mais que isso. Precisa conhecer os frameworks, os ciclos de vida, os conceitos , as convenções, os padrões ,etc… e sobe tudo, precisa saber aquelas pequenas coisas que diferenciam aquela plataforma das outras. Este tipo de conhecimento precisa de mais tempo e experiencia. [/quote]

Para quem não tem experiência com projetos, mas gosta realmente do que faz e quer continuar se desenvolvendo, existe possibilidade de concorrer a vagas como programador?
[/quote]

Claro. Sempre existe a possibilidade de tudo.
Sendo que vc está na faculdade, as pessoas não irão esperar muito de si. Saber programar é o básico do básico. Se vc não sabe isso, não sabe nada. Mas saber programar, como eu disse, não é saber usar uma linguagem. É um pouco mais que isso.
Saber a linguagem é um “segundo grau” de saber programar. Ser um programador de verdade é dominar a linguagem em todas as suas caracteristicas. Por exemplo, vc sabe programar em java se não souber generics ? ou para que serve syncronized ? ou a diferença entre arraylist e linked list ? etc… tem muitas nuances ai. Vc está sendo simplista ao dizer que é precisa saber apenas a linguagem.

[quote]
Quanto aos frameworks, acredito que não precisamos nos aprofundar muito estudando eles, apenas usar e consultar a documentação quando necessário. O essencial é conhecer a linguagem que estamos desenvolvendo e assim estaremos preparados a resolver os problemas de forma bemmais rápida, visto que o framework é baseado na linguagem. [/quote]

Não é verdade. Se vc sabe java isso não lhe diz como funciona o struts ou o spring MVC ou o Vaadin ou o VRaptor ou o Swing ou o JSF. Cada um tem uma forma especifica de usar a linguagem para um propósito, mas esse propóstio não está na linguagem nem nas classes do frameworks. Está fora do código. É conhecer o que “está fora do código” que significa conhecer um framework. Saber a linguagem não é suficiente. consultar a documentação ajuda, mas vc tem que entender o que ela diz. Nem sempre é simples. Depende da documentação.

Mas o mais dificil é escolher entre um framework A e B. Isso que realmente diz se vc conhece os frameworks ou não. É claro que isso não é um estagiária que vai fazer, então vc está livre dessa, por enquanto. Mas se vc quiser vir a ser sênior algum dia, vc precisa evoluir esse seu conceito de que o “framework é baseado na linguagem”. O framework é escrito / implementado, na linguagem, mas é basedo em conceitos fora dela. [/quote]

Obrigado pelos esclarecimentos…

Complementando o que diz o sergiotaborda.

Programar uma linguagem é simples, se você entende de lógica, você programa em qualquer linguagem, basta ler a sintaxe.

Na nossa área, o que vejo mercado adentro é: “O que separa o lobo das ovelhas é o conhecimento da arquitetura da tecnologia.”, porque lógica e algoritmos todo mundo sabe fazer, difícil é fazer uma integração elegante entre uma camada de negócios, uma camada de dados e uma apresentação, o que é regido pelo padrão de projetos que você adota.

Na minha opinião você não precisa conhecer todos os frameworks ABCD, mas sim entender as lógicas fundamentais e funcionais deles, você precisa saber o que é um framework, como ele funciona internamente. De posse desse conhecimento, qualquer framework será fácil de assimilar.

Sugiro que comece com frameworks e especificações populares, como Spring, JSF, Spring MVC.

E lembre-se do mais importante, dizer que sabe é diferente de dizer que desenrola.

[quote=doravan]Complementando o que diz o sergiotaborda.

Programar uma linguagem é simples, se você entende de lógica, você programa em qualquer linguagem, basta ler a sintaxe.

Na nossa área, o que vejo mercado adentro é: “O que separa o lobo das ovelhas é o conhecimento da arquitetura da tecnologia.”, porque lógica e algoritmos todo mundo sabe fazer, difícil é fazer uma integração elegante entre uma camada de negócios, uma camada de dados e uma apresentação, o que é regido pelo padrão de projetos que você adota.

Na minha opinião você não precisa conhecer todos os frameworks ABCD, mas sim entender as lógicas fundamentais e funcionais deles, você precisa saber o que é um framework, como ele funciona internamente. De posse desse conhecimento, qualquer framework será fácil de assimilar.

Sugiro que comece com frameworks e especificações populares, como Spring, JSF, Spring MVC.

E lembre-se do mais importante, dizer que sabe é diferente de dizer que desenrola.[/quote]

Vou estudar um pouco mais, depois pesquisar sobre os frameworks mais usados e praticar. Eu acho que eu estou andando em círculos sabe, toda vez que eu começo a estudar uma linguagem nova eu começo a fazer tudo quase do zero, como se fosse a primeira vez que estou programando e não saio de um programa com mais de quatro métodos…

Nunca conclui projetos que fiz em casa. Sempre que começa a ficar grande eu apago e começo tudo de novo, porém, implementando o projeto de maneira diferente(Com uma arquitetura melhor, claro)… Um exemplo é um chat mobile que eu fiz com HTML5 e jQuery. tava ficando uma maravilha. Mas do nada eu apaguei tudo ‘-’. Isso é normal??

[quote=Erick Ribeiro]
Nunca conclui projetos que fiz em casa. Sempre que começa a ficar grande eu apago e começo tudo de novo, porém, implementando o projeto de maneira diferente(Com uma arquitetura melhor, claro)… Um exemplo é um chat mobile que eu fiz com HTML5 e jQuery. tava ficando uma maravilha. Mas do nada eu apaguei tudo ‘-’. Isso é normal??[/quote]

Não.
É normal que vc duvide, modifique e evolua. Mas que destrua não é normal. Vc não gostou ? acha que pode fazer melhor ? Ok. guarda esse projeto e começa outro. Não precisa apagar.
Alguma coisa que vc fez antes vai aproveitar depois. E às vezes vc só descobre isso alguns meses depois. Então, não apague.

Programas que não passam de 4 metodos não são programas de verdade. Então vá mais afundo. E uma boa maneira de ir mais afundo, como já disseram é arranjar um estágio. Vc vai ver que o mundo real é muito diferente do que vc imagina. (Fora que vc vai ver aplicações completas com mais de 4 métodos. 4000 é mais provável… )