the difference between delta and gamma hedging?
Delta is the slope (first derivative) of the P&L/underlying curve. A delta hedge protects only against small movements in the price of the underlying. An example of a delta hedge is when you buy a put, which gives you negative delta and positive gamma, and then buy enough of the underlying to zero out your total delta. This hedge does not protect against larger movements of the underlying. When the underlying moves, the non-zero gamma will change your delta, causing you to need to re-hedge. Many people mistakenly call this re-hedging "gamma hedging", but it's not; it's just dynamic hedging of delta in reaction to gamma.
Gamma is the second derivative of the P&L/underlying curve. A gamma hedge protects only against small movements of gamma; gamma will move when either the underlying or its implied volatility move. An example of a gamma hedge is when you buy a put, which gives you negative delta and positive gamma, then sell a call to zero out your gamma but give you even more negative delta. This exposes you to large movements of the underlying, so you will likely want to then buy enough of the underlying to zero out your delta. A gamma hedge does not protect against larger movements of gamma, because the put and call each have non-zero "speed".
Speed is the third derivative of the P&L/underlying curve. A speed hedge protects only against small movements of speed; moves in speed can be caused either by moves in the underlying or its implied volatility. I'm not even going to try to describe a speed hedge here; hedges of the underlying and its derivatives, including delta, gamma, speed, and higher orders, assume a flat volatility surface, which is never the case in reality. As you hedge increasingly higher-order derivatives of the underlying, you increasingly expose yourself to changes in implied volatility and its own P&L derivatives -- vega, vomma, ultima, and so on up in rank. The higher orders of both underlying and volatility can get pretty twitchy; I could be wrong, but it's always seemed to me that hedging the lower orders pushes risk into the higher orders, possibly amplified.
The volatility surface is what you get when you plot underlying price on the x axis, time to maturity on the y axis, and implied volatility on the z axis of a 3-dimensional space. Check google images for "volatility surface" to see some examples. That surface is both convoluted and dynamic, changing with news events. Professional options trading depends in part on models of this surface. By definition, none of these models fully represent the market, so all of the above is less useful when major events happen -- unhedged movements of the higher-order derivatives can cause significant profit or loss, depending on your position and business model.
Once you think you have the market's volatility surface, you can plot your own P&L surface. This is what you get when you plot underlying price on the x axis, implied volatility on the y axis, and P&L on the z axis, giving you a more comprehensive view of your position. Hedging, then, is a process of flattening that surface in the areas you care about (at the possible expense of making it more convoluted in other areas).