I think that in some ways programming is a lot easier than some areas in that it is often very easy to get feedback on whether our work has performed or not (especially in this day of TDD).
Contrast this with a lawyer writing a contract - you can't write unit tests, there is no source code debugger and most contracts never get "executed" in the fullest sense of being interpreted in court so you don't really know what they mean in practical terms. This would drive me crazy.
That's also what makes programming harder. As a lawyer you can write a contract that is literally factually incorrect with respect to the law, and may never get tested and actually works as intended (gets two parties to abide by the rules of the contract).
In programming, the first test is the computer. If my program doesn't compile or pass unit tests, I can't even get it to the client or customer.
(I know this was not your point, but...) Actually, many areas of law are very rigid (in the logical sense) and, imho, quite appealing to the analytical thinker discussed in this post. The practice of law may not be like that (although I don't know for sure (yet)), but the same can be said from the 'practice' of the corporate MS Access programmer or the cookie cutter CMS web programmer.
Contrast this with a lawyer writing a contract - you can't write unit tests, there is no source code debugger and most contracts never get "executed" in the fullest sense of being interpreted in court so you don't really know what they mean in practical terms. This would drive me crazy.