<p>^ Not sure what that has to do with the topic at hand. Certainly the ability to reuse working solutions is important, but so is an understanding of how such solutions were arrived at in the first place, and why they’re solutions at all, and how to make totally new solutions if the need should arise, which is what a formal education in CS should leave you with…</p>
<p>What I was getting at was that some random test does not really prove if someone can do the job. I have seen (and been in discussions) about candidate tests and some employers want to make it very academic and ask questions about topics that developers will never use in actual working software.</p>
<p>Yes, developers need to know the basics of program development and the software engineering phases but much of that “formal CS study” will not (if ever) be used.</p>
<p>^ Oh, granted - at least that a pre-interview programming test is a pretty poor indicator of who would or wouldn’t be qualified for a particular job. Then again, I’m not a huge fan of testing… but in a practical world I’m not sure I can think of a better solution, and so accept it as one more necessary evil.</p>
<p>I maintain that an understanding of theoretical CS topics - algorithms, languages, complexity, etc. - is valuable and does set those who possess it apart from those who do not in real-world scenarios. I mean, at the very least, you need to have some exposure to theory to even look up good solutions to some problems. I’m not saying that this is the norm; most industry jobs aren’t going to require a lot of theoretical knowledge day in and day out. But if it was worthless, they wouldn’t make you do it… at least that’s my position.</p>
<p>What is a “code monkey”?</p>
<p>I am assuming in this context the OP is simply stating he does not want a meaningless, monotonous, job where he writes the same code over and over, or corrects someone elses mistakes all day.</p>
<p>I would say a “code monkey” job is a job where (a) in theory the primary, and in practice the only, job is writing code for problems which are well-defined and for which various solutions already exist; (b) there is little hope for career advancement, you are consistently asked to work unpaid overtime, there is very little human interaction, etc.</p>
<p>I think most code monkey jobs fall under the blanket position “programmer”, but that’s not to say that all “programmer” jobs are code monkey positions, or that there aren’t code monkey positions that are disguised as something else.</p>
<p>Also…</p>
<p>If you live in the right geographic area and have established skills, you will have the option to turn down maintenance positions. I am a contractor and whenever a recruiter mentions “code maintenance”, I tell them “no thank you”.</p>
<p>
</p>
<p>[YouTube</a> - Code Monkey AMV](<a href=“http://www.youtube.com/watch?v=5W_wd9Qf0IE]YouTube”>http://www.youtube.com/watch?v=5W_wd9Qf0IE)</p>