this is my standard answer
I've implemented either a betting pool or a Baccarat game in almost every language I've learned. This should wake up your dormant programmer neurons.
This type of software covers
- Dates and times, with calculations
- Currency types and things that can be converted to and from currency
- A discrete set of rules that is easy to test
- States, transition between states and multiple entities responsible for state transition
- Multiple users with different views of the same model
- Multiple end conditions
I like this project because it has tons of small parts that can be written interdependently but won't be done-done until all the parts are done.
Multiple player blackjack and poker would work also.
This is assuming you are looking to learn the following:
- Modern strongly typed dynamic language
- Web app programming
- Modern dev workflow with unit testing, automated build & deploy, version control
- Current trends in UI
- Current IDE & VCS etc
I would recommend ruby or python as the language with either Django (python) or Sinatra (ruby) as the web tier. Sinatra apps look (and can act like) command line apps so there is that advantage.
Both Ruby and python have really nice unit testing options. With ruby you can start with the basic test:unit and then learn RSpec. With python, start with unittest then look at Pyramid or Cheese Shop.
Use subversion as the VCS. All the new DVCS borrow from svn for their syntax. Learn SVN (it should be very similar to the old VCS you used) and then look at git and mercurial.
Use Eclipse if you want and IDE. If you used to know vi really well, try VIM. if you're on a Mac, try textmate. On windows, notepad++ is pretty good.
One caveat is that in my day job I work on financial systems and there is a huge overlap between things to consider when writing a multiplayer game of chance and a trading system.