TIS-100

If you have ever programmed or considered programming, play this game.
It is really a machine language simulator.
The start easy and get hard really fast.
The difficulty lies in limited coding lines, and registers.
Parallel modules communicating and timing make for challenging scenarios.

Pros: Atmospheric and great fun for those who like programming.

Cons: Hard levels

http://www.zachtronics.com/tis-100/
https://en.wikipedia.org/wiki/TIS-100