After working as a freelance developer for the past 8 months I've come to realize that in order to retain my sanity and to stay fresh I have to take the time to improve myself both personally and professionally. This means dedicating some of my time usually allotted for client work to use for my own personal development. For anybody in the software development industry it is a must that you keep up to date with all the new technologies, or you're likely to miss out on new developments. Dedicating your work time towards personal development is a double-edge knife where you potentially lose income, but gain some new knowledge. It's not an easy change for us workaholics!
When I made the leap from full-time office work with part-time contract work to full-time freelancing I found that I both gained a lot of new freedoms and opportunities, but lost a lot as well. I went from working on a large variety of projects that ranged from basic Java console applications to full fledged suites of Java portlet applications, to a single, complex Java application. This ended up keeping me out of the web development world for nearly 8 months. I felt my web-fu getting very rusty and my skill set slipped considerably. I knew this was a possibility when I started freelancing, but I didn't expect it to happen so suddenly and drastically.
The first step in dealing with any issue is to realize and accept that you have a problem. During the past few weeks I've discovered that my problem is that I've let myself slip out of a complex, multi-faceted work environment into an isolated, single-facet environment. That is not the fault of projects that I'm currently taking on, it is my own personal fault in that I didn't push myself to keep up with the world around me and to continue to self-educate. I admit that and want to inform other new freelancers that it is up to them to keep up with technologies. It's a no-brainer that we probably all know already, but like me, I suspect others, may forget as well.
My solution to this problem is to create what I call "personal development days". I'm sure that I'm not the first to use that term, but it's new to my lexicon. A personal development day is a day or part of a day (depending on other priorities) dedicated to personal development and improvement. We all know the areas where are our skills are lacking and those are the areas we should focus upon during these days. Personally, I'm starting to focus on the web development world that seems to have passed me by all of a sudden. I find it personally fulfilling, but keeping up to date with the web world keeps me more marketable.
Jekyll is a Ruby script based, static website builder. Many years ago I wanted to write one of my own static website tool, but for various reasons I was unable to dedicate the time to do it. Thankfully, others saw the need and Jekyll is one of many excellent static website builders. This website used to be run on WordPress, but is now written in Jekyll. I have no regrets moving off WP to Jekyll. There are no more worries about keeping up to date with WP changes just to stay ahead of the spammers.