Cygwin versus MinGW (Minimalistic GNU for Windows)

Please help me differentiate and understand what Cygwin and MinGW (Minimalistic GNU for Windows) are. In terms of usage and installation which is more user-friendly and does it require a professional background in IT to understand it clearly?
How technical these two are?
