Como melhorar sua habilidade de programação e resolução de problemas

Uma pessoa que trabalha com desenvolvimento sempre escuta que a melhor formar de melhorar suas habilidades de programação é colocando a mão na massa. O mesmo acontece com aqueles que estão começando a aprender uma nova linguagem, quando perguntam:

Agora que já sei fazer o básico, qual é o próximo passo?

E a resposta dessa pergunta é sempre algo do tipo:

Desenvolve um pequeno projeto para você praticar, assim você pega as manhas da linguagem mais fácil

Uma resposta semelhante é dada para quem procura melhorar seus skills de resolução de problemas (ou lógica de programação, neste caso). Afinal, o que adianta uma pessoa saber uma linguagem de programação se não sabe o que e como usar as técnicas certas para a resolução de um determinado problema. E o foco aqui não é qual framework usar, e sim como usar a lógica para resolver o problema.

como-melhorar-habilidade-programacao-resolucao-problemas

Ok, eu já sei que é praticar. No mundo da programação, os problemas não se resumem em telas de cadastro e alguns selects no banco de dados. Os problemas estão muito além desse trivial. Não é à toa que ainda temos problemas que não possuem uma solução conhecida.

Uma boa forma de praticar a resolução de problemas não triviais é através das competições de programação. Essas competições trazem problemas em que a solução envolve grafos, busca e ordenação de dados, matemática, simulação, etc. E acreditem, melhora e MUITO a habilidade de programar e resolver problemas, além de ser um ótimo hobby e ser relaxante (não, isso não é coisa de nerd, e se você está nessa área, amar programar e achar isso relaxante é o mínimo né?).

Atualmente, estou praticando esses problemas como hobby, no UVA e TopCoder. É bem interessante quando você lê um problema, acha que é bem fácil de resolver, e quando termina o algoritmo, você toma um “Wrong Answer” do judge, e fica se matando para conseguir acertar.

É uma ótima maneira de expandir os horizontes e aumentar o conhecimento de algoritmos diversos.

Aí você pergunta: Mas pra que eu vou fazer isso? Isso deve ser coisa de nerd que não tem o que fazer! Google, Microsoft e IBM estão sempre de olho nas pessoas que gostam desses desafios. E também são essas empresas que patrocinam as competições. No final diversos ex-competidores acabam como funcionários dessas empresas.

A própria Google tem sua competição, o Google Code Jam. Conheço algumas pessoas que ganharam a competição e hoje estão trabalhando lá.

E você também pode ganhar um dinheiro extra com essas competições. O TopCoder sempre tem competições periodicamente, tanto de desenvolvimento de componentes, quanto competições de resolução de pequenos problemas. E o prêmio é em dólar! rs Além de diversas empresas/instituições que de vez em quando patrocinam as competições em busca de talentos, entre elas NASA, Facebook, Nike, etc.

E se você ainda é estudante, você também tem a oportunidade de participar da Maratona de Programação. Aqui no Brasil tem o apoio da SBC (Sociedade Brasileira de Computação), mas é de nível mundial, apoiado pela ACM (Association for Computing Machinery – uma das ‘socidades’/grupo de computação mais respeitado no mundo). Já tive a oportunidade de representar a minha faculdade numa final brasileira, e realmente, não tem preço! É muito legal! 🙂

Depois de todo esse texto, ainda acha que é bobagem? TUDO se resume a OPORTUNIDADE. Seu futuro emprego pode ter origem em uma dessas competições!

Boa sorte e bons códigos!

Post de referência: http://wp.me/pCF9v-gr

Loiane Groner

Mais artigos deste autor »

Bacharel em Ciência da Computação, trabalha como Engenheira de Software Sr em uma instituição financeira em projetos internacionais, em São Paulo. Já trabalhou na IBM como IT Specialist e líder de equipe para projetos internacionais. Possui 6+ anos de experiência em Java EE. Expertise em Java, atuando como JUG Leader no CampinasJUG e coordenadora do ESJUG, além de co-fundadora do JDuchessBR, grupos de usuários java. Expertise em Ext JS, um framework JavaScript, sobre qual escreveu um livro em inglês (Ext JS 4 First Look) lançado mundialmente pela Packt Publishing. Nas horas vagas escreve artigos técnicos e sobre carreira em TI nos blogs http://loiane.com e http://loianegroner.com. No blog também é possível encontrar cursos online gratuitos sobre produtos Sencha.


5 Comentários

RAFAEL BRITO DE OLIVEIRA
2

A Loiane como sempre, quando fala, sempre me acrescenta algo. Admiro muito seus conselhos.

Rodrigo Chiarato
3

Realmente experiência em resolução de problemas falta no mercado. A maioria dos programadores são somente executores. Temos que ser analistas, analizar e resolver da melhor forma, seja ela : fazer da forma mais simples e rápida. Simples Não significa fazer um código fácil, as vezes um código simples com lógica apurada é mais difícil de entender que um código enorme que foi feito na raça.

K
4

Gostei muito do artigo, parabéns!
São essas pequenas dúvidas que ajudam na base de conhecimentos que tanto falta no nosso mercado.
É se especializar demais na parte técnica e deixar de lado os “skills” básicos do ser humano. Pra pensar em uma solução, além de tudo que foi dito, entender e comunicar falta muito no nosso mercado de TI.

Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!