31/05/2009

Qual linguagem de programação aprender?

Uma dúvida que provavelmente deve aparecer na cabeça de todo estudante de Ciência da Computação é: qual linguagem de programação aprender? Antes mesmo de entrarmos na faculdade, recebiamos aqueles panfletos no sinal ou no centro da cidade com cursos que ofereciam várias opções de combos de linguagens para aprender. São dezenas de opções e ficamos perdidos sobre em qual delas devemos nos focar. Por isso, resolvi fazer uma pesquisa rápida na área de emprego das (que eu acredito ser) três maiores empresas do momento: Google, Yahoo e Microsoft.

Nesta pesquisa quis observar quais são as principais linguagens de programação que estas empresas requerem como necessárias e desejáveis para os cargos de desenvolvimento de software. Utilizei uma amostra de dez ofertas de emprego de cada uma das três empresas, escolhido de modo aleatório, de cidades diferentes, tirando os cargos de chefia e as linguagens de base de dados. Segue abaixo o TOP 3 em cada caso:



Conhecimento necessário:

1º - Java (9 das 10 ofertas);
2º - C/C++ (8 das 10 ofertas);
3º - Python (4 das 10 ofertas);

Conhecimento desejável:

1º - Python (5 das 10 ofertas);
2º - Shell (4 das 10 ofertas);
3º - Perl (4 das 10 ofertas);




Conhecimentos necessários:

1º - C/C++ (7 das 10 ofertas);
2º - Java (4 das 10 ofertas);
3º - Perl (3 das 10 ofertas);

Conhecimentos desejáveis:

1º - Perl (3 das 10 ofertas);
2º - PHP, Python e Ruby (2 das 10 ofertas);



Conhecimentos necessários:

1º - C/C++ (10 das 10 ofertas);
2º - C# (5 das 10 ofertas);
3º - Assembly (1 das 10 ofertas);

Conhecimentos desejáveis:

Bom... basicamente não existem conhecimentos desejáveis para os cargos de desenvolvimento de software na Microsoft, praticamente tudo se resume a C/C++ e C#.


Pelo o que podemos ver, a grande linguagem campeã é C/C++, que aparece como necessária nas ofertas de emprego das três empresas. Depois dela, você escolhe o perfil que mais se encaixa com você. Gosta do estilo Google/Yahoo? Java! Gosta do estilo Microsoft? C#! E entre as linguagens desejáveis, Perl e Python ficaram como as mais pops.

Deixando as linguagens de programação de lado, outro conhecimento necessário que aparece em praticamente todas as ofertas de emprego é o conhecimento dos ambientes UNIX/Linux, até mesmo em algumas ofertas da Microsoft. Então, escolha já sua versão Linux e comece a programar!

24/05/2009

O que é computação em nuvem?

Já faz um tempo, o termo Computação em Nuvem (Cloud Computing) se tornou popular e um possível candidato a estabelecer os novos padrões de como serão usados os computadores e a internet no futuro. Se você está tão perdido quanto eu (antes deste post) sobre o que é computação em nuvem, não se preocupe, você já usa esse modelo de computação há muito tempo e nem sabia!

Para começar, veja esta reportagem do Olhar Digital (UOL Tecnologia) para ter uma primeira impressão:



Como você acabou de ver acima, é provável que o estilo de computação em nuvem acabe com a necessidade de um computador super potente para ter todos os programas que você precisa. Como seus arquivos e os programas que utiliza no dia-a-dia vão estar na nuvem (vulgo milhares de servidores), você só vai precisar do acesso à internet. Esqueça também a necessidade de instalar programas. Você por acaso já instalou o Gmail? Ou precisou atualizar alguma versão dele? Claro que não! Isso agora é preocupação de quem estiver cuidando da nuvem. Dê adeus aos avisos de "Você tem uma nova atualização" ou "Experimente a versão X".

Outra palavra importante dessa nova tendência é escalabilidade. Hã?! O quê?! Calma... Imagine que você tem um site, ele começa a ficar famoso, receber muitas visitas e aquele servidor de 3ª mão que você comprou pra hospedar ele não aguenta mais a quantidade de pessoas entrando nele. O resultado já conhecemos, é como querer fazer a matrícula da faculdade pela Web no último dia... nada funciona! Mas como no futuro você vai usar a computação em nuvem, aqueles milheres de servidores vão oferecer pro seu site exatamente o poder de processamento e memória que ele precisar e, tcharam!, seu site não vai mais cair nem dar problema. Essa é a tal escalabilidade.

E só precisaremos pagar por aquilo que usamos. É como se fossemos receber uma conta de luz, se usamos muito, pagamos mais, se usamos só o básico, pagamos pouco. A pirataria também deverá decrescer horrores com esse modelo. Mas ainda existem algumas preocupações sobre a segurança dos dados. E se alguém tropeçar no fio do servidor? E se alguém roubar aquele meu projeto secreto? Se as empresas deverão se esforçar para resolver esses problemas ou se iremos utilizaremos algo fora da nuvem para proteger nossa privacidade, só veremos daqui uns anos.



Quem quiser uma visão simples e empresarial da nuvem, segue esta animação, em inglês, da Salesforce:

20/05/2009

O cruel início de um blog

Quando pensei em criar este blog a primeira coisa que me veio à mente foi: "YES! Vou criar um blog! Um blog interessante, que atraia as pessoas e motive-as a debater o post nos comentários!". Claro que essa simples vontade não passava de uma vontade simples, no fundo eu não tinha pensado em nada. Começar um blog (que você queira que seja minimamente interessante) implica em pensar em algumas daquelas táticas de marketing que você encontra por aí, como fazer a análise ambiental, identificar pontos fortes e fracos, público-alvo, divulgação e etc.

Então, a primeira idéia que me veio era a que eu deveria evitar: escrever sobre a minha vida. O meu cotidiano não é interessante o suficiente para prender a atenção das pessoas, por isso decidi limitar este blog a apenas um pedaço da minha vida, o pedaço em que sou um estudante de ciência da computação. Este é o espaço que criei para dividir dúvidas, experiências, idéias, novidades e curiosidades do mundo dos nerds. Logical conclusion: este vai ser um espaço voltado para pessoas como eu, inexperientes mas sedentas por conhecimento em tecnologia e também para aqueles que simpatizam com a nossa causa e gostam de ensinar os novatos.