Human Resource Machine is a great puzzler on iOS from the World of Goo and Little Inferno people. In theory, it's a game where you put commands in a box to take inputs and produce outputs defined by the game in order to solve puzzles. In practice, I find that it's more or less a game where you code in assembly language and while that might not be the cup of tea of everyone, I really enjoyed it!
You start off the bottom of an elevator going up with levels sometimes branching out to give you more challenges if you want to. These optional levels are quite difficult, but the normal progression is a fine curve from simple concepts to more complex challenges. The game very much so teaches you its core mechanics one at a time, starting from taking inputs. You build your small program by dragging commands into a box, then you press play and watch it run! After a bit, you get spaces on the carpet where you can place things, copy them, add them, much like registries in assembly.
The story is pretty much irrelevant, but it fits the theme of Little Inferno and the like with the bizarre characters and settings. What matters in HRM are the puzzles and the tools you're given. The list of commands you can use grows with time to solve even more complex challenges, and after that you get challenges, usually, it's two challenges per levels, one of which is to use a certain number of commands or less, the other is about completing the puzzle below a certain number of steps. These loops add up, and I've barely managed to complete these challenges past a certain point! Maybe that's because I don't have the right mindset to optimize assembly code, who knows!
The game becomes a bit of a mess after a while, and that's one of my only complaint about it. You can add labels to your code to define blocks, you can add labels to the carpet to define your registries, but even so, these JUMP commands really clutter up a program really fast, and you can't create more complex IF statements than that. So there's a bit of debugging to be done there when your arrows don't point to the right spots. Another one problem I had is that sometimes its tough to know where your character will be at a certain step in the program. Some operations automatically give you the result, some automatically copy it to the carpet, sometimes you copy things manually for no reason, sometimes you get to a point where you cause a bug without knowing it would happen. But that's much like real programming, so it didn't diminish my enjoyment too much.
I really enjoyed HRM and I finished all the base puzzles! I didn't complete all the side activities, nor did I get the steps/command challenges, but I think it's an amazing little puzzler, especially if you enjoy programming. If you don't, you might need a bit more time to wrap your head around it, but I'm sure there's some enjoyment to be wrought of this one as well!