Hola,
¿Para que quieres saber hacer virus?
Supongo que se haran en C y ensamblador, aunque posiblemente con cualquier lenguaje mas unas cuantas herramientas especializadas tambien podras hacerlos.
¿Quieres realmente mejorar tus conocimientos? Pues metete en el mundo linux. Para crear muchas partes del sistema operativo hacen falta mas conocimientos que para hacer un virus. Y ademas ayudaras a la humanidad, en lugar de crearle mas problemas. Tambien puedes mirar programacion embedida, para programas un PIC que va en una nevera que se conecta a internet para pedir la compra (10 kilos de beluga
![Riendo](http://static.forosdelweb.com/fdwtheme/images/smilies/risa.png)
).
O incluso pudes programar engines de juegos. Puedes programar el nuevo google. O el ultimo grito de programas distribuidos. O el megasuperior programa de ajedrez.
Hay muchos retos para un programador.
Saludos.