Empresa de Java, estudar RUBY

Olá,

trabalho em uma empresa que os sistemas são todos em java, e eu trabalho com qualidade de software.

Bom, eu estou MUITO interessado em estudar fortemente RUBY ao invés de JAVA, pois o ruby me chama muito a atenção, acho a linguagem agradável e bonita.

Obs…: Java eu sei o básico do básico mesmo, agora tenho interesse em estudar e mergulhar em ruby, mas to em dúvida porque aqui na empresa é só JAVA :frowning:

O que acham que devo fazer?

Antes, responda: pretende fazer carreira na empresa atual?

A empresa em que você atua tem interesse em mudar as tecnologias de desenvolvimento? Converse com o seu superior e pergunte se aprender algo diferente é válido no momento. Eu também tenho vontade de aprender Ruby, mas acredito que no momento não valha a pena, pelo menos para mim.

Isso é ridículo, Java é uma linguagem orientada a objetos, como tantas outras. Aprenda uma linguagem orientada a objetos e voce aprende todas as outras. Você pode ser perder em um detalhe ou outro de sintaxe, mas isso é normal, especialmente em linguagens verbosas como Java/C++. Escolha aquela que mais te agrade e estude ela a fundo, aprenda o conceito por trás dela. Você só precisa disso. Qualquer detalhe estúpido se resolve com uma pesquisa rápida, especialmente em linguagens tão populares como Java (o mesmo vale pra frameworks).

Depende dos seus objetivos reais com Ruby.

Se voce trabalha com qualidade de software web e a empresa nao tem teste automatizado de alto nivel/funcional, pode usar o Selenium WebDriver e automatizar seus testes usando Ruby, independente de qual linguagem usem para desenvolver os sistemas. Assim vai usar profissionalmente a linguagem do seu gosto, facilitar suas rotinas e se preparar parar alcançar o objetivo que deseja com a linguagem, que não falou qual é, mas pelo jeito deve ser fora da empresa atual.

Não é bem assim não …

Lógica de programação, estruturas de dados e orientação a objetos são conceitos básicos para alguém tornar-se um bom programador. Mas, aplicando a velha lógica aqui, necessário não é a mesma coisa que suficiente. Se você quer produzir software de qualidade, é importante sim conhecer a fundo a ferramenta com a qual se está trabalhando, seus pontos fortes e pontos fracos, etc.

Na minha opinião, se você gostou de Ruby invista em Ruby. Apesar de não ser tão popular quanto Java ou C#, ela tem boa aceitação no mercado e é uma comunidade que vem crescendo. Quando você gosta de uma tecnologia específica a chance de você ficar proficiente nela é maior, e isso pode ajudar você a se destacar no mercado. Porém, se uma vez que você esteja produzindo sistemas com a linguagem é interessante você procurar uma vaga com este perfil.

Discordo da visão de que software de qualidade é feito de tecnologia. Software de qualidade é feito por pessoas, as habilidades técnicas (fundamentos, não tecnologia), organização de código, capacidade de trabalhar em equipe, comprometimento e principalmente, capacidade de se adaptar/aprender (claro, tem mais características). Essas sim são suficientes (na minha visão) para criar software de qualidade e que são as que mais valorizo. Você pode sim ter o caso de encontrar uma pessoa proficiente em uma tecnologia e outra que não sabe nada dela. A primeira vai fazer o projeto de maneira mais rápida, mas e daí ? Agilidade não é suficiente, as coisas vão bem além de proficiência de tecnologia e no final das contas, é o que menos importa e o que mais muda. A menos que você queira ser chamado de “analista java” ou qualquer outro título que te coloque como especialista preso a uma coisa só.

Já que, ainda, não respondeu, explico que a razão da minha pergunta é devido ao fato de dizer que conhece apenas o básico do Java e querer se aprofundar em Ruby, sendo que na empresa só se desenvolve em Java.
Nada contra estudar outra(s) linguagem(ns), muito pelo contrário.

Veja bem, uma coisa não exclui a outra. Ninguém disse que o autor do tópico deve deixar de estudar engenharia de software ou fundamentos e dedicar-se somente a Ruby.

O fato é que, cedo ou tarde você tem que se aprofundar em alguma ferramenta. Se existe um framework como o Ruby on Rails hoje é porque o DHH teve que se aprofundar na linguagem, ir além do if-for classe-objeto e conhecer a fundo os mecanismos de meta-programação que a linguagem/plataforma oferece. Outro bom exemplo é o Spring, que usa e abusa de reflections e instrumentação de bytecode. Também não vejo como alguém poderia participar no kernel do Linux sem conhecer muito bem a linguagem C e o Make. Enfim, a lista é longa.

O que talvez você não tenha considerado é que existem diversos perfis de vaga. De fato, vagas para juniores tendem a valorizar mais fundamentos, assim as empresas podem moldar o profissional ao seu parque tecnológico. Porém, existem vagas em que as empresas precisam de um profissional mais “pronto”, nesses casos, a especialização é importante.

Agora, eu não vou ficar fazendo suposições sobre o autor do tópico. Eu respondo de acordo com a informação passada. Se o cara gostou de Ruby e quer aprender a tecnologia, verdade seja dita, a demanda por especialistas existe.

Acho que não fui claro. Não disse que ele deva fazer uma escolha ou outra, disse apenas o que ele precisa fazer se quer ter sucesso em uma empresa. Todos os exemplos que você deu envolvem muito mais conhecimento de fundamento do que de tecnologia. O que ocorre na verdade é um aprendizado de determinada tecnologia durante o desenvolvimento de um projeto e isso é bom, mas isso jamais ocorre se o cara não tem fundamento. A própria parte de meta-programação que vc citou é um fundamento, não tecnologia. A respeito de perfis, eu discordo da sua avaliação, já encontrei gente sr., com conhecimento mt bom em tecnologia e experiencia, mas não sabia fundamentos. Não teve um destino feliz. Posto bem pouco aqui, mas sempre acompanho o fórum e a maioria do pessoal que vejo postando eu percebo que focam demais em tecnologia e acabam esquecendo do básico, o que considero um erro brutal.

Isso me parece receita para produzir mão-de-obra medíocre, quero dizer, mediana. Nunca, profissionais de ponta. Leva-se anos para se especializar numa linguagem.

@A H Gusukuma tente ler as outras postagens, aí vc posta sua opinião e podemos discutir isso de uma maneira onde vc exponha seu ponto de vista de maneira mais clara. Suas críticas foram muito vagas.

Exato Rafael… Essa é a pergunta que você deve responder…

Pense bem nela e pese o valor de se manter onde está porque gosta do local e acha que terá um futuro bom aí… No final das contas, isso ainda não seria o fim pro Ruby, bastaria saber se a empresa trabalha com produção também e não só com legados em Java, isso pode abrir as portas pro Ruby no futuro.

Agora claro, se você QUER ser programador Ruby, comece a estudá-la desde hoje e corra atrás, tem mercado e a comunidade só se fortalece.

Abs []

Se você esta interessado então estude.

não entendi qual objetivo do tópico. rs

Percebi que alguns falaram que para ser programador/aprender a programar, precisa entender da engenharia de software, etc…

O que vocês consideram muito importante estudar antes de comprar um livro específico de java, por exemplo?

Por exemplo, eu tenho o JAVA - COMO PROGRAMAR 8ed. É bom ler ele direto ou deve-se aprender algo antes? Se sim, o que indicam?

[quote=rafael.cs]Percebi que alguns falaram que para ser programador/aprender a programar, precisa entender da engenharia de software, etc…

O que vocês consideram muito importante estudar antes de comprar um livro específico de java, por exemplo?

Por exemplo, eu tenho o JAVA - COMO PROGRAMAR 8ed. É bom ler ele direto ou deve-se aprender algo antes? Se sim, o que indicam?[/quote]

Se já tem uma base em lógica de programação e algoritmos não vejo problema.
Como já tem o livro do Deitel, começa por ele mesmo.
Agora, tenha em mente que vai precisar de determinação, dedicação, tempo, e fundamentalmente, muita prática.

Vocês já estão entrando naquele velho ditado melhor ser “Generalista” ou “Especialista” …
Cara se você quer realmente aprender Ruby aprenda !
Você tem que fazer aquilo que gosta assim será bom no que realmente faz.
Empresa pouco se importa com você,amanhã você sai já tem outro no seu lugar,corra por você :slight_smile:

[quote=lucasvvasconcelos]Vocês já estão entrando naquele velho ditado melhor ser “Generalista” ou “Especialista” …
Cara se você quer realmente aprender Ruby aprenda !
Você tem que fazer aquilo que gosta assim será bom no que realmente faz.
Empresa pouco se importa com você,amanhã você sai já tem outro no seu lugar,corra por você :slight_smile:
[/quote]

Mais ou menos…você tem que fazer pra você aquilo que você gosta… pra empresa você precisa fazer o que é útil pra ela. Se a empresa nada tem a haver com Ruby, não adianta aprender Ruby e deixar o Java, que é a linguagem usada na empresa, de lado. Aprender uma linguagem nova é muito recomendado, mesmo que você não vá utilizá-la no seu dia-a-dia. O que não se deve fazer é deixar de lado o que é útil pra empresa pra fazer o que gosta.

Se quiser trocar o Java pelo Ruby, troque de empresa também. Existem muitas por aí que veem muita utilidade no Ruby.

[quote]Percebi que alguns falaram que para ser programador/aprender a programar, precisa entender da engenharia de software, etc…

O que vocês consideram muito importante estudar antes de comprar um livro específico de java, por exemplo?

Por exemplo, eu tenho o JAVA - COMO PROGRAMAR 8ed. É bom ler ele direto ou deve-se aprender algo antes? Se sim, o que indicam?[/quote]

Tá, primeiramente, vc sabe algoritmos ? tem familiaridade com programação estruturada ? Pra simplificar a pergunta, tu sabe C ? Esse é o primeiro passo. Se tu sabe, então escolha uma linguagem de programação qualquer que seja orientada a objetos, pode ser ruby ou java ou python ou qualquer outra. O livro dos Deitel é bom para introduzir não apenas a linguagem, como também diversos conceitos novos de programação. Qualquer livro deles, de qualquer linguagem que vc deseja, será um excelente guia.

PS: Quer a maior prova de que linguagem de programação é tudo igual ? Pegue todos os livros dos deitel, os exemplos são os mesmos, as únicas diferenças são de sintaxe e tbm no caso de alguma API específica da linguagem que eles querem demonstrar o uso, de resto, é tudo igual. (Obviamente existe uma teoria por trás que explica o motivo disso, mas não há necessidade de falar disso).

Considerando vários fatores, eu indicaria que você primeiramente se dedicasse em aprender a linguagem Java, afinal você trabalha numa empresa que usa Java, tem um ótimo livro sobre Java, conhece programadores Java, etc.
Vamos falar francamente, suas chances de mudar da sua atual área para programação será maior com Java do que com Ruby, não é?
Caso tenha dificuldades em aprender, avalie a possibilidade de fazer alguns cursos.