At the most basic level, the difference between good and well is the exact same as the difference between, say, bad and badly; good is an adjective and well is an adverb.
People bugger this up all the time. Here’s all you need to know:
If you are referring to a NOUN, use an adjective.
ex: Mother Teresa is good.
(“good” modifies the NOUN “Mother Teresa”)
If you are referring to a VERB, use an adverb.
ex: Mother Teresa raps well
(“well” modifies the verb “raps”)
Converting an adjective into an adverb of manner normally requires adding “–ly” to the adjective (e.g. “quick” / “quickly”, “slow” / “slowly”, “nice” / “nicely” etc). A few adverbs of manner, however, are irregular, i.e. they are not changed from adjective to adverb this way (such as “fast”, and “hard”). The fact that the most common adjective in English – good – is irregular causes all sorts of grating grammar mistakes that make me want to burn my hands off:
Straightforward as that is, there is one exception:
“Well” can also be used as an adjective, but only when referring to one’s physical or mental health (to be precise, when referring to one’s well-being). Thus, the sentences “I’m well” and “I’m good”, however mundane, both use adjectives and are both correct answers to the ubiquitous “How are you?”
With that in mind, here is a reenactment of every single first date I’ve ever been on:
At least both answers are fine.
Lastly, be mindful when using verbs relating to the five senses: touch, taste, smell, sight, and sound. An adjective is required when describing HOW something looks, smells, feels, sounds, or tastes. Using an adverb implies that the subject of the sentence performs the verb, so don’t screw it up.