What's the difference between Minimize and Hide, between Maximize and Fullscreen, and what are all the keyboard shortcuts for these?
After learning all the things below I am documenting them here for comparison and contrast.  This may seem idiotic to experienced Mac users but to a Windows user it will clarify a lot.
This is not exhaustive documentation on all these features.  It focuses on the confusing aspects, the contrasts, and how to undo mistakes.
There is a great and more exhaustive comparison of Minimized vs Hidden in this question: What are the differences between minimizing and hiding an application?
Maximized
A maximized window is expanded so that its contents can be fully displayed, but with the Dock and Apple Menu still showing.
The exact behavior is app dependent. For example, Safari will usually only expand in height, not in width, while Preview and the Finder will usually expand  to fit the entire current screen. You maximize with ⌥ alt+MouseClickGreenLight.  Same action to undo. Note that clicking the green light (without ⌥ alt) on a maximized window will Fullscreen it. Pay attention.
Fullscreen
A Fullscreen window is moved to a new Desktop/Space where it occupies the entire screen without a Dock or Apple Menu or even the window's own traffic lights.  To do this click the green light or use ⌘ cmd-⌃ ctrl-F.  To undo, ⌘ cmd-⌃ ctrl-F again or hover the mouse at the top edge of the screen for a bit and the Apple Menu and traffic lights will appear.
Minimized
A minimized window is moved to a small icon at the right or bottom end of the dock (depending on the dock's orientation).   Do this with ⌘ cmd-M or the yellow light.   Undo this by clicking on the window in the dock.  Note if you switch to an app by clicking on its main icon in the Dock or with ⌘ cmd-⇥ tab, its minimized windows won't open, and if it only has minimized windows you will make the app active but will not open any windows.
Hidden
An app and all its windows can be hidden.  They appear nowhere.  Do this with ⌘ cmd-H.  When you hide an app, even the windows that were minimized in the Dock are hidden.   Restore a hidden app by clicking on its main icon in the Dock, or ⌘ cmd-⇥ tab to it.  When you restore a hidden app its minimized windows will still be minimized.   You can also hide all apps except the active one with ⌘ cmd-⌥ alt-H.  You can't undo that in one action.
Closed (Killed)
A closed or killed window is permanently deleted.  Do this with ⌘ cmd-W or the red light.  Exactly what this does and how to undo it (if possible) is application-dependent.   If you close an app's last window, it may or may not Quit.
Quit
You can close all an app's windows and stop the process with ⌘ cmd-Q or with Quit from the Dock or Apple menus.   Some apps will quit if you close their last window, some will keep running.  You can identify a running app from the dot next to its icon in the Dock.   It may have no windows or only minimized ones.  If there is no dot, that means it is not running but the icon has been locked in the Dock for convenience.  There is no Undo - If an app has open windows when you Quit it, they may or may not be restored by the app when you restart it.
Switch
The active application occupies the Apple menu at the top of the screen and usually one of its windows has the keyboard focus and is in front.   Switch to an app by clicking one of its windows, clicking it in the dock, or with ⌘ cmd-⇥ tab.  Switch between windows of the active app by clicking them or with ⌘ cmd-~ tilde.  You cannot switch to a minimized window, you have to click that in the Dock.  If you switch to an app that is running but has no windows or only minimized windows, it will appear in the Apple menu but nothing else will happen.
Here is a cheat sheet you might like to print:
Switch App     ⌘ cmd-⇥ tab
Switch Window  ⌘ cmd-~ tilde
Hide App All  ⌘ cmd-H
Hide Other Apps ⌘ cmd-⌥ alt-H
Minimize Window ⌘ cmd-M or Yellow
Kill Window ⌘ cmd-W or Red
Kill App ⌘ cmd-Q or from Dock/Apple menus
Maximize Window ⌥ alt-Green
Fullscreen Window ⌘ cmd-⌃ ctrl-F or Green
UnFullscreen ⌘ cmd-⌃ ctrl-F or Hover Mouse at top
Addendum
I'm adding a few extra bits here at the end that I think would overcomplicate the answer but are worth mentioning.
The Dock setting Minimize Windows to App Icon changes the Minimize behavior described above so that Minimize works a little more like Hide but only for specific windows.  Minimized windows do not appear in the Dock.  I think that if you choose this setting, minimize various windows, then hide various apps and then unhide some ..... you probably end up in a state where you have no idea what windows exist where.  I'm not sure how you would employ this setting in a useful way or how I would describe it in the main answer without making the answer too complicated.
The Dock setting Show Indicators for Open Apps if disabled means the dots described above under &quot;Switch&quot; will never appear, and you would have no visual way of distinguishing running apps with hidden windows from not-running apps with icons locked in the Dock.  I suppose if you chose to have zero locked icons, the dots would be redundant so you could gain back a few pixels by eliminating them.
For people with multiple monitors, the Mission Control setting Displays Have Separate Spaces is not default but I use it and some of the details above may be based on that.  I can see these differences:
Differences with Displays Have Separate Spaces

With separate spaces, windows cannot straddle both monitors.  Each window is on one monitor, and if parts of it go off the edge they disappear.  With one space a window can straddle monitors.
If you Fullscreen a window without separate spaces It will occupy all of the monitor in which its upper left corner resides, and all other monitors will go blank and be temporarily disabled.  If you then switch back to the main space the other monitors will come back into play, so long as you are not in a space with a Fullscreen window.
Maximize is the same with or without separate spaces. The window is resized to use the current monitor for maximum effect.
Combining these, the only way to have a single application occupy all of your monitors is to use one space (not separate) and resize the window manually from its corners.