As software professionals, there is always something to learn. It’s a vast field, with so many different technologies and techniques, within which everyone will have their own particular personal interests. When I come across software developers who are perhaps a little jaded or disinterested, I try to encourage them to pick off a fresh topic, as a way of rekindling some enthusiasm. I really like that there is so much variety, and the more I learn, the more I discover that is out there that I could learn about next! I’m normally quite busy, between working with clients and on side projects and spending valuable free time with friends and family, but here’s some of the ways I try to always make time to learn.
Recently I’ve been spending a fair amount of time travelling to client sites, and that’s a double-edged sword. It gives me less time at home, which isn’t ideal, but I’m making the best of the time by trying to spend it as productively as possible. I find trains are a fairly good environment to focus on something, with little in the way of distractions. Almost every post I’ve written (about 30 at the time of writing) has been the result of a train journey. I’ve sat and spiked solutions for client problems, some of which have been very successful – and all things I’d not have had time allocated for otherwise. The main things I do on the train though are reading and watching videos.
I’m on a pretty busy route, so sometimes I end up standing, which means using a laptop isn’t an option, so I make sure I have a mix of books and e-books (which I can read while standing), and videos and things to write about (when sitting). This means I can make sure I get some value from the journey regardless, and this all adds up. I try to mix this with other activities as well, such as having a tablet loaded up with conference videos that I watch while at the gym, and podcasts for driving. At one point when I had a swimming pool in the building, I always had a waterproof MP3 player loaded up with podcasts (in particular DotNetRocks) – it was a really great way to start the day by swimming lengths for an hour while learning something at the same time.
For videos to watch, my main source are conference videos, in particular from the NDC (Norwegian Developer Conference) channels. I download a dozen or so videos that take my interest, because I find that based on my mood a certain type may appeal more on any given day. I tend to have “go-to” subjects – such as cloud architecture, functional programming, software design principles and agile delivery – and I watch a lot of these. I try to mix in other areas though, not necessarily because I intend to go deep in the topic, but to give me some level of awareness. I’m notorious among friends and colleagues for being as some call it “a link library”; I try to retain a rough knowledge of at least my favorites and happily share them. Even if I think I know a fair amount about a subject, I enjoy watching people talk about it, because there are often little nuances to the way others explain a topic that click with me. One of the skills I value highly and try to improve in myself at every opportunity is my ability to communicate sometimes complicated content with people, and seeing how others do this is always interesting. I tend to watch videos sped up, which VLC player is great for on both laptop and tablet, typically watching at double speed. I sometimes make notes as I go, especially so that I can find relevant content again later. I also like to watch Pluralsight courses, but that normally needs a more stable internet connection.
I find that I like to know at least a little about a lot of things; this helps me because when I see an unfamiliar problem, I normally have seen something similar before. It also gives me different ways to solve a problem, which in turn helps me be able to see yet more different ways, sometimes by combining elements of different things. I also find that this helps me to build mental models, and give me metaphors and comparisons which can help me explain concepts to others.
The other main thing I do is reading, both of blog posts and online content, and of books. At the moment I’m reading Rob Conery’s “Imposter’s handbook“, which I’m near the end of now but very much enjoying, and Josh Kaufman’s “Personal MBA“. My first port of call for blog posts is Alvin Ashcraft’s Morning Dew, which is a regularly updated list of posts. With intermittent internet access on the train, I often fire up a browser before setting off, and open a load of tabs to read as I go.
If I relied on “free time” for this stuff, it probably wouldn’t happen – there’s always plenty of other things to do. With a bit of thinking about it though, I’m able to make much better use of time that could otherwise be wasted, and learn about cool things while I’m at it – and all this gives me more tools in my utility belt for solving my clients’ problems.