Difference between Hints and Indexes
Both are related to performance and response speed. 

A hint gives the Cost-Based Optimiser (CBO) a "nudge" in a particular direction; an explicit instruction to try and get to the data in the way you tell it to.  The use of hints requires a [very] good understanding of the CBO and how Oracle chooses to do things internally.  Given that this might change with any given Release, it's probably the less effective of the two, generally speaking. 

I can't recall having applied hints to any Oracle SQL I've ever written. 

Indexes are generally there to speed up access.
If Oracle can use an index to get to data faster, then it [usually] will and the increase in speed can be huge!  Put millions of rows into an un-indexed table and try to query them; Oracle has no choice but to scan through them all and it will be really, really slow.  Put an index on the field you're filtering by and things can get [several] orders of magnitude faster.  A simple binary search on a single value can get to any of, say, one million records in about twenty comparisons (instead of the million).  Oracle's indexes are generally even better than that, holding more values per "bucket" and getting down to the detail even faster. 

Of course, the flip side is that inserts and updates can get slower, because Oracle has to update the base data and then the index[es] as well.  It's trade-off, like so much else in the Database World.