Most of my recent work has been in Java. I still consider myself an advanced novice as I am very familiar with a lot of design concepts but I don't have the time and experience with the languages and the packages available to necessarily do it the best way I can.
I also tend to use my home development environment to learn about tools and processes I might use elsewhere (work for example). For example I am using a large part of the Atlassian suite of products (JIRA, Fisheye, Confluence, Bamboo) under their starter license program to experiment safely at home. I have to admit it is slightly overkill
What this all tends to translate into is a fairly complete development environment (oh yeah, I use Eclipse too) which may or may not be setup up correctly. My normal cycle usually involves choosing an issue to work on (I am using JIRA for issue tracking, remember?). Mylyn is plugin within Eclipse which integrates with JIRA and allows me to focus my work and "state" on the task at hand.
While I am working on the issue, I tend to commit to my local Git repository at appropriate times during the session. If at the end of the session I am satisfied that I have a working copy or if I am finished with a particular issue, I also push my git repository upstream to my remote repository and build server. Bamboo which is running on that server will kick of a build and assuming that work, I am officially done.