O que há de errado em ser um macaco de código? (Ou o que é um macaco de código?) [Fechado]

35

Os programadores tendem a falar sobre ser um "macaco de código" de maneira depreciativa. "Não trabalhe , você será apenas um macaco de código!".

Tenho duas ofertas de emprego, uma em uma empresa pequena, uma em uma empresa muito grande (mesmo salário). Meu amigo acabou de me dizer que serei um macaco de código na grande empresa e sabe por experiência própria que a pequena empresa será mais gratificante do que me reduzir a um "macaco de código".

Eu realmente não entendo a distinção entre um "macaco de código" e um programador "real". Por favor elabore. Eu amo programar, então para mim a ideia de sentar em uma programação de computador (ie, código-macaco) não parece ruim. O que um programador quer dizer com "código-macaco" se ele gosta de programar?

Ben B.
fonte
Jonathan Coulton realiza Code Monkey Unplugged youtube.com/watch?v=7s8S7QxpjeY
Adam
Codemonkeys ficar mais frio tshirts redbubble.com/people/hayko/t-shirts/1808968-b-code-monkey
yannis
hmmmmm .... Code Monkey- oh espera, não, estou pensando em Chunky Monkey.
Dietbuddha 29/05
Macacos não são bons programadores, exceto um Babun!
Arun Sangal

Respostas:

32

Code Monkey significa codificar tão simples que um macaco poderia fazer

É frequentemente usado para se referir aos trabalhos de programação de nível mais baixo, mas também pode ser usado para se referir a alguém que não faz nada além de codificação. Sem design de interface do usuário, sem entrada de arquitetura, sem decisões de desenvolvimento, etc.

Não há nada errado em ser um macaco de código (às vezes eu me chamo de macaco), mas as chances são de que, se tudo o que você está fazendo é codificar, nunca subirá na cadeia e verá os salários mais altos que são capazes de ver e entender todo o ciclo de desenvolvimento de software.

Rachel
fonte
21

"Macaco de código" descreve o codificador do qual é necessária zero criatividade. Esse codificador realizaria tarefas repetitivas, chatas e muitas vezes tediosas, como forma de clone e alteraria uma que foi arquivada etc.

O que você chama de "programador real" seria uma pessoa que realmente participe do projeto da lógica do aplicativo e que realmente usa a criatividade para fazer o trabalho.

vartec
fonte
Não tenho certeza se digo isso corretamente, mas é trabalho do "verdadeiro programador" trabalhar na lógica de negócios do desenvolvimento de software? Exemplo: suponha que tenhamos um aplicativo da Web, seria responsabilidade do desenvolvedor projetar (a lógica de) um widget para mostrar algumas estatísticas ou alguém que deveria fornecer todas as informações necessárias ao desenvolvedor (ou seja, o que precisamos exibir, seria acessível a todos, ou apenas aos usuários autorizados etc) e o desenvolvedor deveria projetar o esquema do banco de dados, o código etc? Faço sentido o que estou tentando dizer? -Desculpe para o meu inglês ruim
ltdev
15

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.

Scott
fonte
Alguém obviamente discorda de mim, uma vez que votou mal - eu adoraria saber o que dizer.
29511 Scott
2
Eu encontrei duas raças de macacos-código. Um deles é o "cachorro velho" que apenas codifica, é confiável e faz o trabalho. Mas às custas de um design desleixado e com um código repleto de velhos paradigmas e anos de experiência em "cruft" que os fizeram ver tudo como um prego e seu "cruft" como o martelo. Provavelmente um daqueles que você downvoted :)
Zoran Pavlovic
Você pode acrescentar que os programadores também se esforçam para aprender em detalhes o que os usuários finais desejam alcançar com seu software e, potencialmente, como isso afeta o mundo em geral, e usar esse conhecimento para desempenhar um papel no processo de tomada de decisões organizacionais sobre o software. produto que eles desenvolvem. Eu recomendo assistir a um vídeo da palestra de Martin Fowler 'More Than Code Monkeys'. Às vezes, um programador decide por si mesmo que trabalho é bom fazer e o faz de maneira autônoma ou tenta convencer seu gerenciamento a concordar.
precisa saber é
6

"Code Monkey" 'code mon.key' (/ koʊd / / ˈmʌŋki /)

Um "Código Macaco" é um termo depreciativo usado para descrever um programador que:

  • Realiza tarefas de programação consideradas extremamente simples ou sem nenhum desafio real.
  • Não é realmente permitido resolver problemas ou participar do design do aplicativo.

Agora, programadores "reais" às vezes também realizam esses tipos de codificação de tempos em tempos.

No entanto, a principal diferença é que um "macaco de código" não tem escolha em fazer outra coisa.

Um "Macaco de Código" pode ser usado para implicar a posição ou habilidade de um programador

Noite escura
fonte
4

De acordo com o arquivo do jargão, um macaco de código pode se referir a:

  1. Uma pessoa capaz apenas de extrair código, mas incapaz de executar as tarefas de primatas superiores da arquitetura, análise e design de software. Insultuoso. Frequentemente aplicado às pessoas mais jovens de uma equipe de programação.

  2. Quem escreve código para ganhar a vida; um programador.

  3. Uma maneira autodepreciativa de negar a responsabilidade por uma decisão da gerência ou de reclamar por ter que conviver com essas decisões. Como em "Não me pergunte por que precisamos escrever um compilador em COBOL, sou apenas um macaco de código".

De acordo com Jonathan Coulton, um macaco de código:

  1. Se confrontados com críticas injustas sobre seu código, eles criarão bastante raiva contra o crítico, mas o risco de prejudicar o status de seu trabalho manterá a raiva reprimida e não dirá nada (eles alegam que não são). louco, apenas orgulhoso.)
  2. Gosta de Fritos, Tab e Mountain Dew.
  3. Tenha um lado sensível que eles preferem não mostrar, ou mais provavelmente não sabem como mostrar (eles têm grandes corações "secretos").
  4. Eles sabem que trabalham em um beco sem saída e, em vez de entrar no emprego, preferem simplesmente acordar, comer um bolo de café, tomar um banho e tirar uma soneca.
  5. Tenta se convencer de que seu trabalho é "cumprido de maneira criativa", mas no fundo eles sabem que é um monte de porcaria.
  6. Não é tão bom em situações sociais.
  7. Todas as coisas consideradas ainda têm uma visão brilhante do futuro.

Com toda a seriedade, um trabalho não pode fazer de você um macaco de código, apenas seu comportamento e atitude podem fazer isso.

Robert
fonte
3

Há um capítulo inteiro sobre os tipos de programadores no "Code Craft" de Pete Goodliffe . Todos os aspectos do que "Code Monkey" significa são mencionados nas outras respostas. O que eu gostaria de enfatizar (e o que o texto de Goodliffe mostra) é que você pode encontrar prós e contras de todos os tipos. Dependendo do trabalho e da personalidade, pode ser bom / desejável / preenchimento ser o macaco-código da equipe, que torna as idéias / conceitos / planos uma realidade produzindo "Beautiful Code".

Ekkehard.Horner
fonte
Não sei qual definição você está usando. Mas um macaco-código quase NUNCA produzirá "Beautiful Code", em qualquer sentido que não seja o sarcástico.
Zoran Pavlovic
0

No que diz respeito a ser um bom programador, você será um programador muito bom, não importa para onde vá, minha sugestão é que seja um desenvolvedor a propósito. Na observação de ser um macaco de código, bem, é um relacionamento que você constrói a si mesmo ou a empresa o força a fazer. Ser um macaco de código significa que tudo o que você faz é manter uma ferramenta ou tecnologia simples e é mantido em um único modo de desenvolvimento de coisas menores, você sabe que seu potencial reside em fazer coisas muito maiores, se for seu primeiro trabalho, vá para a empresa maior, mesmo que isso o mantenha no nível do macaco por algum tempo e confie em mim se a empresa for grande e tenho certeza que se você trabalhar duro, será um código Godzilla !!! Se seu amigo disser que a empresa é grande e você será mantido em dinheiro com código, ele está errado. As empresas crescem grandes porque tendem a lidar com grandes problemas de escala industrial e trabalham em questões maiores de design e desenvolvimento. As pequenas empresas raramente fazem isso, mas isso não significa que as pequenas empresas não crescerão ou você será o líder da equipe em alguns meses. Como todos nós, você subirá a escada.

Wajih
fonte