Preposition

Hello, a lot of questions about preposition have been troubling me for a long time.
I always confuse the usage of the preposition and i don’t know which should be used or based on what to decide what preposition should be used.

For example:

Terry has punched Kim in face. (why use “in”)
Is “on the forum” or “in the forum” ?
Is “at the top” or “on the top” ?
Is “father is fishing in the river” correct or “father is fishing besides the river” ?

I also confuse the usage between with and by, for and of, at and in, especially when preposition + adjectives and verbs.

For example:
why we use shocked “at” something, but we use afraid “of” something ?

I hope someone can help me.
Thanks.

#1 Terry has punched Kim in the face.
#2 Depends.
#3 Depends.
#4 In.