Problemas GRANDES, problemas pequenos...
Autor: Jorge d'Avila | Publicado: 2012-09-06T13:46:00-07:00



Atualmente, entre minhas várias atividades, leciono Linguagem de Programação para algumas turmas de ensino médio.  Traduzindo: ensino a programar em Delphi/Pascal.

Esses alunos são curiosos, e ao saber que programo Microcontroladores, com frequência perguntam: "Professor, programar Microcontroladores é mais difícil ou mais fácil do que nas máquinas grandes?"

Eu realmente tenho um dom para provocar perguntas difíceis...

A programação de grandes sistemas é bem diferente da programação dos microcontroladores. Mas a maior diferença não se deve ao tamanho da máquina. São filosofias completamente diferentes.

Em primeiro lugar, sistemas comerciais, que rodam nas grandes máquinas, geralmente são MUITO maiores e mais complexos. Por outro lado, são desenvolvidos por equipes de programadores. Dificilmente um único programador é responsável, sozinho, por um grande sistema. Isso leva a necessidades - trabalho em equipe, controle de disponibilidade de códigos, controle de versões - muito mais complexos do que num pequeno sistema, desenvolvido por um programador.

Por outro lado, em um sistema microcontrolado é comum estarmos utilizando os recursos no limite. O hardware é limitado, o software precisa ser muito eficiente. Isso leva a complexidades de lógica não encontradas num grande sistema.

Ou seja, não se pode dizer que um é "mais difícil" do que o outro. São expectativas diferentes, filosofias diferentes, habilidades e conhecimentos necessários - tudo diferente.

O que tenho observado na prática é que existem poucos profissionais competentes na área de microcontroladores. Mas há razões claras para isso:

- O programador de grandes sistemas trabalha em equipe. Assim fica fácil começar como "junior" e ir aprendendo com os mais experientes, até chegar, um dia, a líder da equipe. Já nos microcontroladores trabalha-se sozinho. Quantos de nós gostamos de estudar e podemos ser autodidatas?

- O sistema microcontrolado controla uma máquina. É preciso conhecer, ao menos em linhas gerais, a eletrônica e a mecânica da máquina, compreender todo o seu funcionamento, para ser capaz de desenvolver o sistema. Quantos Programadores + Eletrônicos + Mecânicos existem por aí?

Eu tenho essa formação por uma série de eventos pouco comuns. Sempre fui apaixonado por mecânica, e na minha época (sim, estou ficando mais... errr... experiente! Tá bom, tá bom, mais velho, pronto!) não existiam microcomputadores. Eu nunca tinha visto um computador até iniciar a faculdade. Por isso cursei Engenharia Mecânica. Aí, já na faculdade, conheci e me apaixonei tembém pelos computadores. Resolvi trabalhar na área, mas não abandonei minha paixão mais antiga e completei o curso em Mecânica.

A Informática me levou à Eletrônica, na qual sou autodidata, e tanto me interessei por esse novo campo que hoje sou professor de Eletrônica.

Ou seja, essa série de eventos me levou a ser o "Programador + Eletrônico + Mecânico" que citei acima.

Talvez seja por isso que nos chamam, aos microprogramadores, de "loucos furiosos"... você tem que ter uma curiosidade insaciável, o verdadeiro prazer em estudar e conhecer coisas novas.

"to boldly go where no man has gone before", como diria nosso velho conhecido James T. Kirk.