Here's how I would recommend learning the art of programming:
1. Study a computer architecture and learn most things there are to learn about it.
2. Write some programs using opcodes.
3. Figure out that using some kind of translation scheme from mnemonics would be a good idea. Implement it.
4. Figure out that a macro language would be a good idea. Implement.
5. Expand macro language. Implement.
...
?. Write a half-assed reimplementation of half of Common Lisp.