This question is best answered by defining what a hacker is NOT. A hacker is not someone who breaks into computers / networks to steal money, to spy on people, or to do illegal things with intent for personal or financial gain. The term hacker is often confused with the term cracker; a cracker is a person who attempts to bypass security measures to attain access to protected systems, and crackers may or may not have malicious intentions.
Hackers take things apart to learn how they work, and put them back together. They tend to be abnormally creative individuals with an uncanny ability to discover and apply unique solutions to problems in a variety of disciplines. One does not need to have a computer science degree, nor does one need to have any formal education / special training. In fact, most people regarded as hackers are regarded as such because they have independently pursued an interest (many are self-taught) to the point of becoming experts. The results of their endeavors are often called "hacks".
Hackers are generally benevolent in nature, and tend to freely share what they discover.