UI Friendliness – Forms

I am developing a website which (I hope) will be extremely useful and used World Wide... Don't we all!

Anyway -

What is the best practise for fields with lots of data?

Say for example - picking the country you are from. It is quite clearly mundane and annoying for the user to have to scroll through just about every country to find theirs (Especially for us UK people).

Another example - date of birth. Having to select a year can be quite an annoyance.

Select boxes are made a bit harder by the fact that on iOS they're a bit fiddly (not tried Android so can't comment) and unless you click it properly you have to re-do the selection.

How have you, friendly, wonderful people come up with solutions for these? Specifically the country/state.

One idea I have is a typeahead/autocomplete but I'm thinking there does have to be a better solution.

Thank you