The game has a linear flow with some additional side quest type problems to solve that are meant to be more challenging.
The interface is quite straight forward. The objective is to get items from the Inbox, do something with them and put the result in the Outbox. You start learning simple things like moving items, then it goes onto loops, copying items, addition, subtraction, branching, etc. As you progress through more challenges, more and more programming instructions become available.
You 'write' you code by dragging and dropping commands and then you can run your program or step through it one instruction at a time. If you get it wrong you get a big red warning and if your code does what it's supposed to you can move onto the next challenge.
There are some interludes...
If you do get stuck, clicking the manager will present some options including showing you an example of what is expected in the outbox.
The challenges get harder and harder, but also at one point you start getting ranked on your code efficiency. There are two classes of code optimisation - code size and code speed. Both of these may not be possible to achieve with one solution and they do make things much more difficult to overall (but that's the fun in it).
I've not played the game all the way through the end, but really enjoyed it so far. I was stuck on one solution for well over an hour trying to get both of the optimisation challenges. Looking forward to completing the rest of the game now!
Once I make more progress I'll put my solutions up on here.