As part of my series on personal learning, I've previously written about learning via online reading and reading books. Reading websites and books is a good strategy for gaining knowledge, but works poorly for gaining skill at doing something. Your ability to retain the information you read is also greatly increased when you actively use this knowledge while performing an activity. For example, if you want to learn how to use a particular Java library, reading the documentation may give you a good overview, but the best way to become proficient with it is to write code that uses the library. Learning by doing is therefore a key professional development strategy that we should be using.
For a working professional, the best opportunity to learn by doing is at work, as I wrote about in my article on learning in the workplace. But if this doesn't work out - perhaps you want to learn a technology not used at work - then the alternative is do so on your own time. I refer to each personal learning task that I take on as a personal development project. I use the term project because I prefer to invest significant effort to ensure I better retain the skills I am developing. Spending just a few hours one time is not enough.
The first step is to pick something to do for a personal development project. If your goal is to learn, then there should be some novel element to the project that you have not yet been exposed to. An example for software developers is using a new language, a new library, or a different design approach. I highly recommend choosing something that you are strongly interested in and motivated to work on. There are typically no external motivators like a paycheck or a supervisor, so the stronger your internal motivation, the better. I have started projects highly motivated, but then circumstances changed, I lost interest, and as a result I made no further progress.
It is not actually bad to fail to complete a project. If your goal is solely to learn a particular skill, then you may feel you have accomplished this before you are completely finished. In my experience, I have noticed that many of my personal projects have some less-interesting and less-educational work required in order to complete them. When I get to the point when this type of work is left, unless I have a compelling reason to complete the project, I stop. The decision to stop or continue is based on a cost-benefit analysis: what value do I derive from continuing this project compared to the time and energy I will invest in it?
The biggest challenge to working on personal development projects is finding the time and energy. I find I need a good block of time - ideally at least a couple of hours . I also need sufficient mental energy: trying to code in the evening after a day spent developing code at work seldom works. So weekends end up being the best time for me to work on my personal projects. This means that a week passes before looking at the project again, so I find I need to keep more careful track of where I am at and what I am planning to do than if I was working on the project on a daily basis. At work, there are periods when I am not doing any heavy coding or designing due to spending my time on other activities such as requirements-gathering, reviews, documentation, planning, etc. In these cases, I find I still often have the mental energy to code in the evening after work.
As a software developer, many of my personal development projects do involve developing software. At home I maintain a complete development environment with all my favorite open-source software. My Software page contains some of the results of these projects. But a personal development project can be something completely different. For example, when I read Getting Things Done : The Art Of Stress-Free Productivity by David Allen, I wanted to try out the organizational system described in the book. So I started a personal development project to set up and use this organizational system. This project was a success - I am still using the system today. Another example is this website. Setting up, operating, and writing articles for my website has been an incredible learning opportunity, exposing me to activities that I have not had the chance to do at work such as visual website design, server log analysis, and operation of a publicly-facing web application.
Learning by doing is a powerful tool. I challenge you to set up a personal development project and start benefiting from it.
If you find this article helpful, please make a donation.