Dejavu: I've asked this before. This time I'm a bit more serious.
A couple months back I took up Visual Basic. I didn't learn too much, but I got a feel for it. Prior to that, I learned C++ about ~8 years ago, though my ability level is not past that of a 1st year uni student.
What I am doing:
I'm a full-time accountant (junior) & accounting student. The first thing I've learned is that every piece of software that exists has serious issues. Some of the issues could EASILY be fixed, and improve workflow by over 50% on certain jobs. Some of the issues are more complex, but with proper accounting knowledge, logic-based programs could be developed to automate certain tasks.
An example of a task which could be automated:
A client sends in their year end financials. Their program (Quickbooks) changed the names and account numbers of certain accounts. For example "2007 GMC Truck - #SN 1111" might be attached to account #1701. The depreciation might be in account #1701.1. But, in the previous year, the title may have been "GMC Truck - 2007", and the account # might've been #1702. The client may also have removed 5 accounts (disposed of assets/etc), and added 7 accounts. In order to remap all the accounts in Caseware (the accounting software used on the accounting side of things), there's a fair bit of manual work. I have to double-check to make sure which account should be which, I have to remap within Caseware to make sure the assets are classified as "long-term capital property", etc. A quick program could pull prior year data, current year data, and auto detect which accounts have changed, and what their current account number is (or notify which accounts are likely to have changed, and to what they likely are now). The program would also check client-side mapping and general journal entry activities to ensure the treatment of the account during the fiscal year was consistent with prior years. So on and so forth. Then, I could create a copy-pasteable Excel style trial balance, which could be inserted into Caseware, that matches Caseware's mapping, after cross-referencing their mapping.
There's lots of other tasks which I'd like to automate, that's just a snippet of one. Another example would be creating a reconciliation checker. Often times, the client's reconciliation of their books isn't correct. An example is a bank-side reconciliation. The client will keep Quickbooks records, but they'll also have a second set of records, and they'll have their bank statements. Things won't necessarily line up. Often times you have to hunt through their transaction records to find that $10,000 didn't go to cash, it went to prepaid expenses, and their books cash balance was off because of that. It's not that simple though, it's usually 32 different split transactions that were done wrong. I want to pull that data and analyse it, using some predefined logic that I'd use in real life anyways (very much a tiered mountain of if-then-else and loops).
I'm wondering: I'm still picking away at Visual Basic. My brother has introduced me to a pre-built open source database program which I'll be using. But what other programming language should I be looking at? I specifically want to pull data from other programs (through export, not real-time), store the data in the database program, and then process the data. I want to develop a central program that I can build up from. The idea is that it doesn't network, it's just on one computer at a time.
This post was edited by Canadian_Man on Jul 23 2017 04:33pm