My question is: when do we put adjectives before nouns, and when do we put adjective after nouns? Because sometimes, I heard people put adjectives before nouns and sometimes after.
Adjectives usually go before nouns in English.
Adjectives can be a subject complement, in which case they will follow a linking verb as described below. The following is an excerpt from here that explains:
The following verbs are true linking verbs: any form of the verb be [am, is, are, was, were, has been, are being, might have been, etc.], become, and seem. These true linking verbs are always linking verbs.
Then you have a list of verbs that can be linking or action: appear, feel, grow, look, prove, remain, smell, sound, taste, and turn. If you can substitute any of the verbs on this second list with an equal sign [=] and the sentence still makes sense, the verb is almost always linking.
However, there are many cases where adjectives can follow the noun. The General Uses section in the Wikipedia article Postpositive Adjective explains it comprehensively.
As a rough guide though, generally putting an adjective after the noun [noun] X is the equivalent to saying [noun] that is X
Following the examples from the Wikipedia site:
Every star visible is named after a famous astronomer = Every star that is visible is named after a famous astronomer.
I'm here to find the people responsible = I'm here to find the people that are responsible.
we need a box bigger than that = we need a box that is bigger than that
There are also a number of set phrases that could in a way be considered compound words, and other cases detailed in the article.