One school of thought is that a column name should represent a single domain space across the database. For example, a product name is something quite different from a company name. One might be longer than the other, etc. In that respect you should use the first method since it distinguishes between the two.
On the other hand, I agree to some degree with Think Before Coding's logic. I always use the table.column syntax, so the context should be clear.
Using the more verbose column names usually avoids conflicts with reserved words.
Then again, it can be quite redundant if every column in your product table is ProductXxxx.
In other words, I don't have an absolute preference, but I do tend more towards the verbose naming convention.