I have some difficulty understanding the application of the callback functions. where do we use it usually? Do we use it in frontend?
It really depends on what you are doing. I, personally, prefer to use async/await over higher-order functions (AKA callbacks). I find that higher-order functions can be useful when writing more complex error handling for back end APIs. Here is a bit of reading that may help you decide which to use and when.
https://adrianmejia.com/callbacks-concurrency-in-javascript-node/
https://vegibit.com/javascript-callbacks-vs-promises-vs-async-await/