FISH COOKING SCIENCE
When the fish is cooked, its delicate flavor becomes more pronounced due to the increased enzymatic activity in the flesh. The enzymes start to break down some proteins in the meat so that free savory amino acids are generated. Also, more complex flavor molecules are created, and some of the hidden molecules become more volatile at the higher heat. Depending on what kind of fish you cook, the general taste of it will be different. And so, tuna or mackerel will taste similarly to a beef although still with the taste of fish. The most delicate flavor will be found in white meat from sea-living fish, e.g. halibut, soles, cod. Fish that live in freshwater will have a distinctive taste depending on where they've lived. Fish with pink meat, containing the flavorful pigment, will taste more "carroty" or flowery, e.g. salmon or rainbow trout.
The trick with cooking fish is their proneness to become quickly overcooked. Once the meat becomes tough and dry, the fish is overcooked. The goal, in other words, is to have a succulent, moist and tender meat. Fish takes literally a few minutes to cook on a hot pan. Since the fish live in colder environments, their proteins are more sensitive to heat. For this reason, they begin to denature (cook) at 50 C/120 F, and they become dry just some degrees above that. A goal of 55-60 C/130-140 F will give the best texture - moist and not tough. There are some exceptions though (see below).
Another point to remember when looking for perfection of cooking fish is the variety of their meat content and textures. If the fish is fat, they will take a little longer to cook since their fat conducts the heat slower than the proteins. On the other hand, fish with more protein cook faster, although fish that are really packed with protein conduct the heat somewhat slower (e.g. tuna or swordfish). The intactness of the meat is also of concern - if the fish is very flaky, like cod that contains large separations between the meat layers, then it will cook faster. To make things even more complicated, it should be obvious that a fillet that is made of two tapered ends and one thicker center part will cook unevenly.
What to do about all these problems? Chefs often use gentle heating that lets the heat spread more evenly from the surface and inwards, so that all the parts of the fish will cook evenly. You may want to first brown your fish before gently baking or poaching it. Also, if the fish is uneven in thickness, try to trim off the thin parts, if possible. You can use them in some other dish or stock maybe? When cooking, check so the fish is just cooked by either following the changes in opacity of the fish or feeling the doneness of the fish. You might want to use a toothpick to see if the flesh is cooked throughout or still a little too soft in the middle.
Remember that some fish, e.g. salmon, tuna, mackerel or sardine, become mushy when cooked gently in 50 c/120 F. They have to be cooked quickly to about 70 C/160 F to avoid the overactivity of protein-digesting enzymes. Use the cooking techniques that provide the fastest heat conduction (e.g. frying).
If your fish is smelling fishy you can try to remedy it by diverting the oxidation of TMAO compound to TMO (the "fishy" molecule). Chefs use some onion, sage, or bay, as well as acidic liquids to mask the fishy smell. Remember also to wash the fish off these ingredients before actually cooking it!