According to the Oxford dictionary the informal meaning of word 'hacker' is - an enthusiastic and skillful computer programmer or user.
But sadly for an overwhelming majority of people the first image that flashes through their mind would be none other than the below -
I am the founder of a company called HackerEarth, and I have faced instances when I was wearing a HackerEarth T-Shirt and strangers have stopped me in the middle of the road to ask, if I know how to hack into systems. The thing that amuses me the most is that every now and then, one of my friend would say to me, "You would be knowing how to hack online accounts, can you please hack in to a Facebook account for me." I say to myself, if I knew how to hack into any Facebook account why would be I sitting here, wouldn't I already be a billionaire.
But on a more serious note, Hackers are grossly misinterpreted and at the same completely overrated. Hacking does not mean building super cool applications in overnight hackathons, or writing freaking awesome code that can bring down the biggest firewalls, or knowing how to code in 10 languages, or even for that matter being a super smart programmer. In fact hacking does not even necessarily have to do with code and computers.
Hacking is not a skill, it's not an act, rather it's an attitude and a mindset. Hacker is someone who gets things done. Be it about something they have never heard of, or be it about something that they have been doing for numerous years, a hacker will get down to it, heart and soul, and make sure it's done.
Though the word Hacker is mostly associated with a coder or a programmer, but it's equally applicable to just any one else. The guy who goes out there every single day, building contacts, reaching out to customers, establishing relationships is a hacker; the guy who stays up the whole night to keep the system up is a hacker; the guy who is ready to lose sleep just to keep one customer happy is a hacker, the guy who is ready to learn what he doesn't know is a hacker and finally the guy who takes a challenge every single day with out failing, without stepping is a hacker.
Talking solely from the perspective of computer science, hackers are coders who want to create value in what they do. A lot of time they don't do it for money, they don't do it for fame, instead they do it for the sheer thrill of seeing something that they have built, solve real world problems. It's not about writing the most beautiful code, or using the most elegant coding practices, but it's about making sure whatever you have built, works flawlessly and more importantly- adds value.