People usually write viruses as either a way of showing computer users how much their lives depend on a box of metal and plastic or to get back at an enemy (although not as common these days). The viruses you see now are mainly to show how vulnerable a system is or to show off the coders skills.
When you have been in the vX scene for a long time, you see many techniques come and go and get reused. The techniques are thought up in the virus writers mind. This shows that a coder must have a extremely logical thought pattern or has the mental and maths capabilities to get his head around his "ground breaking idea" and actually code the bloody thing.
Thinking up an idea is all well and good. It is the converting, coding and implementing of the idea that takes the time. Many virus writers could think up an idea which would take them days to write. Somehow I do not think that an "adolescant teenager with no life" could do something like that. :)
A typical virus writer also has many tricks up his or her (though predominately the "his") sleeve. New breeds of viruses evade AV programs better than others and have better methods of spreading. Sometimes the methods of spreading are so hidden that a user may not even realise how fast this piece of code is multiplying. One minute he could have a clean system, the next minute he could have all his files infected. The viruses that are around now have become so advanced, they even surprise the coders with what they can do.
Take into account Toadie, coded by RAiD of the SLAM virus group. This piece of ASIC code was written and let loose onto the unsuspecting public. The code spread so fast and so well that even RAiD was totally gobsmacked when it hit some of the biggest computer companies. Wondering across the vX related newsgroups, every other message ran along the lines of "I have been infected with the Toadie virus... how do I get rid of it?"
This shows that the coder must have an advanced knowledge to create such advanced virus codes.
Going back to the topic of this article, we have summed up a virus writer as an intellegent individual who has as much of a social life as the rest of us. The coder in question has an advanced knowledge of one or more coding languages (whether low level (ASM) or high level (C++) coding languages) and is able to come up with an idea and code it so his code is as advanced as his mind.
So, before you start to moan about how "stupid" and "childish" a virus writer is, think that for once, he may be more intellegent and more mature than you are. If a virus writer told you to code a virus, 99.99% of the time, his code will come out better than yours.