Programador Hobby ou Programador Profissional?

Quando começamos os estudos na área de desenvolvimento, somos tomados por uma infindável curiosidade, ou melhor, ansiedade, para descobrir quais caminhos possíveis de trilhar e onde eles podem nos levar. Não obstante, em determinado momento a pergunta “Será que faço como hobby / diversão ou uma profissão?” vem à tona, fazendo o leitor se indagar sobre suas razões, paixões e, sobretudo, os porquês das suas decisões serem incontestáveis.

Para quem está começando agora, existem vários itens a se considerar para que seja possível diferenciar um programador hobby de um programador profissional. É muito comum – e quem está no mercado há tempo ousa falar – encontrar jovens que inflam o peito para contar vantagem de conhecimentos adquiridos em aplicativos desenvolvidos por eles. O que é muito válido, diga-se de passagem, pois sabe-se que programar é uma atividade para poucos. O problema é achar que saber utilizar os recursos de uma linguagem de programação e aplicá-las em projetos de software minúsculos os torna autossuficientes, insinuando que não é necessário dispender mais tempo para aprender, uma vez que creem que dominam a arte. Infelizmente não é assim que funciona.

Mas, afinal, o que é programação de computadores?

Para quem não é de TI entender: um programa é constituído de uma sequência finita de instruções que, ao serem executadas, produzem um resultado que deve satisfazer às necessidades do usuário. Na verdade, esse resultado é proveniente dos cálculos que o computador executa quando acionado.

Sample Programming Code

 Exemplo de código-fonte
Lembro bem, em meados de 2012, o meu professor explicando o que são projetos ‘pequenos’ e também o que são projetos de grandeza ‘colossal’. A grosso modo, sua definição promoveu um choque de ideias. Como que 300 linhas de código fariam de meu aplicativo um projeto pequeno? À época, escrever essa quantidade de código para um segundanista de Computação era tudo. Quem viveu, vive, ou está vivendo, sabe. Há quem discorde. Logo após, foi dado o exemplo de uma ATM (caixa automático – Automated Teller Machine, em inglês), que possui em média 300 mil de linhas de código. Ou mesmo um Sistema Operacional como o Windows 7, com a ordem de 40 milhões de linhas aproximadamente? Como gerir um projeto dessa escala, mantendo um crescimento ordenado do software e tornando a aplicação manutenível? Isto é, se a cada mudança realizada no sistema não prejudicaria o trabalho da equipe, no que se refere à correção de bugs e implementação de novas funcionalidades. Na prática, é recomendável alinhar o modo de trabalhar com as melhores práticas para minimizar os riscos de um projeto falhar. Isso é assunto para outro artigo.

Então, o que difere um programador hobby de um programador profissional?

É exatamente na forma de trabalhar. Programar por hobby não emprega mão de obra, não segue diretrizes nem há preocupação com documentação. Em outras palavras, é um processo “artesanal”, em que você desenvolve individualmente como quer e quando quer. Um programador profissional, no entanto, trabalha em equipe na qual cada pessoa tem uma determinada função a cumprir. Isso depende muito da organização, mas é possível afirmar que existe a figura do gerente de projetos, do arquiteto de software e mais alguns desenvolvedores. É comum escrever uma mesma classe em conjunto com outros programadores, então se faz necessário o uso de um processo formal para coordenar as atividades, respeitando o escopo do projeto.
Também é de praxe consultar manuais de especificação, internos da empresa, que orientam acerca de como o código deve ser escrito.
A Engenharia de Software categoriza diversos modelos de processos para servirem de guia na realização de projetos de software. Logo abaixo anexo um material para breve consulta.

Conclusão

Na universidade, os fundamentos são passados por meio de projetos de pequeno porte, para que a base de conhecimento seja consolidada. Tais programas não são desenvolvidos para subsistirem ao longo do tempo. Eles são criados uma vez, porém raramente são revisitados, seja para novas implementações / correções, ou mesmo para simular o que acontece na prática empresarial; por exemplo, colocar a aplicação em produção em um servidor do cliente. Não há e não é preciso de um controle de versão, pois os fins são educacionais.
O programador hobby programa a seu bel prazer, geralmente para explorar uma curiosidade sobre como uma ideia pode se tornar em um aplicativo. E o programador profissional, por requerer uma expertise elevada em tecnologia e implementação de algoritmos, não é aquele que detém todas as respostas (porque cada caso é um caso), mas sua experiência traz plenas condições de driblar dificuldades para os problemas, propondo as melhores soluções.
O próximo artigo da sequência será sobre caminhos que o estudante pode percorrer para começar na área de programação, e como ele poderá descobrir e desenvolver seu potencial para gerar resultados em sua carreira.

 

Colaborou para esse artigo Renato Groff.
Referências
Até lá,
Thiago
Anúncios

12 Respostas para “Programador Hobby ou Programador Profissional?

  1. Interessante o tema, para quem quer se aprofundar no assunto eu recomendo a leitura de um livro chamado O programador Pragmático – De Aprendiz a Meste de Dave Thomas muito bom, li e gostei.

    • Ótimo, quando tiver um tempo eu vou pegar pra ler. Recomendo também (mas ainda não li) o livro “The Mythical Man Month” do Frederic Brooks. Tem versão em português.

  2. Bem legal o artigo, Thiago! Hoje é possível ser os dois tipos de desenvolvedor se você considerar o desenvolvimento de código aberto. Explico: é possível desenvolver programas de código aberto sem ter que se preocupar com vários artefatos e formalidades dos softwares desenvolvidos em corporações. No entanto se o desenvolvedor deseja que seu projeto de código aberto seja usado por muitos, ele terá que se preocupar com coisas essenciais em qualquer outro projeto: comunicação com a “equipe” (geralmente parte da comunidade), documentação de API, testes de código, gerenciamento de dependências, arquitetura e etc.

    Penso que dessa forma o software desenvolvido por hobby, ou de forma artesanal como você bem colocou, é um caminho para o software desenvolvido de forma profissional.
    Resumidamente: você pode ser um desenvolvedor profissional melhor se também for um desenvolvedor por hobby em alguns momentos.

  3. Achei a materia interessante, mas acho que oque diferencia se é hobby ou profissao é o fato de conseguir ganhar a vida apenas com o trabalho em programaçao, ou se isso da algum retorno ou é só por hobby, agora eu acho que a materia vai ter fundamento se nas proximas postagens trouxer dicas de como um iniciante pode organizar seus programas assim como as grandes corporaçoes fazem, se fizer isso deixa de ser apenas uma opnião e passa a ser um agente de mudanças e melhorias, dessa forma estará monopolizando o conhecimento e desencorajando e até ofendendo quem não tem ou não teve a oportunidade de trabalhar numa empresa estruturada.

    • Concordo com você, mas meu foco não é em implementação agora. São várias as boas práticas de mercado no que se refere à desenvolvimento de software, seria um assunto para ser abordado em um curso. Se puder der mais ideias, agradeço.

  4. Pingback: Vivendo o mundo da informação | Helen Lobo·

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s