Ranking das linguagens de programação

O índice TIOBE utiliza técnicas de pesquisa pela internet – que não são cientificamente rigorosas – para tentar medir a popularidade de uma linguagem de programação.

O ranking das linguagens de programação se encontra atualmente assim (Vejam só quem está no 13º lugar e subindo):

Ranking das linguagens de programação

Fonte: http://www.tiobe.com/tpci.htm

Se gostou da matéria deixe um comentário or subscribe to the feed and get future articles delivered to your feed reader.

Comentários

Nenhum comentário ainda.

Deixe um comentário

(obrigatório)

(obrigatório)


Faz-me rir: Por que é tão difícil encontrar bons programadores ?

Por que é tão difícil encontrar bons programadores

É um problema sério no mercado: programadores bons normalmente estão empregados e a concorrência com as trocentas empresas de TI que estão pipocando por aí fazem com este profissional seja realmente valorizado.

Formar programadores nem sempre é uma boa opção, pois eles tendem a ir embora com o tempo, seduzidos pelo mercado. No entanto, mesclar bons programadores da empresa com programas de estágio, renovação constante e incentivos de curto e médio prazo pode ser uma boa opção. O mercado de TI está em franca expansão no Brasil e a tendência é ficar cada vez difícil a tarefa de se achar desenvolvedores no mercado.

É bom ter programadores estagiários?

É ótimo quando você tem programadores mais experientes dando tutoria a estagiários. Mas quando você usa o estagiário como mão de obra barata, está dando um tiro no pé. Vai precisar ler meu artigo sobre crises se ficar se cercando de estagiários.

Qual a diferença entre programador Júnior, Pleno e Sênior na prática?

Programador Júnior. Recebe pouco, não tem experiência, precisa de acompanhamento e te complica em situações de crise ou estresse. Funciona bem mas sem o devido acompanhamento vai trazer problemas.

Programador Pleno. Recebe médio, experiência média, não precisa de acompanhamento, costuma se enrolar em projetos grandes mas resolve na maioria da vezes. Ajuda em momentos de crise sem bem orientado, caso contrário, tem a tendência em assumir posicionamento defensivo.

Programador Sênior. Recebe bem, você acha que nunca precisa dele, mas em momentos de crise é o cara que salva a sua vida. Se você nunca precisou de um cara bom, é porque nunca se meteu em encrencas.

O que usar? ASP, PHP, Cold Fusion, Java, ASP.net ou outras?

ASP. Fácil de achar programadores, muito popular, curva de aprendizado baixa, pouca performance. Os projetos, quando crescem, tendem a ficar ruins por falta de meios de modularização e as IDEs (softwares que ajudam na programação) não são muito poderosas. Média produtividade. É péssima para dar manutenção mas é fácil de achar quem faça.

PHP. Tem programadores de sobra, muito popular, curva de aprendizado média, média performance. Média produtividade. Médio para dar manutenção pois tem uma estrutura mais inteligente que ASP (é Orientada a Objetos).

ASP.net. Médio de se achar programadores, curva de aprendizado alta, alta performance. Quando utilizada por quem entende, a manutenção é fácil independente do tamanho do projeto. Boa produtividade. [Recomendada]

Cold Fusion. Muito boa, melhor que ASP, mas pior que ASP.NET, difícil de achar programadores e pouco popular. Esqueça.

Java. Existem muitas formas diferentes de se programar para web usando Java com vários frameworks e tecnologias. O programador tem ser especialista no framework e tecnologia. Curva de aprendizado alta, boa performance, programador difícil de achar e caro, baixa produtividade comparada com as outras acima. Em outros ambientes (não web) é a melhor escolha na maioria das vezes.

Outras. Esqueça as outras. Não é interessante detalhar os motivos, mas passam pela curva de aprendizado, popularização e dificuldade achar profissionais.

Qual é o melhor lugar para se contratar um programador?

No site da Apinfo.

Qual é a forma mais eficiente para avaliar programadores? Como saber se ele é bom?

Faça um teste prático, você ficará surpreso com a falta de conhecimento das pessoas em questões básicas mesmo que elas afirmem no currículo que são especialistas. Avalie junto com uma pessoa técnica.

Procure coerência entre conhecimento e experiência. Pergunte no que ela é boa e não se iluda com siglas. Quanto mais siglas, pior, significa falta de foco e/ou pessoas generalistas. Generalistas são bons para darem manutenção, mas ruins para construírem do zero por não estarem focadas em boas práticas da tecnologia. Generalistas podem ser bons líderes de projeto se tiverem o devido perfil para tal.

O que você acha das consultorias de informática?

Existem dois tipos: consultorias de RH que contratam e alocam profissionais e consultorias de PROJETO, que executam o projeto como terceirizado.

RH. Cobra caro para achar o profissional, não avalia bem o conhecimento técnico e te manda qualquer um. Já me mandaram um cara que parecia um travesti, outro que tinha um problema mental (de verdade, ele mesmo me disse) e outro que era estagiário e foi vendido como programador pleno. Trabalhei com várias consultorias de RH.

Projetos. Só querem te cobrar muito caro e vender horas, não projetos. Fique atento ao escopo do projeto, você terá problemas se aumentar o escopo e não estiver disposto a pagar mais.

Quais são as piores coisas para um programador dentro da empresa?

  • Pressão para entregar um projeto

  • Gente que não entende nada, mandando e dando opinião

  • Mudança constante

  • “Invenção de moda”

  • Trabalhar com gente incompetente

Há vários outros, estes são os que vieram à cabeça agora.

Por que dá tanto problema na área de programação da agência?

A área de desenvolvimento de uma agência é a mais indomável de todas. Poucas vezes eu vi a parte de criação, redação e arte darem problemas, mas a área de programação é responsável por mais de 90% das crises de projetos. Não é necessariamente a causa das crises, mas os problemas do projeto sempre se refletem mais fortemente na programação, pois é uma área extremamente sensível a mudanças, planejamento ruim e atrasos dos outros.

O que você acha de programadores freelancers?

Péssima idéia, não tem coisa pior do que isso. Você tem que dar muita sorte para achar um programador freelancer bom e compromissado. Eu, por exemplo, conheço somente dois. Tem que procurar muito e constantemente.

O meu programador faz trabalho freelancers para outros?

Há 99,99% de chances dele fazer.

“Se ele faz trabalho freelancer, ele levar informações estratégicas da minha empresa!”

Isso é verdade, mas dificilmente isso ocorrerá porque essa idéia faz muito mais parte da sua “mente conspiratória” do que da dele. Ele só quer uma grana extra. Relax.

Se eu brigar com um programador, ele pode querer se vingar e apagar todos os sites ou o bancos de dados?

Pode ter certeza que isso é uma das coisas que vão passar pela cabeça dele. Você é muito inocente se não leva esta situação a sério. Eu já isso acontecer mais de uma vez.

Por que alguns programadores sempre orçam o tempo do projeto errado?

  • Ele é muito júnior

  • Você muda muita coisa no projeto sem consulta-lo ou exerce muita pressão. Com isso ele não consegue prever a mudança com precisão

  • Ele é realmente um incompetente ou não tem esta habilidade

Como um programador pode orçar o tempo de um projeto corretamente?

A forma mais segura de avaliar o tempo de um projeto é separa-lo em pequenos módulos (ou entregas) e calcular o tempo de cada módulo para chegar a uma estimativa segura.

É importante que o escopo do projeto esteja bem detalhado para isso. Faça isso com um desenvolvedor experiente, evite programadores júniores nesta tarefa. A diferença de avaliação de tempo pode variar de acordo com o expertise, confiança e experiência do programador.

Como saber se a avaliação de tempo do projeto é correta se não entendo de programação?

Depois que o projeto estiver dividido em módulos, compare com a avaliação de tempo de outros módulos em outros projetos e procure incoerências.

Exemplo: um sistema de enquete não pode levar três dias para ser feito num projeto e seis dias em outro. Um cadastro simples demora muito menos tempo para ser feito do que um sistema de enquetes. Tendo um histórico de avaliações e utilizando bom senso e experiência, você pode fazer um bom julgamento sobre a avaliação de tempo no projeto.

Por que ele às vezes fala que precisa de dois dias para uma tarefa e outras vezes a mesma tarefa dura cinco dias?

Certifique se as tarefas são realmente parecidas. Se forem:

  • Ele está querendo se proteger do excesso de trabalho

  • Ele é muito ruim

  • Ele está te enganando (mais comum)

Por que algumas pequenas modificações no projeto demoram tanto?

Existem projetos complexos ou mal programados onde pequenas modificações são realmente complicadas, mas a experiência e o conhecimento do programador podem influenciar este tempo. Isso é normal.

Antes de mandar um programador embora, do que é bom se certificar?

  • Verique se ele possui acesso a dados da empresas, senhas e logins. Mapeie para trocar logo após a saída dele

  • Tome cuidado se ele vai levar conhecimento embora. Se ele é o único que sabe mexer em determinado projeto, você terá problemas em dar manutenção neste projeto, pois outro programador terá o esforço de aprender o projeto para começar a mexer

  • Verifique a dificuldade em contratar outra pessoa com o mesmo conhecimento para a área

  • Preveja o impacto destas dificuldades na continuidade de seus projetos

O que fazer se o programador da minha empresa é um folgado?

Eu conheci muitos programadores realmente folgados, mas a sua empresa contribui muito para isso. Acontece normalmente quando ele é o único programador ou é gerenciado por pessoas que não entendem nada de programação e o tratam como se fosse um pasteleiro de feira. Tente identificar o motivo dele ser assim. Na maioria dos casos não tem jeito, tem que mandar ele embora.

Sou Atendimento. Se eu entendesse de programação, ou pelo menos me esforçasse, isso iria melhorar o trabalho dos programadores da minha agência?

Sem dúvida. Um dos maiores problemas das agências é que o cara que faz a venda ou lida com o cliente não entende nada do que vai ser programado.

Sou Arquiteto de Informação e faço wireframes na minha agência. Como posso melhorar a vida do programador que vai desenvolver o projeto?

Valide o wireframe com ele constantemente. Um dos grandes problemas que vejo nas agências é o fato das pessoas que fazem wireframes não entenderem de programação. Cansei de ver wireframes improgramáveis porque o AI não tinha conhecimento de programação, apenas visão de usuário.

O que vai acontecer se eu acelerar a programação? Botar o programador para fazer uma coisa muito rápido?

Você vai criar um programador que utiliza POG.

Ele vai fazer mal feito e vai te dar muita dor de cabeça quando você entregar o projeto para o cliente. Isso é tão certo quanto 1 + 1 = 2.

O que vai acontecer se eu botar ele pra trabalhar mais que 8 horas por dia, finais de semana e madrugadas?

Leia a resposta acima.

Um hacker fez um estrago no meu site. O meu programador é culpado?

Não necessariamente, mas a experiência dele, tecnologia utilizada e a forma com você implementa a segurança do seu servidor podem contribuir significativamente para isso.

Você conhece algum projeto que ficou tão mal programado por causa da pressão da agência que trouxe problemas por longos prazos?

Vários. Conheço gente que está chorando há muito tempo. Já vi a coisa ficar muito feia mesmo. O esforço para fazer bem feito pode te livrar de dores de cabeça grandes.

O programador da minha agência não testa o que faz! O que fazer?

A idéia de que um programador pode ser capaz de testar os projetos que faz é uma lenda. Grave isso: ELE NÃO VAI TESTAR! Ou pelo menos vai fazer um teste muito superficial. Solução? Tenha um área de testes.

Contrate uma pessoa responsável por testar os projetos e criar relatórios sobre eles. Não é difícil de se formar uma pessoa assim. E seguindo uma metodologia simples, ele é capaz de te livrar de 90% das dores de cabeça. A quantidade de defeitos do projeto tem relação direta com experiência, pressão para entregas e mudanças no projeto.

E sobre os talentos?

A diferença de produtividade entre um cara talentoso e um cara bom pode ser absurda. Saiba quem são os talentosos e invista neles. Se for um trabalho de produção (não criativo), a diferença de velocidade pode ser 100% ou 200% maior. Acredite.

Qual a solução para projetos rápidos e a variação de demanda na agência?

Não é uma fórmula simples de resolver, mas é essencial que se trabalhe com parceria com pequenas e médias empresas. Evite ficar enchendo a agência de programadores, mescle os projetos com parceiros, trabalhe com uns poucos freelancers confiáveis e mantenha uma equipe mais sênior internamente capaz de gerenciar outras empresas e passar o conhecimento para os mais novos mesclando o trabalho com estes.

Num projeto normal, acredito que 20% do trabalho pode ser feito com geradores de código, 30% com programadores júniors, 30% com plenos e em 20% do tempo você realmente precisa de um programador sênior.

Claro que isso não é uma regra, mas um projeto não precisa ser 100% construído por programadores sêniors para ficar bom. Além disso, a utilização de programadores júniors resolve apenas parte do projeto, ele vai se embananar quando precisar fazer coisas mais complexas e que exigem um pouco mais de conhecimento e experiência. [Webinsider]

Sobre o autor

Marcelo Okano (okano@mandic.com.br) é gerente de TI da CDN Interativa.

Clique aqui para o artigo original (Depois de receberem milhares de críticas, retiraram do ar)

Se gostou da matéria deixe um comentário or subscribe to the feed and get future articles delivered to your feed reader.

Comentários

Nenhum comentário ainda.

Deixe um comentário

(obrigatório)

(obrigatório)


Adobe Flex e Ajax desmistificados

Recentemente eu e o Beck Novaes tivemos uma troca de idéias sobre o Flex e o Ajax, ao vermos mensagens em listas de discussão, artigos e no mercado sobre um possível embate entre essas tecnologias.

Eu já havia feitos comentários sobre esse assunto (na lista CF-Brasil e na lista Flex-Brasil por exemplo), mas esse artigo apresenta de maneira mais clara e concisa as minhas idéias sobre o assunto, com o o objetivo de desmistificar a concorrência entre Adobe Flex e Ajax através de sua possível complementação para desenvolvimento da nova geração de aplicativos: rich internet applications. O Beck também postou suas considerações sobre o assunto no blog da DClick.

Adobe Flex e Ajax desmistificados

Debates sobre qual é a melhor dentre duas tecnologias são comuns. Uma discussão desse tipo relacionada ao desenvolvimento de aplicativos para web envolve o Adobe Flex e o Ajax. Mas será que somos capazes de dizer qual delas é a melhor? Seria possível compará-los?

Sites da Web

A Web surgiu baseada em duas tecnologias – as quais ainda hoje são utilizadas extensivamente, o HTTP (Hyper Text Transfer Protocol), responsável pela comunicação síncrona entre um visitante e o site na Internet; e o HTML (Hyper Text Markup Language), um formato de descrever documentos interconectados entre si, tal como um hipertexto propõe.

Assim, cada nova requisição de um visitante estabelece uma nova comunicação com o servidor, e um documento completamente novo é gerado e devolvido ao cliente como resposta de sua requisição, ocasionando o que conhecemos como atualizações (refresh) de tela.

Nova demanda

Enquanto essa dupla funcionou – e ainda funciona – muito bem para operações essencialmente de leitura, como a visualização de grandes quantidades de informação tal como era o objetivo inicial nos moldes do hipertexto, a Internet cresceu exponencialmente e hoje é utilizada nos mais diferentes âmbitos, desde pesquisas de documentos até transações bancárias e comerciais, em que esse formato de comunicação síncrono é pouco efetivo.

Novas soluções

Em 2001, a Macromedia (agora Adobe) usou pela primeira vez o termo Rich Internet Applications (RIA) para descrever um novo modelo de aplicativos para a Web, baseado no que aplicativos tradicionais para desktop ofereciam – interface responsiva e intuitiva, com o melhor da Internet – seu alcance global e comunicação, e criou uma plataforma – a Flash Platform, para o desenvolvimento de RIAs.

A Flash Platform oferece uma comunicação mais efetiva para processos transacionais pois está em sua natureza uma comunicação assíncrona: o usuário pode continuar a realizar a sua tarefa enquanto os dados são obtidos do servidor, sem a necessidade de atualizar toda a aplicação. Oferece ainda toda a capacidade gráfica e interatividade em controles para o usuário, inerentes da plataforma.

O seu ambiente de desenvolvimento, contudo, não era familiar à programadores, e isso é provavelmente o grande responsável pelo fato dele não ter tido uma aceitação massiva por parte do público de TI. A resposta veio alguns anos mais tarde com o lançamento Macromedia Flex, que oferece a este público uma maneira padronizada para o desenvolvimento Aplicativos Ricos para a Flash Platform. Mas embora o Flex tenha alcançado um sucesso significativo, é o AJAX que vem chamando atenção nos últimos tempos.

AJAX é um conjunto de tecnologias para desenvolvimento para Internet e que possibilita uma comunicação assíncrona com o servidor – onde apenas os dados atualizados são retornados para o usuário, e não mais todo o documento HTML, como era anteriormente. Assim, o Ajax reduz um grave problema natural das tecnologias no qual as páginas da web apóiam-se (o HTML e o HTTP): a atualização (refresh) de tela.

Ao passo que a Flash Platform mudou substancialmente a ponto de oferecer um conjunto completo de componentes para desenvolvimento de aplicativos, e o AJAX veio para evoluir a forma como os visitantes interagiam com os documentos em HTML.

Ambos com o propósito de oferecer uma melhor experiência – objetivo maior das Rich Internet Applications. O Flex, apoiado na Flash Platform, para aplicativos e processos transacionais e o AJAX na apresentação de documentos, para qual o HTML foi concebido.

Flash Platform com AJAX

O HTML foi concebido para a navegação de conteúdos textuais e de baixa interatividade, o qual ele atende muito bem, mesmo depois de mais de doze anos após seu surgimento, ao passo que o Flash transformou-se em uma plataforma para o desenvolvimento de aplicativos.

Melhor do que discutir qual tecnologia é melhor, é conhece-las corretamente e saber transformar o potencial de cada uma delas em uma aplicação.

O Flex não é “versus” o AJAX. Enquanto o AJAX é um conjunto de tecnologias para transferir dados entre o cliente e o servidor sem o refresh de tela, apoiando-se em outros componentes tecnológicos para componentes e controles de interfaces, o Flex oferece um conjunto completo para o desenvolvimento de RIAs. Cada um em sua especialidade, eles são complementares e a melhor utilização é tirar proveito da capacidade gráfica e interatividade da Flash Platform desenvolvendo em Flex e, ao mesmo tempo, da simplicidade na apresentação de grandes quantidade de conteúdo em texto do HTML com AJAX.

 

Se gostou da matéria deixe um comentário or subscribe to the feed and get future articles delivered to your feed reader.

Comentários

Nenhum comentário ainda.

Deixe um comentário

(obrigatório)

(obrigatório)