Pesquisar

terça-feira, 13 de outubro de 2009

Ser programador - parte 1

- Quero ser programador!

É comum ouvirmos esta frase hoje em dia. Digo hoje já que desde primórdios da computação, programar não é uma tarefa fácil. Mesmo após o aparecimento das linguagens modernas que facilitam a tarefa por meio de ferramentas de auxílio, programas que geram programas, frameworks, padrões de projeto e outras facilidades, programar ainda é uma arte. Não depende apenas da vontade do agente, mas sim de vários fatores complementares, incluindo perseverança, estímulo adequado, metas e, não podemos esquecer, talento.

A idéia desta série de artigos é construir um debate em torno deste tema. Queremos esclarecer dúvidas, discutir tecnologias, traçar perfis etc. Iniciaremos lançando alguns pontos importantes para discussão para provocar o assunto e, no decorrer dos artigos, aprofundaremos nos tópicos.

Antes de começar a programar é preciso saber que é necessário dedicar tempo e esforço para ser empreendedor da área.  É importante, para evitar frustrações, conhecer este mundo novo e escolher qual caminho trilhar. Explico: você pode ser um programador profissional, um pesquisador, um programador eventual, ou, ainda, encarar como um hobby. Em qualquer caso, deve-se começar percebendo o ambiente e traçando objetivos. Às vezes, um começo desprentencioso leva a resultados fantásticos e, de outro lado, nem sempre quem está trabalhando na área de informática gostará de programar. Visualizar aonde se quer chegar faz grande diferença para quem pretende ganhar dinheiro fazendo programas ou busca a satisfação de ver um software construído pelas próprias mãos sendo utilizado por aí.

Além disso existe uma "capa" especial que recobre os programadores, dando-lhes um quê de misticismo e obscuridade. Ainda hoje as pessoas acreditam que o programador é alguém que trabalha em um porão escuro, observando e interagindo com três ou quatro telas ao mesmo tempo (em uma delas deveria ter um jogo especial), invadindo sítios e outros sistemas e gerando programas que resolvem a vida das pessoas num clique. Talvez esta idéia sobre os programadores seja um atrativo e um ponto de decepção. A idéia do druida da programação - sem a aptidão ou persistência - faz os iniciantes desistirem e aumentam o misticismo que envolve a profissão. Há bônus e ônus; há muita satisfação pessoal e grandes desafios.

O mais importante é reconhecer que se pode aprender a programar independentemente de qualquer outra coisa. Para ser um "mago da programação" é preciso afinidade, mas para construir sistemas não. Raciocínio lógico apurado é o primeiro requisito para desenvolver qualquer solução nesta área e, certamente, é possível aprender a raciocinar da forma adequada. Construir sistemas exige estudo, análise, técnica. Felizmente, é possível aprender.

Sabemos que a computação é uma área recente do conhecimento e que surgiu de evoluções de outras ciências, como a matemática e física. Sem querer contar a história da computação (deixemos para outro artigo), vale dizer que, no século XVIII, Charles Babbage inventou um computador mecânico - a máquina analítica,  que não chegou a ser construída à época - para o qual programas foram escritos por uma mulher - Ada Lovelace (Augusta Ada King, Condessa de Lovelace). Os computadores comparáveis a projeto de Babbage só surgiram 100 anos depois, mas já teríamos aí a primeira programadora que, a bem da verdade, tinha conhecimentos de matemática. Não eram conhecimentos formais, diz-se, mas o raciocínio da lady era impressionante.

Programar exige raciocínio lógico. Mais do que isso, exige treino. Pensar em como se resolve um problema é simples – fazemos isso o tempo todo – mas escrever esta solução utilizando uma linguagem com um conjunto reduzido de palavras não é fácil. Torna-se mais complicado ainda quando o raciocínio ao qual estamos acostumados deve ser modificado para adaptar-se à tecnologia. Para mim, ter bom senso já é de grande ajuda para quem quer aprender a resolver problemas. Programar é diferente, mas com a solução já escrita fica mais fácil.

Um dos representantes da solução dos problemas é o Algoritmo. É uma linguagem universal para quem quer fazer programas. Claro que existem outros paradigmas de programação, mas o raciocínio expresso por meio de algoritmos é, sem dúvida, um grande passo para todos eles. Existem debates sobre qual seria melhor aprender primeiro: algoritmos, orientação a objetos, linguagens declarativas ou o paradigma funcinal. Para mim, que comecei pelos fluxogramas (um tipo de representação algorítmica), vale a pena aprender a construir algoritmos. Ele permite descrever a solução do problema de forma genérica, sem a preocupação com os recursos computacionais que irão implementar a solução. Existem limitações da máquina na hora de raciocinar que foram inseridas nos algoritmos, mas, creio, é o primeiro passo para quem quer ser programador. Sendo assim, comece por eles (algoritmos). Aprenda a escrever a solução de um problema passo a passo, de forma que possa ser traduzida para uma linguagem que o computador irá entender.

No próxiumo artigo falaremos sobre o surgimento dos computadores o dos programas. Até já.

Nenhum comentário:

Postar um comentário