Every so often, someone asks me what software tools I use to do my NBA analysis.
Programming
I do most of my coding in these days. It's a fully object-oriented (literally everything is an object, even numeric literals — for example, 4.succ produces 5!) and dynamic scripting language. Here is a . I recommend for a fun and free intro. The will get you going, too. If you're really serious, pick up and .
I mostly use as my editor. It's free and you can run code directly from it without having to go to the command line.
I'm actually using for most of my Ruby coding these days. I also recently started using for javascript coding.
Database
I used to do everything with just .csv files, but saw the light of day, and have started using a database. Specifically, I'm using , which is one of the so-called "NoSQL" databases that are gaining in popularity these days. There are a few reasons that I like MongoDB. The first is that it maps really well to object-oriented programming in a language like Ruby. The second reason is that when I'm developing a new application or metric or web scraper or whatever, I don't want to be tied down (in the beginning anyway) to a particular schema. MongoDB allows me to be very flexible in how I build the database. The third reason is simply that I like to learn about new technologies, and MongoDB seems to be gaining traction as the database of choice for the JavaScript stack.
Statistics
Pretty much . It's free and has thousands of free stats packages. I use the front end. Also free. The O'Reilly book is a good reference. I also found Everitt and Hothorn's a good starting point. There are seemingly new books coming out every day that use R, like Springer's series. Another great resource for learning R is to follow some blogs, most notably , which aggregates pretty much everything happening in R these days.
That's pretty much it. Add Ruby and R to your other 3 R's and your all set to do some serious (or even not-so-serious) analytical work.