[...]although it's detail oriented, you only have to get each detail correct once and the computer handles the monotony. [...]
This is the key part of avoiding most of the monotony. I believe the chief skill in programming is to never have duplicate logic in your code (if you do break the rule, then minimize how often you do. I try to keep it under 3. If you need to duplicate something more than 2 or 3 times, seriously consider refactoring your code).
Also,
Aspect Oriented Design and Programming makes for for extremely concise code, and most of the code will be interesting to work on. Weavers are generally fun, and you spend most of your time deciding join points, etc. Your code becomes virtually nothing more than a description of your architecture. If you can't use an Aspect Oriented approach,
Design Patterns is next best, but a lot more tedious.
Also, learn the
Discipline of Programming, the
Psychology of Programming and the
Practice of Programming. Kernighan, Weinburg and Dijkstra are luminaries in the world of software. Weinburg is an INFP, Dijkstra, I think, is an INT and Kernighan, I think, is an NTP. Although, the books are old, I believe the principles there in to be timeless.
Admittedly, these are principles for personal use, but following these principles has sometimes gotten me comments that I write "beautiful code" from teammates. It doesn't take me long time either, the habits just become second nature after a while.
I must say, though, that there can still be A LOT of monotony because the
problems you have to solve become routine and mundane...this applies even to design and architecture for me.
If I had more interesting problems to solve with my code, then I would enjoy it more. Right now, I am writing numerical code to solve for the stability of metal nano-wires (for an independent study at school, not work) and I am enjoying that.