<-- home

Programador como mago de D&D

Ja li ótimas analogias entre a profisão de programador e assuntos variados: programador rockstar, programdor personagem de D&D, entre outras. Neste post pretendo explorar meu próprio paralelo. Desde muito me parece que os programadores tem tudo a ver com os magos de Dungeons and Dragons - sim aqui é onde você vai embora se for uma pessoa com o mínimo de sanidade. Depois de filtrar os leitores, vou “escopar” - se me permite a licença poética, estou falando do Mago da versão 3.5 de D&D, clássica em definição, tipo kernel 2.6.

  Nota: Todo o texto a seguir que estiver formatado em itálico é composto por trechos do livro do jogador v3.5.

De nada adianta força, carisma ou agilidade, quando você está em frente ao computador escrevendo um código… intelligence matters! O mesmo se aplica ao mago. Este precisa de dedicação, concentração e intelecto para lançar seus feitiços. O aspecto crucial de um progamador qualquer é sua capacidade lógica e, visto que a magia é por definição algo não natural, não lógico, a associação talvez não seja perfeita. Não obstante, em ambos os casos a inteligência é o fator predominante.

Os magos precisam de um grande tempo de dedicação, lendo tomos antigos, decifrando runas, debatendo teorias mágicas com seus colegas e praticando pequenas magias sempre que possível. Já o progamador passa muito tempo lendo livros de computação, fazendo tutoriais e estudando o código alheio. Bons programadores também costumam frequentar eventos de software onde podem debater e aprender novas técnicas e estilos (magias). Os mais dedicados estão constantemente praticando seus feitiços na criação de algum projeto profissional ou hobby.

No mundo de Dungeons and Dragons o grimório é o livro dos conhecimentos de um mago, contendo seu repertório de mágicas. Em programação, são os scripts, bibliotecas, postagens, bookmarks e todas as demais pegadas criadas durante a caminhada do programador. O mago tem que estudar seu grimório diariamente; isto compara-se ao processo de consultar documentações sobre uma(s) função(ões) ou API’s que o programador necessita utilizar em seu projeto.

Muitas vezes os magos preferem se especializar em certos tipos de magia, tornando-os mais poderosos na área escolhida. Seja uma linguagem ou em algum aspecto de programação, à dizer: segurança, banco de dados, sistemas operacionais, os reis da programação dificilmente serão encontrados em lugares contrastantes; tipo MSDN e LinuxQuestions.

O mago, conforme adquire experiência, torna suas magias mais eficazes: com maior alcance, maior dano e maior frequência de utilização. Já falei bastante sobre o crescimento do programador em minha tradução do Fantasma que Programa.

Um mago de nível um terá um grimório contendo todas as magias de nível zero (exceto magias de sua(s) escola(s) proibidas). Escolas proibidas são tipo ferramentas e linguagens que o programador despreza, no meu caso: java, windows entre outros.

Os magos tem uma certa inclinação para a ordem em detrimento ao caos. Dá uma olhada na arquitetura de pastas de um programador para você saber do que eu estou falando.

No D&D o ‘range’ de pontos de vida de um mago varia de 1 a 4, dentre as classes, a menor do jogo. Isso combina muito com vários programadores que conheço, muito comummente gordinhos e sedentários. Em outras palavras: a expectativa de vida tende a ser baixa.

A classe mago permite vários idiomas iniciais (com possibilidade de expansão); não é necessário pensar muito para deduzir que os melhores programadores são detentores de um variado repertório de linguagens - fator muito valorizado pelas grandes empresas.

O mago pode invocar um familiar, um pequeno animal mágico que o serve. Para muitos magos, seu familiar é seu único amigo genuíno. Com risco de redundância, não é segredo de que festa nerd é evento de software e jogos em rede :D. Os magos estão dispostos a trabalhar com membros de outras classes; eles preferem conjurar magias quando estão protegidos por guerreiros poderosos. Nada melhor do que poder trabalhar somente na sua API, tranquilo por saber que o frontend vai dar conta da interface.

Concluindo…

Espero por meio deste post ter consolidado meu argumento sobre o assunto; estrangeirando: ter feito meu ponto. Idiossincrasias à parte, acredito que podemos ao menos fazer aforimos quanto a inevitável condição lógica respeitável e avidez por conhecimento que todo o bom programador e o típico mágico de Dungeon and Dragons compartilham.

Talvez você seja um programador (e um ótimo programador) e não se enquadre do indivíduo que aqui descrevo, procurei dar ênfase ao programador estereotipado o qual me identifico em muitos aspectos. Agora, se você não se encaixa em nenhum dos itens acima mencionados, bem, o talvez é BEM grande.

Atualização:

Encontrei um sistema operacional POSIX que combina perfeitamente com o aqui exposto: Sorcerer. Entre seus recursos estão inclusos:

  • Comando instalador chamado cast
  • Um desinstalador chamado dispelling
  • Um catálogo de software chamado grimoire, entre outros