My formal education was in science and mathematics. However, after graduating, I worked at various unrelated jobs, eventually gravitating more and more toward accounting-related work.
My first accounting position was paying bills at a property management company. I also prepared simple cash disbursements reports for distribution to the landlords and home owner associations. To improve my understanding, I began taking college-level courses in Accounting at night, to the intermediate level. I was told that I was good at what I was doing, but I honestly didn't find the work interesting or rewarding. In the pre-personal computer days, I actually moved between office and manual labor jobs several times. This pattern began changing with the advent of personal computers in the office.
Years ago, I worked at a European bakery as an accounting assistant. There we used a CP/M machine with the SuperCalc spreadsheet program installed. It was my first direct experience with computers and spreadsheets. There were no user-friendly tutorials available at the time, so I relied on the manuals bundled with the machine to learn enough to get started and began creating my own spreadsheets. I was fascinated by its potential. I likened the mathematics I learned in college to formula construction ("equations") within spreadsheets. Among other things, I voluntarily converted their fixed tables of dough recipes to a flexible format based on poundage.
Later I worked at a tire business, which also used a CP/M computer. They utilized software written in interpreted BASIC by a local computer consultant. There were several bugs in the programs, so I began studying enough BASIC to fix them, and eventually enhanced the software system.
My involvement with programming sparked my interest in personal computers. Around this time, I purchased my first computer, operating under CP/M. I began studying different programming languages and writing sample programs. I even used one of the tools developed by the consultant, a data file editor which displayed characters in ASCII and HEX, as a target program; I developed my own version, which I called "FIX," short for FileFix. Since his program used 8080 assembly language, I studied a little assembly language as well, to incorporate into my version. The source code for his utility was protected, so a casual user wasn't able to view it. So I never used his code in my development work. I came up with my own routines.
Later, the consultant was getting ready to upgrade the system from CP/M machines to MS-DOS ones. He had to overcome a hurdle, though. What he was proposing to do was to transfer the data files from one system to another. The issue was that the two systems were incompatible. These were the early days of personal computers, so there were no built-in compatible solutions like copying to and from disk or flash drive. The most direct approach to him was to transfer the data over the serial port, but in the process, stripping the 8th bit of each byte and thus destroying the integrity of the binary data. I offered to write code that would convert the binary data files into their hexadecimal equivalents, but in text format. Since the 8th bit wasn't used, there was nothing to lose. On the other end, I would convert the hexadecimal text files back to binary format. The consultant gladly accepted my proposal. The transfer itself involved hooking up cables and such, which was beyond my capabilities. However, after the data was transferred to the new machines, I took over the data conversions. One nice thing was that the consultant convinced my boss at the time to nominally compensate me for my contribution to the process.
The migration also gave us access to newer MS-DOS software. I began using Lotus 1-2-3 for payroll calculations and used it to create a set of management reports analyzing sales, including graphic representations of data.
Whenever I learned a new programming language, one of my first tasks was to recreate my FIX program in that language. I learned PASCAL, C, some 8088 assembly language, and finally settled on Modula-2. I favored Modula-2 because it was created by Niklaus Wirth as a successor to his earlier language Pascal. It was suitable for writing operating systems as well as application software.
After learning Modula-2, I succumbed to the urge to rewrite the BASIC programs at work into Modula-2, just because I could. This is often not the best reason to do something. In retrospect, a better approach would have been to involve my boss, the owner of the company, in my thinking and offer him options, and then come to a mutually agreeable decision. He wasn't even aware that I had purchased the Modula-2 compiler I utilized for work using my personal funds.
I began uploading DOS utilities I created in Modula-2 as freeware to CompuServe, GEnie, and local bulletin boards in Hawaii.
When I worked at a local tug and barge company, I moved away from coding (reinventing the wheel). I purchased FoxPro, a popular database program, using my personal funds, and began using it to both record data and generate reports. I selected FoxPro because it used dBASE-compatible files, which increased portability, and because it was easy to work with. I didn't have to resort to programming. I asked that all tug logs come to me first, and began using FoxPro to record all tug movements by vessel name, to track their histories and also to match up against billings related to the work they did, whether it was tug assists or towing barges interisland. I also recorded expenses and revenue, so when the VP at the time had a question that had never come up before, I was able to produce answers in short time.
A few more job changes and, more recently, I've worked at two different nonprofit organizations for a combined total of several years. Along the way, I've continued working with spreadsheets and other software tools, approaching them much as I approached programming years ago: not as an expert in any particular tool, but as someone interested in solving problems with the tools at hand.
If you'd like to get in touch, send me a message.