What are goroutines? And how do they actually work?

One of the main reasons that the Go Language has gained incredible popularity in the past few years is the simplicity it deals with concurrency with its lightweight goroutines and channels.

Concurrency is not something necessarily new, it has existed since long ago in the form of threads which are widely used in almost all applications now a days.