Even with 1+ year professional experience in software industry it was not clear to me how a program written in high level language gets executed in machine level and "Nand to Tetris" is exactly the course that I was looking for. Building a computer from scratch sounds scary as computer is a complex machine consisting of memory unit, CPU, hardware devices and more than that you have to understand computer architecture to make them work together. True beauty of this course is it has perfectly organized all these complex topics in such a way that it becomes very easy for the learner to proceed step by step.
1. Perfectly organized
2. Course assignments are fun and engaging
3. Great opportunity to build a computer from scratch
4. Well balanced combination of knowledge and implementation
Cons: 1. Hardware simulator provided with the course materials is not that user friendly.
Difficulty: Medium or easy if you have programming experience. It is completely fine if you do not have programming experience but you have to put a little extra effort.