Actually if you research on the two languages you will see that the difference is easily detectable by non native speakers as well and that they are the same language base but treated in different ways. First of all, not all know (even in India) that Urdu was originated in India (the Indo-Persian court in Lucknow was where the most beautiful Urdu was spoken) and that Pakistan after the partition adopted it as an official language, but most Pakistanis have Punjabi as a first language because Pakistan is a part of the Punjab reagion. Urdu is now also adopted by all Indian Muslims. Virtually there is no difference between Hindi and Urdu especially in the colloquial form (also known as Hindustani) that you will mostry hear in big cities and in Hindi movies. In the conversational language especially in big cities you will be expected to speak Hindustani. This language is actually Hindi with a preference for Persian and Arabic loanwords (such as ummid instead of the Sanskrit aashaa for example). Formally, Urdu is written in Arabic script and also has some Persian derived grammar structures. Nowadays the purists will prefer to use heavy loanwords from Arabic in Urdu and from Sanskrit in Hindi so that they can keep the two languages distinct, but that's not a conversational langauge. You will learn to tell Hindi words from Urdu words by some basic features. For example, words with 'za' or underdotted kha and ka are always Urdu, while words with consonant conjuncts are usually Sanskrit derived (but a good dictionaty can also tell you the origin of a Hindi word). Another difference in the two languages is literature, Urdu has a tradition of ghazals and Persian derived poetry, whilst Hindi has other forms.