Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Programmers tend to talk about being a "code monkey" in a derogatory way. "Don't work there, you will just be a code monkey!".

I have two offers for jobs, one at a small company, one at a very large company (same salary). My friend just told me I will be a code monkey at the large company, and knows from first hand experience that the small company will be more rewarding than reducing me to a "code monkey".

I don't really understand the distinction between a "code monkey" and a "real" programmer. Please elaborate. I love programming, so to me the idea of sitting at a computer programming (i.e., code monkey) doesn't seem bad. What does a programmer mean by "code monkey" if he/she enjoys programming?

share|improve this question
    
Jonathan Coulton performs Code Monkey Unplugged youtube.com/watch?v=7s8S7QxpjeY –  Adam May 28 '11 at 17:41
    
Codemonkeys get cooler tshirts redbubble.com/people/hayko/t-shirts/1808968-b-code-monkey –  Yannis Rizos May 28 '11 at 17:59
    
dilbert.com/strips/comic/2008-03-04 –  cschol May 28 '11 at 18:41
    
hmmmmm.... Code Monkey- oh wait, no, I'm thinking of Chunky Monkey. –  dietbuddha May 29 '11 at 4:13
add comment

7 Answers 7

Code Monkey means doing coding so simple a monkey could do it

It's often used to refer to the lowest-level programming jobs, but can also be used to refer to someone who does nothing but coding. No UI designing, no architectural input, no development decisions, etc

There's nothing wrong with being a code monkey (I call myself one sometimes), but chances are that if all you are doing is coding you'll never move up in the chain and see those higher salary figures that come with being able to see and understand the entire software development cycle.

share|improve this answer
add comment

"Code monkey" describes coder from whom zero creativity is required. Such coder would do repetitive, boring, often tedious tasks, like clone form and change one filed etc.

What you call "real programmer", would be a person, who actually participates in designing logic of the application, and actually uses creativity do to the job.

share|improve this answer
add comment

To me, at least, the distinction is that a code monkey merely produces code without really thinking about it, where as a "proper" programmer is a professional. They use engineering techniques to produce higher-quality code and have an awareness of the system as a whole, do better planning and more thorough design.

For example some features of a "proper" programmer (although be aware of cargo cultism) might be:

  • A programmer is involved, to a certain extent, with the entire software development lifecycle, not just coding. Code monkeys may be coding up designs or to requirements that were dumped on them, rather than created in consultation with them.
  • Programmers create extensive designs (including tests) before writing any code. They are fairly certain that the design is good (fast, efficient etc.) before they start writing it. Code monkeys jump straight in. They don't know if the design is good until they run it.
  • Programmers take responsibility for planning their own work. Code monkeys just do what their manager tells them, when they're told to.
  • Programmers are valued as an individual for their creativity and skills. Code monkeys are seen as interchangeable black boxes that output code.
  • Programmers are adaptable; they can apply their skills to numerous areas, languages etc. Code monkeys over-specialise, and get lost if they have to work with a new framework.
  • Programmers always look to develop themselves as a professional. Code monkeys stay where they are in terms of skills and experience.

I've used two points at opposite ends of a spectrum here - I suspect most jobs will lie somewhere in between. In addition, it's unlikely that an entire career will stay at the same place - a good company will strive to move its employees towards the programmer end of the scale through training and professional development. It may be worth taking a junior programmer job at the code monkey end if the employer has a graduate scheme or similar that will result in "proper" programmer status eventually.

share|improve this answer
    
Someone obviously disagrees with me, since they downvoted - I'd love to know what about. –  Scott May 29 '11 at 15:49
1  
I've encountered two breeds of code-monkeys. One of them being the "old dog" that just codes, is reliable and gets the job done. But at the expense of cludgy design and with code filled with old-paradigms and years of "cruft" experience that has made them see everything as a nail, and their "cruft" as the hammer. Probably one of those that downvoted you :) –  Zoran Pavlovic Aug 25 '12 at 16:25
add comment

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

A "Code Monkey" is a derogatory term used to describe a programmer that:

  • Preforms programming tasks that are considered extremely simple or of no real challenge.
  • Not really allowed to solve problems, or take part in design of the application.

Now "real" programmers sometimes also have preform these types of coding from time to time.

However the main difference is that a "code monkey" doesn't have a choice in doing anything else.

A "Code Monkey" could be used to either imply a programmer's position OR ability

share|improve this answer
add comment

According to the jargon file a code monkey can refer to:

  1. A person only capable of grinding out code, but unable to perform the higher-primate tasks of software architecture, analysis, and design. Mildly insulting. Often applied to the most junior people on a programming team.

  2. Anyone who writes code for a living; a programmer.

  3. A self-deprecating way of denying responsibility for a management decision, or of complaining about having to live with such decisions. As in “Don't ask me why we need to write a compiler in COBOL, I'm just a code monkey.”

According to Jonathan Coulton a code monkey:

  1. If confronted with unfair criticism about their code, they'll build up quite a rage against the critic, but at risk of hurting their job status will keep the rage pent-up and not say anything (They'll claim that they're not crazy, just proud.)
  2. Likes Fritos, Tab and Mountain Dew.
  3. Have a sensitive side they'd rather not, or more likely don't know how to, show (they have big warm fuzzy "secret" hearts).
  4. They know they're working a dead-end job and instead of coming in to said job would much rather just wake up, eat a coffee cake, take a bath and nap.
  5. Tries to convince themselves that their job is "fulfilling in a creative way," but deep down they know that's such a load of crap.
  6. Not so good in social situations.
  7. All things considered still have a bright outlook on their future.

In all seriousness, a job cannot make you a code monkey only your behavior and attitude can do that.

share|improve this answer
add comment

There is a whole chapter about types of programmers in Pete Goodliffe's "Code Craft". All aspects of what "Code Monkey" means are mentioned in the other answers. What I'd like to emphasize (and what Goodliffe's text shows), is that you can find pros and cons for all kinds. Depending on job and personality, it may be good/desirable/fullfilling to be the code monkey of the team, who makes the ideas/concepts/plans a reality by producing "Beautiful Code".

share|improve this answer
    
I don't know what definition you're using. But a code-monkey will almost NEVER produce "Beautiful Code", in any sort of sense other than the sarcastic one. –  Zoran Pavlovic Aug 25 '12 at 16:27
add comment

As far as being a good programmer is concerned you will be a very good programmer no matter where you go, my suggestion would to be a developer by the way. On the note of being a code monkey, well it is a relationship that you build yourself or the company forces you to do. Being a code monkey means that all you do is stick around a simple tool or technology and you are kept in a single mode of development of minor things, you know your potential resides in doing much bigger things, if its your first job, go for the bigger company, even if it keeps you at the monkey level for some time and trust me if the company is big and I am sure if you work hard, you will be come a code Godzilla!!! If your friend says the company is big and you will be kept in code-money manner, he is wrong. Companies grow big because they tend to tackle large problems of industrial scale and they work on larger design and development issues. Small companies rarely do that but this does not mean small companies will not grow or you will be a team lead in a couple of months, like all of us, you will climb the ladder.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.