Patenting software, is the same as patenting anything else, and, it can all be done online from the comfort of your home or workshop. The complex nature of the requirements means you might want professional help.

A Patent Engineer is an engineer or other scientific professional who works with a patent agent or attorney to help with patenting inventions.
A Patent Engineer may be an engineer that has become licensed as a patent practitioner (a patent agent or attorney).
A primary purpose of a patent application is to fully describe how to make and use the invention. Patent Practitioners who are also Engineers can be particularly helpful in writing a good patent specification.
Patenting software, is the same as patenting anything else, and, it can all be done online from the comfort of your home or workshop. The complex nature of the requirements means you might want professional help.