There are different types of computer viruses, depending on the nature of the executable program and what the rogue programs actually do when they begin infecting a host system.
Differentiating viruses and spyware
Technically, spyware, malware and adware are not types of computer viruses. There is often confusion here; most users call all undesirable programs viruses. However, for the sake of technical clarity, we must correct this.
Computer viruses, like their biological counterparts, are known for their self-replicating capabilities. This means the virus can spread from one system (a system is your personal computer, laptop, etc.) to other systems.
Back in the nineties, MS-DOS viruses and BIOS-infecting viruses often spread from unchecked floppy disks that passed from one user to another (and consequentially, one computer to another).
Many of these viruses wiped out vital documents and other system files. Some of these MS-DOS viruses were considered as "joke viruses" because they tend to deactivate after one appearance. However, the same can not be said of computer viruses today.
Mode of infection
As we have mentioned before, there are varying types of computer viruses based on what these programs do. A non-resident virus is the simplest type; it's composed of a seeker module and an infectious module. The seeker module is responsible for finding individual files to infect. When such files are found in the infected host system, the infectious module is activated next to infect that file.
Resident viruses on the other hand, have not been created with seeker modules. Instead, these viruses have been designed to load whenever the system does. It waits, like a hunter, in the background until target file types are activated by the user.
Fast-infectors and slow-infectors
Resident viruses are further categorized based on specific actions of the programs within the host system. Fast-infecting resident viruses tend to infect each file that has been activated or used in the system (you can imagine what this kind of virus can do to a school computer system).
Fast-infecting resident viruses are lethal to low-grade antivirus programs. If the antivirus program does not use heuristic methods to trace potential viruses, the fast-infecting resident viruses can "ride" on the scanner program and infect each file that the virus program scans.
The polar opposite of fast-infecting resident viruses is slow-infecting resident viruses. These viruses tend to avoid detection by activating only with specific actions (like file transfers). Since the mode of infection of slow-infecting resident viruses is limited, many anti-virus suites find the offending virus before it can cause any real harm.