The difference between “be good in” and “be good at”

If you want to express in English that you are good at something, it is not possible to use “in” (as it might seem based on the English construction), but “at”, e.g.:

  • He is good at playing the piano. (correct)
  • He is good in playing the piano. (wrong)

Some native speakers use “in” in connection with school subjects – e.g. “he is good in mathematics” means “he is good at mathematics” in the sense of “he has good grades in mathematics”. Others, however, would say “he is good at mathematics” and consider the “in” construction unnatural, so you can’t go wrong by always using “at” as well.

There are a few phrases in which “good in” is used. By far the most used is “being good in bed”:

  • She is good in bed. (correctly)
  • She is good at bed. (wrong)

The second example makes no sense. “Bed” is not an activity, so we can hardly be good “in bed” in the same sense that we are good at, say, “swimming”.