I also learned enough on my own to do my own bookkeeping (although my accountant does it at the moment). It also took me a fairly short time.

About a year before starting my company I grabbed ledger[0] and did some experiments.

First just to get an idea about double entry accounting I tracked my personal finances (and pocket money) for a week. This included me getting paid (I was on salary at the time) and paying some bills. This was pretty straight forward.

Then I took the hypothetical situation where my money originated in Japan (well, not so hypothetical, because it was actually true). I then tracked the money being exchanged in to GBP, my salary being paid in GBP, some expenses being spent in GBP and some money being returned to Japan. I then reported my various accounts in yen. Finally, I calculated my realized and unrealized capital gains.

This is when I realized that I didn't know anything about accounting. I recommend calculating capital gains using all of FIFO, LIFO and averaging methods. Unfortunately the software doesn't make it easy, but ledger is nice because it refuses to balance when you get it wrong. I also played with GNUCash for a while and managed to fool myself into thinking that my unbalanced accounts were balanced. While you may not need to do this kind of thing, I found it incredibly illuminating wrt what the accounts were doing and what various negative and positive numbers actually meant. You start to think differently about questions like "How much money do I have now?", because it depends on what you mean.

Finally, I did a year long budget for my planned company. I then mocked out a few months of payroll, deductions and expenses. I calculated depreciation on the things I thought I would be buying and did a mock year end report. I read a lot of tutorials on the web. For the most part, if you read tutorials on double entry accounting, using the names of the accounts they recommend is a good idea. After that it's a matter of thinking up scenarios and checking to see if what you did actually makes sense. You need to be able to look at a report and immediately realize either "this is correct" or "this is incorrect" -- kind of like a pass fail in unit tests. That's the power of double entry accounting, but it's easy to fool yourself, so practice is the best thing. Getting to know the limitations (and bugs) of your software is really important too.

When I finally started the business (in Japan), I got an accountant almost right away (not quite fast enough, though -- he would have saved me quite a lot of money if I had contacted him sooner). He's been amazing, but I had to help him with the foreign exchange and calculating capital gains. I've also been able to look at all of the reports he's given me and understand them completely. He doesn't charge me much so I'm happy to let him do the bookkeeping, but without the work I did a year before, I would not be nearly so trusting.

Most of the things I have needed other than those basics have been simply learning the rules. I'm running my business in Japan and thankfully the rules are actually pretty straight forward, but it's a good idea to always go back to the tax law and check that you understand what you are doing. It pretty much tells you exactly what to do, but it's easy to get it wrong (and fool yourself that it is right). As others have said, having an accountant is really important, but so is treating them like a partner and covering each other's butt.

[0] - http://ledger-cli.org/