Using ID is a SQL antipattern and should not be used. It is more likely to cause problems than using the tablename ID approach because people will use natural joins in dbs that allow them and join to the wrong id or in complex sql for reporting it is very easy to join to the wrong id (from a different table than you are joining to) where you would get a syntax error if you were to use tablename id. Plus, it makes more sense for PKs and FKs to have the same name. It makes is simpler to know exactly what you are to join on.
Using either IDTablename or tablenameID is a matter of choice. Of all the databases (thousands in my career) I have had access to, most seem to prefer tablenameId. Whatever the choice, be consistent through the database. It is very annoying to work with a databse where some tables use Id and some use tablenameId and some use tablename_id and some use Id_tablename and some use IDtablename. Pattern consistency is more important than any other factor in naming objects.