topo

quinta-feira, 28 de agosto de 2008

Ruby on Rails



Nome do entrevistado:
Akita, Fábio
E-mail:
fabioakita@gmail.com
Área de atuação:
Programação Ruby on Rails

- Fale um pouco sobre Ruby on Rails.

R. Ruby on Rails é um framework para desenvolvimento de aplicações Web construída sobre a linguagem Ruby. Ruby é uma linguagem com mais de 10 anos de idade, com características de orientação-a-objetos, programação funcional, tipagem dinâmica, estrutura muito elegante. Rails só é possível graças às características da linguagem Ruby.

Há mais de 3 anos Rails tem sido a fonte de inspiração da evolução de diversos outros frameworks web em outras plataformas, e continua sendo uma das vanguardas em inovações nessa área.

- Quais cursos/faculdades são necessários para se tornar um profissional nesta área?

R. Um bom programador Ruby não é diferente de um bom programador Java ou C#. Um bom programador é um artista. Artistas não se limitam a saber usar um único pincel. É o que define bons profissionais de desenvolvimento de software em geral. Claro, sempre existe a plataforma favorita, mas isso não deve ser desculpa para ser míope em relação ao mundo em geral.

Como Rubista eu não advogo que um programador Java, por exemplo, deva deixar Java de lado para usar somente Ruby. Acredito que mesmo que um Javeiro não tenha oportunidade de usar Ruby no seu dia a dia, apenas o fato de aprender um novo paradigma aumenta em muitas vezes sua capacidade de desenvolver Java. Desenvolvimento de software caminha mais e mais para a pluralização do profissional.

“Aquele que conhece apenas o martelo vê todos os problemas como pregos”, não poderia ser mais verdade.

Portanto, para se tornar um profissional em Ruby, antes de mais nada esse profissional tem que ter gosto por seu ofício. Da mesma forma como um pintor não pode ser um batedor de cartão, um programador tem que aprender sobre as mais diversas áreas em tecnologia: administração de sistemas, bancos de dados, algoritmos, design patterns. Ao mesmo tempo – em qualquer plataforma – deve tentar ver a maior quantidade de código open source possível. Ninguém sabe tudo de cabeça e o exemplo de um único livro é muito pobre. Seguindo o exemplo do pintor, é como um pintor que aprendeu a pintar tendo como inspiração um único quadro: com certeza seu trabalho será infinitamente mais pobre do que um pintor que observou todas as grandes pinturas do mundo.

- Quais são as maiores dificuldades encontradas em seu dia-a-dia como programador Ruby on Rails?

R. A maior dificuldade é encontrar bons programadores, mas isso não é um problema só de Rails. Mesmo num mercado maior como Java ou C# eu sempre tive alta dificuldade em encontrar programadores competentes. Quantidade não chega nem perto de ser qualidade. A maior dificuldade, principalmente como evangelizador, é convencer as pessoas a descer do pedestal e realmente aprender a ser um “bom” programador, como defini acima.

- O mercado de trabalho tem acolhido bem os profissionais desta área?

R. Sim e não. Os “bons” programadores tem conseguido se virar de diversas formas: algumas poucas empresas no Brasil estão contratando rubistas, alguns empreendedores de produtos inovadores (startups) estão contratando. Lá fora há muita empresa interessada em offshore outsourcing. Eu mesmo trabalhei para uma consultoria americana nesse regime e alguns amigos meus também.

Agora, “fábricas de software”, com robozinhos que batem cartão, não, não existe. E não acho que nenhum desenvolvedor que se preze deva almejar algo assim.

- Quais são os maiores pontos positivos em trabalhar com esta linguagem de programação?

R. Se você já é um programador em outras linguagens, provavelmente sempre programou do mesmo jeito. Para quem pulou de VB para C#, ou para quem saiu de Pascal para Java, enfim, o paradigma mudou muito pouco e não houve necessariamente ganho considerável de qualidade. Linguagens como Ruby, Python, Erlang, OCaml trazem paradigmas diferentes e maneiras diferentes de resolver o mesmo problema.

É como saltar da Idade Media para a Renascença. Novos conceitos são introduzidos como tipagem dinâmica, compreensão de listas, DSLs, concorrência sem efeitos colaterais. Na realidade não são coisas novas, essas linguagens existem faz tempo, na realidade estamos redescobrindo esse potencial.

Ruby é uma das linguagens mais “agradáveis” para se começar e possui muitas dessas características. Depois de uma curva de aprendizado relativamente baixo (o que não significa que seja fácil de entender num único fim de semana, claro) a linguagem é muito gratificante. Uma vez entendido os paradigmas, soluções muito mais interessantes começam a aparecer.

- Qual é a faixa salarial dos programadores Ruby on Rails?

R. Isso varia bastante. Como não existe um mercado “formal” de Rails, tudo vai depender da qualidade do próprio programador em se negociar. Mas não existe mágica: ele vai ganhar exatamente quanto merece.

- Existem níveis de cargo para programadores Ruby on Rails? Ex. Junior, Master, Senior

R. Eu não uso a palavra “cargos” mas sim, com certeza, existem os iniciantes em Rails e os sêniors. Novamente, isso vai depender da qualidade do programador em saber se vender. A maioria das pessoas acha tudo muito cômodo: não basta enviar um currículo e esperar ser chamado. Independente de Rails, bons salários e bons cargos só são oferecidos a profissionais que fazem a diferença. Como eu disse, os empregos em massa estão no mundo Java, C#. Se o objetivo for somente ter um emprego, apenas faça um curso de Java e envie seu currículo às dezenas de empresas de recrutamento. Com certeza haverá um emprego.

Agora, se quiser realmente ter um trabalho motivador, bem remunerado, onde você faz a diferença, é necessário ter uma boa preparação. Novamente, isso independe da plataforma. Todos os Railers do mundo que tem essas características estão empregados e ganhando muito bem.

É a velha história: para riscos pequenos, remunerações pequenas. Os ganhos maiores são apenas para aquelas que assumem os maiores riscos e dão a cara para bater.

- Rails trabalha no formato MVC, fale um pouco sobre este método de programação?

R. Não é um “método”, é apenas uma convenção que mais se tornou conhecida. MVC, ou Model-View-Controller na realidade não é o que classicamente se conhece como “MVC”. Na realidade o padrão que se convencionou chamar de MVC é o Model-2 primeiramente apresentado pela Sun para o J2EE, uma variância do MVC clássico – que é um padrão de desenvolvimento desktop criado no Smalltalk vários anos antes da Web.

Programadores da Web 1.0, que vieram de ASP, PHP, estão acostumados a pensar em páginas que chamam páginas. Páginas que podem ser incluídas dentro de Páginas, e cada página é independente. Isso gera o que chamamos hoje de “código macarrônico”, ou “quick and dirty”. É um jeito muito rápido de se fazer um site Web, mas é extremamente ruim quando seu site é grande ou quando você precisa dar manutenção depois. Isso sem contar que é bastante complicado otimizar performance, monitorar segurança, etc.

Dividindo o problema em “camadas”, as chances de organizar seu código crescem muito. MVC advoga a separação em duas camadas independentes: Model e View e uma que compõe as outras duas. Uma View não deve interagir diretamente com o Model e vice-versa, apenas o Controller deve poder fazer esse meio de campo.

Porém, nada disso é mágica. É bastante possível (e isso acontece o tempo todo), criar sistemas “MVC” que são macarrônicos. Para amenizar isso surgiram dezenas de “Design Patterns”, que são consideradas boas práticas de programação. Dependency Injection é uma delas.

No caso do Rails, o framework e a linguagem simplificam bastante essa confusão e burocracia. Ela utiliza os conceitos de MVC e internamente tem diversos design patterns já implementados, tornando seu entendimento e utilização muito mais simples.

- Você acredita que o Ruby on Rails possa se tornar uma linguagem tão utilizada quando PHP, ASP, ColdFusion?

R. De jeito nenhum. O sucesso de uma tecnologia não se mede pelo seu “market share”. Principalmente no Brasil, existe ainda muitos programadores ASP por exemplo. Mas a maioria deles dificilmente ganha mais do que um programador Java médio. O mesmo vale para PHP. Existem exceções, claro, mas não é esse o ponto.

Um exemplo prático do mundo é a Apple: com apenas 6% do “market share”, ela fatura tanto ou mais do que HP ou Dell que vendem Windows, que é 90% ou mais do mercado.

Por que vendendo para uma fatia menor ela consegue ganhar tanto? Óbvio: porque ela vende produtos de qualidade Premium por um preço Premium.

É exatamente esse o perfil de desenvolvedores sêniors de Rails e de outros frameworks de vanguarda: nós atendemos um market share bastante pequeno, um nicho. Porém, oferecemos um plus e ganhamos por isso.

O fato do Ruby on Rails ser open source também significa que ela não vai morrer por decreto, como aconteceu com o ASP 2 (e não, ASP.NET não tem absolutamente nada a ver com o ASP antigo, alem de serem feitas pela mesma empresa). A comunidade por trás do Rails é sua verdadeira força e a principal responsável por seu sucesso.

Ruby on Rails será utilizada por empresas que precisam de qualidade, produtividade, não por corporações que não se incomodam com software, onde software é apenas considerado mais um custo necessário. Existe uma grande diferença desenvolver software numa empresa especificamente de software, e de desenvolver numa empresa onde o core business é vender celulares, por exemplo, a prioridade é vender celular, não fazer software. Para esse tipo de empresa, se o código é macarrônico, se os programadores estão satisfeitos, tudo isso é irrelevante, e portanto eles nunca usarão Rails ou qualquer outro dos novos frameworks. Pelo mesmo motivo, os “bons” programadores como expliquei acima, dificilmente duram muito tempo nesse tipo de empresa.

- Dê agora uma DICA PROFISSIONAL aos leitores desta entrevista que trabalham ou pretendem trabalhar com esta linguagem de programação.

R. Novamente, não gosto de falar explicitamente de programadores Ruby. O que eu recomendo vale para programadores em geral. Cada um sabe de si, e a pessoa precisa decidir: ela programa porque gosta de programar, ou programa porque apenas precisa de um emprego, seja lá qual for, e que pague um salário no fim do mês?

Para esses, recomendo se ater às linguagens de “mercado”, onde existem empregos em abundancia, embora a remuneração e as perspectivas de futuro não sejam grande coisa. Para os que realmente gostam do ofício, recomendo continuar no mercado mas se aprimorar não somente em Ruby e Rails mas em todas as novas tendências do mercado. Exemplo? Não é certo ainda, mas os bancos de dados estão saltando para modelos diferentes dos relacionais, procure saber sobre CouchDB ou SimpleDB.

Tecnologias morrem depressa. É ilusão achar que essa plataforma única que você sabe hoje (seja lá qual for), estará no mesmo lugar daqui 5 ou 10 anos. Cobol ainda persiste até hoje, mas o tão visado “market share” praticamente inexiste. Os poucos que sobraram ganham bem, claro, pois são raridade. Mas para os que gostam de baixos riscos, isso não existe mais. Ainda existe muito Clipper e ASP por aí, mas como as empresas por trás delas não existem mais ou não se interessam mais, em breve elas não rodarão mais. Novamente, a zona de conforto desses programadores já não existe mais.
Qualquer profissão exige aprendizado constante, alguns mais do que outros. Vejam medicina e direito: o tempo todo existem novidades. Os bons médicos e bons advogados, são os que mais estão atualizados. Existem os médicos e advogados medíocres, e eles continuam ganhando pouco. Os bons ganham muito mais, mas não existe almoço de graça: para ter o maior prémio, é exigido o maior sacrifício.

Em tecnologia isso não é diferente, a diferença é que o ciclo de vida dessas tecnologias é muito curto. Onde uma técnica medica pode durar décadas, uma tecnologia inovadora pode perder seu brilho em 10 anos ou menos. Os que já investiram ou estão começando a investir em Rails agora são justamente os que terão os maiores retornos.

quinta-feira, 7 de agosto de 2008

Tecnologia em Informática

Nome do entrevistado:
Florentino, Rodrigo Pereira
E-mail:
rodrigo@coopcred.com.br
Área de atuação:
Tecnologia em Informática

- Porque você escolheu esta área profissional?

R. Primeiramente porque gosto muito, o mais importante é fazermos o que gostamos, sentir prazer pelo trabalho. É também uma área que cresce muito a cada dia, é a profissão da atualidade e do futuro.

- Quais cursos/faculdades são necessários para se tornar um profissional nesta área?

R. Um curso técnico em Informática é fundamental e ajuda muito, uma faculdade de Ciências da Computação ou Tecnologia da Informação também é muito importante, mas a experiência adquirida no dia-a-dia ou estágio na área é muito mais importante para o sucesso profissional.

- Quais são as maiores dificuldades encontradas em seu dia-a-dia?

R. A maior dificuldade é o tempo, a Tecnologia da Informação é muito rápida e dinâmica, o sistema não pode parar pois a empresa parada geram grandes prejuízos, o tempo é meu maior inimigo no dia-a-dia. Manter uma redundância dos servidores e backup dos circuitos de comunicação são fundamentais para evitar contratempos.

- Os recursos investidos em especializações para a sua carreira estão dando o retorno esperado?

R. Sim, é claro que esse retorno é demorado e as vezes não é o retorno esperado, mas se fizermos as especializações certas e que mais possam contribuir em nossa rotina diária, esse retorno vem, aos poucos é claro, é preciso ter paciência.

- Quais são os maiores pontos positivos em trabalhar nesta área?

R. Eu creio que o maior ponto positivo em trabalhar na área de TI é ser reconhecido como um profissional necessário em qualquer ramo de atividade, pois a tecnologia está presente em todos os lugares e setores, dessa forma a valorização do profissional aumenta.

- Esta profissão completa seus objetivos profissionais ou ainda falta algo?

R. No meu caso ainda falta, pois ainda sou novo e pretendo conquistar muitos objetivos ainda, melhores cargos e salários e até abrir um negócio próprio na área de TI.

- Existem níveis de cargo em sua profissão?

R. Sim, basicamente são divididos em Analistas e Técnicos, os analistas são formados em algum curso superior e também costumam ter mais experiência profissional, os técnicos tem alguma formação de nível médio, mas dentro de cada setor há outros níveis, alguns exemplos como Analista de Suporte I, II e III.

- O mercado de trabalho acolhe bem os profissionais nesta área?

R. Sim, é claro que depende muito de cada região, algumas regiões do País ainda são pouco desenvolvidas em questão de tecnologia e informática, mas no geral os profissionais são bem acolhidos sim.

- Qual é a idade mínima exigida para ingressar nesta profissão?

R. Não há idade mínima, desde que tenha a idade para se ter uma carteira de trabalho, vale lembrar que pessoas jovens se dão muito bem nessa área, pois tem facilidades de usar as novas tecnologias.

- Dê agora uma DICA PROFISSIONAL aos leitores desta entrevista que trabalham ou pretendem trabalhar nesta área.

R. Para as pessoas que pretendem trabalhar na área de TI, primeiramente tente conhecer um pouco mais a fundo a profissão, troque idéias, seja curioso e façam algum curso básico para saber se irão gostar da profissão, pois o mais importante é gostar do que irá fazer, depois disso é agarrar com muita dedicação e vontade que as coisas acontecem naturalmente e aos poucos os objetivos pretendidos serão conquistados.
Para os que já trabalham na área já conhecem a profissão, sabem os pontos negativos e positivos, então só desejo boa sorte e muito sucesso a todos.

segunda-feira, 4 de agosto de 2008

Webdesigner

Nome do entrevistado:
Ávila, Bruno
E-mail:
brunoavila@brunoavila.com.br
Área de atuação:
Webdesigner

- Porque você escolheu esta área profissional?

R. Desde criança queria ser publicitário e sempre me interessei por comunicação.
Tempos depois realmente acabei me tornando publicitário porém antes disso tive contato com a internet em 1995. A curiosidade fez com que eu procurasse entender como era possível criar sites.
Foi aí que, do nada, vi que me tornei web designer.

- Quais cursos/faculdades são necessários para se tornar um profissional nesta área?

R. Sempre recomendo as faculdade de publicidade ou design como graduações mais próximas do web design. Já graduação na área de web design ainda são muito poucas. Acredito que formando-se em publicidade ou design, o profissional saia com uma boa base teórica para desempenhar a função de web designer. Agora, sem dúvida é necessário conhecimentos mais específicos sobre a profissão, o que cursos complementares podem ajudar. Pensando nisso criei alguns cursos voltados para
o web design como o Curso Online de Design Web, o Curso 10 Sites Reconstruídos, PSD para HTML & CSS e Como Vender Sites. ( http://cursos.brunoavila.com.br )

- Quais são as maiores dificuldades encontradas em seu dia-a-dia?

R. Acredito que a maior dificuldade é trabalhar com gosto. Essa história de que "gosto não se discute" na nossa profissão não existe. O gosto do cliente tem que ser discutido e isso pode não ser fácil.

- Os recursos investidos em especializações para a sua carreira estão dando o retorno esperado?

R. Claro, ainda mais na nossa profissão que é muito próximo da tecnologia, sempre é necessário se atualizar, além da especialização.

- Quais são os maiores pontos positivos em trabalhar nesta área?

R. A possibilidade de inovar a cada trabalho, não sendo um trabalho rotineiro. Para os freelancers, a possibilidade de trabalhar em casa e fazer o seu horário é algo que agrada muito.

- Esta profissão completa seus objetivos profissionais ou ainda falta algo?

R. É algo que me satisfaz hoje mas dizer que me completa e dizer que não falta nada, seria uma mentira.
Talvez se eu pensasse assim, ficaria parado no mesmo lugar pra sempre, achando que tudo estava bom. Acredito que sempre devemos buscar novos horizontes, aperfeiçoando o caminho onde se está ou então tomando novos rumos. O que não podemos deixar de fazer é progredir. E no progresso sempre falta algo, podemos dizer que essa falta seria um dos motores desse progresso.

- Existem níveis de cargo em sua profissão?

R. Existe por experiência, o tempo de atuação na área que dita os diversos níveis de rendimentos. Mesmo assim ainda é difícil quantificar isso pois, assim como na criação publicitária, no web design é complicado medir criatividade.
Pode acontecer de um web designer com 1 ano de profissão tenha trabalhos bem mais criativos que um web designer com 5 anos de profissão.

- O mercado de trabalho acolhe bem os profissionais nesta área?

R. Acredito que sim, o mercado cresce com o crescimento da Internet, como a internet ainda tem muito espaço para crescer, ainda temos muito espaço para web designers, principalmente para os profissionais já que existem muitos
web designers amadores, sem domínio da teoria. Por isso considero que se destacar nessa área não é tão difícil, principalmente ao comparar com as profissões tidas como tradicionais.

- Qual é a idade mínima exigida para ingressar nesta profissão?

R. Creio que seja a idade mínima para se ter uma carteira de trabalho ou para se criar um registro de autonomo ou abertura de empresa. Se você tem criatividade e se identificar com essa área, a idade não será problema.

- Dê agora uma DICA PROFISSIONAL aos leitores desta entrevista que trabalham ou pretendem trabalhar nesta área.

R. Minha dica é: observe. Observe as coisas ao seu redor, como as pessoas interagem, pergunte a você o porquê das coisas.
Por quê as embalagens de sabão seguem um mesmo conceito e os de chocolate outro conceito bem diferente. Por quê não se utiliza a cor violeta em rótulos de Whisky? Por quê na decolagem dos aviões desligam-se as luzes da cabine? Enfim, parece besteira, mas essa observação do mundo vai ajudar você não só na sua profissão mas na sua vida também. Você irá auto-perguntar e irá atrás das respostas. Essa curiosidade será responsável por boa parte de sua criatividade. Você, ao criar, irá trazer para sua criação suas observações sobre o mundo. E fontes de inspiração não irão faltar.

Para o alto e Avante!