Para mim, pelo menos, a distinção é que um macaco de código apenas produz código sem realmente pensar nisso, onde como um programador "adequado" é um profissional . Eles usam técnicas de engenharia para produzir código de qualidade mais alta e têm consciência do sistema como um todo, fazem um planejamento melhor e um design mais completo.
Por exemplo, alguns recursos de um programador "adequado" (embora esteja ciente do cultismo de carga) podem ser:
- Um programador está envolvido, até certo ponto, em todo o ciclo de vida de desenvolvimento de software, não apenas na codificação. Os macacos de código podem estar codificando projetos ou requisitos que foram descartados neles, em vez de criados em consulta com eles.
- Os programadores criam designs abrangentes (incluindo testes) antes de escrever qualquer código. Eles têm quase certeza de que o design é bom (rápido, eficiente etc.) antes de começar a escrevê-lo. Os macacos de código entram diretamente. Eles não sabem se o design é bom até executá-lo.
- Os programadores assumem a responsabilidade de planejar seu próprio trabalho. Os macacos de código fazem o que o gerente manda, quando lhes é pedido.
- Os programadores são valorizados como indivíduo por sua criatividade e habilidades. Os macacos de código são vistos como caixas pretas intercambiáveis que produzem código.
- Programadores são adaptáveis; eles podem aplicar suas habilidades em diversas áreas, idiomas etc. Os macacos de código se especializam demais e se perdem se tiverem que trabalhar com uma nova estrutura.
- Os programadores sempre procuram se desenvolver como profissionais. Os macacos de código ficam onde estão em termos de habilidades e experiência.
Eu usei dois pontos nas extremidades opostas de um espectro aqui - suspeito que a maioria dos trabalhos esteja em algum lugar no meio. Além disso, é improvável que uma carreira inteira permaneça no mesmo local - uma boa empresa se esforçará para levar seus funcionários para o final da escala do programador por meio de treinamento e desenvolvimento profissional. Pode valer a pena aceitar um emprego de programador júnior no final do código, se o empregador tiver um esquema de pós-graduação ou similar que resultará em um status "adequado" de programador eventualmente.