Forum Moderators: not2easy
For starters you will need to ensure that there is no prior art in this area or even that your country actually allows to patent these things - in EU for example you can't get patent for an algorithm and US patent office seems to be taking about the same view on it now.
My advice - save yourself a lot of time and money by avoiding trying to patent something like this.
the costs involved in having a patent attorney - if you can find one that understands on any level what your invention actually does - are exorbitant. Tens of thousands of dollars most probably and just for starter.
I have a couple of patents from my previous career (1980's) which were largely mechanical so I have a basis for comparison, at least.
Most patent attorneys come out of backgrounds in mechanical engineering and electrical engineering and are going to take an extroadinary amount of time grasping your idea if it's software.
Plus, the firms that specialize in software patents won't touch an idea that could possibly in any way conflict with an established client like Microsoft or Google and the like. (Just try calling ANY patent attorney in Seattle and tell them you're looking to patent a "better" algorithm than MS Live Search and see what happens!)
However, there is absolutely no reason why you can't write it yourself. My attorney acted only as an editor, making sure I didn't screw myself in any way. And his help was invaluable in drafting the claims - that's the hardest part for the layman. But once he got me started, I even did a decent job on the claims, too.
And then, when the examiner comes back at you with objections, you absolutely have to have an attorney's help. There's a way to respond and a way to NOT respond.
I found the book Patent It Yourself published by Nolo very, very helpful.
Good luck.