Happy new year all! With the new year comes a chance to re-invent yourself, and as a software developer I find that it is a great opportunity to reflect on how I can improve my skills in the upcoming months. I have thought about this quite a bit over the last few days and have come up with a list of new years resolutions I intend to follow that will help me, and hopefully others, start the new year off on the right foot.

Practice and experiment with new languages and frameworks for at least a day a month.

Keeping up with the latest advancements in the software world can be challenging, especially when working at a fast paced start up. Nevertheless, taking time to investigate new and interesting languages and frameworks benefits not only your career, but may also provide streamlined solutions to problems at work. Having an array of languages and frameworks in your developer’s toolkit allows you to find the best solution to a wide range of problems. Career 2.0: Take Control of Your Life seems like it might be a good place to start investigating this resolution.

Improve my posture

There’s no better time than now to get rid of bad habits; and if there’s one bad habit that plagues me and many other developers, it’s bad posture. Slouching, poor monitor placement, amongst other things can cause serious injuries over time. There are many interesting solutions I have seen other developers taking advantage of that I would like to check out. Yoga ball chairs to prevent slouching and standing workspaces are both worth investigating. OSHA has a checklist for computer workspaces available so that you can analyze your own workspace for proper ergonomics.

Assess and finish miscellaneous side projects

Many developers have leftover side projects and experiments sitting around on their hard drives. I for one have many unfinished lines of code in a variety of languages waiting to have the dust cleared off. Even ‘finished’ projects can always use some additional polish. Going through these projects, organizing them, deleting ‘dead’ ones, and prioritizing those that need attention isn’t very appealing to me. But I know once I finish these non coding tasks, I will be much more willing to spend the necessary time to give myself a deadline and complete the projects. One of the nice things about completing these projects is in having real people using them and hearing how helpful they find them.

Be more active in software communities

I often find it difficult to make time to be active in development communities. Aside from reading miscellaneous blogs and news articles and occasionally commenting on reddit or hacker news; I don’t participate much in the community. In the upcoming year I hope to attend more developer centric talks and meetups as well as perhaps working up the courage to give a talk myself. Beside getting my name out there, this will give me a chance to learn about and become an expert in a new and interesting area.

Practice more complete documentation

I consider myself an adequate documenter, as I am sure most developers do. While helping to develop a tool to help developers document code I realized that there is always room for improvement. I intend on keeping documentation up to date, adding javadoc where appropriate, and creating useful diagrams for code I am working on. Every good developer should always be working to improve these skills since your code is worthless unless others can also understand it.