What I love about programming is the instant feedback. In most programming languages, after you set up a framework for the barest bones of a program you can then run it at every step of the way to confirm that you are moving towards your goal. What I love second-most about programming is the fact that I am using my computer to solve a problem and free myself from tedium.
Case in point, yesterday Danielle and I wanted to figure out what kind of a difference it would make to our mortgage if we paid off extra principal. We have, built in to MoneyDance, a program that will do that, but no way to save the results. So every time we wanted to examine it, we would have to recreate it. I said, rather flippantly, “I should probably write a program to do this.” And then that seed grew and grew until I knew I had to do it. It took about an hour to get everything perfect, but I was so happy to have it completed. But then I realized another problem, it looked great on my terminal screen, but what if I wanted to share it with someone? So I figured I should have it output to a csv file. I did that (about another half hour or so) and it imported into OpenOffice.org and Excel just fine. woohoo! Then I thought back to when I was trying to figure this out or see if someone else had written a program. There were a lot of results on Google that led to porn or other sites that had nothing at all to do with amortization at all! So I figured, I could generalize the program so that anyone could use it for any purpose. Well, anyone with Python installed. So, just download it from the link in this post and run python amortization.py and it will tell you what the commandline options are and how to see how paying extra principal affects the results.
Right-click and “save as” -> amortization.py