A profissão: Programador

Neste artigo, conheceremos um pouco mais sobre esta profissão, seus desafios e seu dia a dia. E também, serão apresentadas dicas para uma melhor produtividade, escrevendo bons códigos, livres de bugs e redundâncias.

[ Hits: 28.236 ]

Por: André em 25/07/2012 | Blog: http://127.0.0.1


Escrevendo o código



Se quer mesmo ser programador, é bom ir acostumando-se à escrita de códigos. Você vai "quebrar a cabeça", mesmo. Não tem jeito, mas nada melhor do que ver um programa criado por você, um verdadeiro filho seu, rodando perfeitamente. É uma sensação única, uma sensação de "missão cumprida". :-)

Dentro do tópico 'Escrevendo o código', vamos colocar três colunas essenciais para o desenvolvimento dessa parte do artigo:
  • Distribuição de módulos e Trabalho em equipe;
  • Backup de código e projeto;
  • Carga horária de trabalho.

Basicamente, esta parte do artigo será formada pelos três elementos acima.

Distribuição de módulos e Trabalho em equipe

Esta parte é a mais importante. Ela diz respeito à política da empresa, com relação aos seus funcionários encarregados da área de desenvolvimento.

Esta política deve ser estudada e dividida minuciosamente, pois se feita de forma equivocada, pode resultar em um efeito colateral, atrasando os projetos da empresa, que por sua vez pode, até mesmo, resultar em falência. Essas coisas são uma verdadeira bola de neve, e devem receber atenção redobrada.

Para que o tempo de criação de um projeto seja reduzido, é interessante que este mesmo projeto seja destrinchado em partes, e dividindo entre vários desenvolvedores.

Para que não haja certa confusão de códigos, "reinvenções de rodas" - problema muito comum nesses casos, e alterações não comunicadas entre a equipe, é necessário que essa divisão de projeto seja feita de forma estratégica. Vamos imaginar o seguinte projeto:

- Software PDV (ponto de venda), com os seguintes periféricos:
  1. Homologado PAF-ECF;
  2. Nota Fiscal Eletrônica (NF-e);
  3. Geração de boletos bancários;
  4. TEF discado.

Neste caso, seria de boa estratégia separar esse PDV em quatro desenvolvedores:

1. Um responsável pelo desenvolvimento do Menu Fiscal do PAF-ECF, seguindo um roteiro de desenvolvimento disponibilizado pelo governo, sendo responsável também pelas atividades internas deste, como geração de relatórios em txt, impressão em ECF (impressora fiscal), SPED, Sintegra e etc.;

2. Um segundo desenvolvedor responsável pelo desenvolvimento do sistema referente à Nota Fiscal Eletrônica, cobrindo também todas as exigências do governo;

3. Um terceiro desenvolvedor responsável pelo módulo referente às impressões, principalmente de geração de boletos bancários (no próximo artigo falarei, inclusive, a respeito de ferramentas e APIs prontas para esse tipo de coisa, para que não seja necessário a reinvenção da roda);

4. E, por último, um quarto desenvolvedor, encarregado de desenvolver uma solução TEF Discada seguindo um roteiro disponibilizado por uma empresa homologadora (Software Express / SevenPDV).

Expliquei de forma bem simplória, pois este tipo de política empresarial, evidentemente, é algo complexo demais para ser resumido em tão poucas linhas, e portanto, necessitaria de um artigo maior e mais profundo acerca do assunto.

Tentei reduzir a coisa e colocar um resumo prático sobre como a coisa funciona. Agora, seguindo essa linha, vamos falar da questão do backup, que é quase que um complemento disso, pois é daí que deve surgir a organização dos arquivos de código fonte, visto que há mais de um desenvolvedor envolvido no projeto.

Backup de código e projeto

Uma coisa muito prática e útil, em empresas onde trabalham vários programadores, é a criação de um servidor de backup, seja ela local ou remoto.

É algo tão prático que você pode fazer o backup de tudo apenas clicando em um botãozinho da IDE, já jogando tudo pro servidor, seja ele na Web, ou em alguma máquina da empresa que sirva como servidor local. E esta facilidade se dá pelos servidores SVN (subversion), que faz controle de versões.

Alguns complementos e plugins para IDEs permitem fazer este upload direto por um clique, como descrevi acima. Procure a solução para sua IDE, de acordo com o seu software de controle de versões.

Eu, particularmente, uso e gosto muito do TortoiseSVN. O TortoiseSVN, além de ter uma fartura de artigos em português brasileiro espalhados pela Web, também conta com uma documentação riquíssima, disponível em 18 idiomas (inclusive o português brasileiro), e que vale ser lida. Veja o link da documentação nas referências abaixo.

Referências


Carga horária de trabalho

Por último, vou ir direto ao ponto, sem rodeios: você rende muito mais tirando alguns minutos de lazer, do que ficando 8 horas (estou baseando-me na minha carga horária de trabalho) programando direto, se estressando, de cabeça quente.

Você, chefe de empresa que está lendo este artigo, espero que leia e entenda esta parte, pois é importantíssima. Se o desenvolvedor fica sob constante pressão, e por muito tempo, sem descanso algum, ele não vai render, ou melhor, renderá bem menos.

De cabeça quente é difícil resolver problemas, e às vezes dispersar um pouco é necessário. Pensem nisso.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. O que preciso para tornar-me um programador?
   3. Escrevendo o código
   4. Ferramentas
Outros artigos deste autor

Trabalhando com a interface gráfica em Java

SDL e C - Uma dupla sensacional

Variáveis, if, else e unless em Ruby

Computação Forense - Entendendo uma perícia

Livestation - Assista TV em seu GNU/Linux

Leitura recomendada

Porque se aventurar no Linux (parte 2) - Instalei, e agora?

Migrando para Linux sem medo

Alternativas ao Flash Player no openSUSE

Dando uma olhada no Mageia 7 (beta)

Conheça o Guarux Linux

  
Comentários
[1] Comentário enviado por removido em 25/07/2012 - 10:11h

.

[2] Comentário enviado por WhiteHawk em 25/07/2012 - 11:00h

Excelente artigo! Gostaria de parabenizar-lhe e agradecer-lhe pela contribuição.

[3] Comentário enviado por azk em 25/07/2012 - 12:29h

Bom trabalho, André.
Favoritado!

[4] Comentário enviado por jarlisson em 25/07/2012 - 12:38h

Pra quem quiser ler mais sobre o assunto, deixo o site do excelente e experiente programador C++ Rodrigo Strauss: http://1bit.com.br/

[5] Comentário enviado por felipe300194 em 25/07/2012 - 17:09h

realmente muito bom, além de conter ótimos links. Também favoritado!

[6] Comentário enviado por ArtCMJ em 26/07/2012 - 00:00h

E quanto mais aprendemos, menos sabemos.
Obrigado por compartilhar.

[7] Comentário enviado por andrezc em 26/07/2012 - 08:34h

Obrigado à todos.

Em breve teremos mais.

[8] Comentário enviado por removido em 26/07/2012 - 12:13h

Olá.

Gostaria também, se possível, que fosse colocada dentro das mais coisas futuras, se alguém mais puder comentar a respeito também, comparações específicas entre tarefas diretas de programador e as dos outros na área de TI, além de apenas usar qualquer coisa que os primeiros caras fizeram.

A impressão que alguns já me passaram da área é como se todo mundo estudasse prá ser cacique de tribo. Aprender a como ser um Analista de Desenvolvimeto generalizado.

Ou apenas fosse tido o pensamento de se visionar uma coisa mais ampla prá uma outra pessoa subordinada implementar. Sabe-se lá como. Se é apenas nos "cases de UML".

Que paradoxo! Como é que o tal subordinado aprendeu a implementar?

Melhor não dizer "isso foi ensinado em tal lugar" ou "lá ensinam assim". Mesmo porque o tempo passa, as ideias são atualizadas. Ao menos eu espero que sim.

Eu não sei dizer se é:

* ou por causa de ser uma coisa que parece ser qualquer um capaz de fazer;
* ou se é mais difícil e não dão tanta atenção;
* ou se poucos gostam mesmo;
* ou se porque tem coisa mais rentável e é nessas a propaganda.
* ou se é para puxar areia em cima de alguma coisa, contornar mesmo, passando ideia de outras coisas fantásticas e maravilhosas da área.

Talvez o projeto de software mais famoso de um brasilero ainda seja o Window Maker. Tenho a impressão que há algum tempo o cara que escreveu ele não mora mais no Brasil. A situação atual deste projeto é outra história.

A linguagem Lua está ganhando popularidade aos poucos. Os autores publicaram livros apenas no estrangeiro, pelo que descobri. No Brasil existe um livro sobre Lua, mas numa editora que vende um exemplar por requisição.

Os sites nacionais de programação destacam muito programação .NET e em criação de sites.

Se uso de Linux é mais para servidores e redes, é presumível que o número de profissionais desta tarefa seja maior, bem como o material circulante.

Concluíndo:

* existem linguagens "em alta" para programadores?

* que tipo de coisa ensinam, que não deveriam e que deveriam ensinar em cursos técnicos e superiores?

* de que tipo de curso técnico e superior deveria-se correr, independente de a faculdade ter nome ou não (principalmente das que teriam nome)?

* qual orientação prática poderia ser ensinada nos cursos, já que uma linguagem é diferente de outra, servem para coisas diferentes, ensinam a pensar diferente e não como puras linhas de pseudocódigo, teóricas até mesmo para a teoria e intraduzíveis dependendo da linguagem?

* programação virou coisas tipo "carne de vaca" que é só ensinar 1/2 dúzia de preceitos e mandar o cara se virar em aprender alguma linguagem?

* qual o próximo passo da carreira do desenvolvedor? análise do sistema sem codificação? tornar-se ceo, cio algo assim?

* preferir permanecer apenas como programador é pressupor acomodação, dizer que não quer seguir carreira seja lá com quem se trabalha, de modo semelhante a outras profissões?

* desenvolvimento de código de unix, linux etc. seja aberto ou não é mais forte apenas fora do Brasil?

* geralmente vejo muito anúncio de empresas que trabalham nos três estados da região sul (conectiva era de lá e tem alguma coisa em foz também) e com menor divulgação no sudeste. onde no Brasil pode-se dizer que há desenvolvedores de software livre?

* há alguma estatística do que programadores fazem hoje em dia?

* existem certificações de programação além daquelas coisas ligadas a .NET? alguma de software livre em qualquer lugar do mundo?

* independente do lado pessoal de se querer aprender várias linguagens de programação (é de cada um, não há muito o que argumentar porque há quem faça isso), é necessário aquela linguagem única prá se fazer tudo e também se garantir?

* há um mandamento conhecido por "não reinventarás a roda". se já foi feito é porque é o mais básico e mais fácil, então deve ser aprendido antes. até que ponto pode ser bom desobedecer esta regra para se aprender a programar?

* que tipo de foco uma pessoa que quer programar deve visualizar? ou melhor, que tipo de coisa deve fazer para evitar não perder tempo no aprendizado e no resto?

Agradeço a qualquer um que se proponha a debater.

[9] Comentário enviado por italotosta em 29/07/2012 - 08:51h

Muito bom seu artigo, hoje trilho ainda trôpego no mundo da programação, estou a ver na prática o quão árduo e prazeroso é programar.

[10] Comentário enviado por Omascara em 30/07/2012 - 18:14h

Legal !

[11] Comentário enviado por Omascara em 30/07/2012 - 18:17h

É um otimo artigo para quem ta começando como eu !

[12] Comentário enviado por ricardodaniel em 03/08/2012 - 19:02h

Excelente artigo.

Valeu!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts