One of the biggest challenges for software developers is keeping up with all the new technologies, techniques and trends. Its not just the speed of change, but also the shear volume of subjects.
In the past my approach to keeping on top of stuff has been pretty much focussed on learning through books, reading blogs and internet walkthroughs. Its served me pretty well over the years, but if I’m honest I’ve always struggled with a few things:
- Wasted Time: I feel I have a lot of periods of time which are wasted – like driving to work, between getting home from work and going to the gym, before sleeping etc. Sometimes these are wasted because I have to focus on something else (like driving!) and sometimes I don’t have enough time to really get into something. Sometimes I just can’t concentrate on reading – I don’t really know why, but sometimes I’m reading the words, but not absorbing the information.
- Reading is Slow: Before I start this I have to say I can read at a good speed – but often when reading technical books / articles I need to stop and think about something. Occasionally I need to go off and research something – and quite often I need to actually put something into practice.
- Reading is Not Always the Best Tool for the Job: For some things reading is perfect for the job – when you have time to immerse yourself, when the subject is more theory than hands-on, when you’re tying up loose ends in your knowledge etc. Other times it is definitely not the best tool – when the subject is very hands-on, when the subject is unfamiliar and needs introducing etc.
- Guilt: I like to read books other than the technical variety! Often they’ll be related (like a biography of a technology business leader) – but however you look at it, they aren’t directly adding to my skill set. My problem is that I find myself avoiding reading these books as a result of feeling guilty that I should be focussing my energy on technical reading – maybe I’m crazy!!
- Creativity: I feel like very little of the reading, research and work I do help me develop the creative side of my skill-set. I value creativity hugely, but I’ve always struggled to find consistent ways to develop this, and feel happy with myself regarding it.
So recently I’ve discovered a few things, and organised a few things which have really helped me get so much more out of my time, in terms of keeping on top of stuff, namely audible.co.uk for audio books and pluralsight for tutorial videos. Slotting these 2 things into my routine has helped me learn so much more on a daily basis, opened up more time and in general made me feel a whole lot better about how I’m spending my time. These days, my general routine goes something like this:
- Get up, get ready for work and jump in the car for the drive to my client. Listening to an audio book on the car stereos – at the minute I’m listening to In the Plex – very interesting!!
- Work through the morning on my current project / clients project.
- At lunch I’ll catch-up on my favourites bloggers, like Scott Hanselmann and Jeff Atwood. At the moment I’m also reading one chapter a day of Effective Programming. Its at these times I try to kick off a blog article(although I’ve still not completely bedded that into my routine).
- Work through the afternoon on my current project / clients project.
- Again listening to my current audio book on the drive home.
- Get home and spend an hour or so doing some reading – I’m currently reading NoSql Distilled by Martin Fowler and Pramod J. Sadalage. I’ve also started reading Learning Curves – I’ve always wanted to be better at sketching, and feel that it can only help with my design skills!
- After this I head to the gym for a training session. If I’m doing a training session in my home gym I’ll put on a podcast like Dot Net Rocks.
- Back home for my evening meal, and to watch some TV or play some games – I have to spend some time relaxing and zoning out.
- Finally I’ll head to bed and site and watch a couple of Pluralsight videos – at any one time I’ll have a couple of courses I’m watching, so I’ll watch 1 or 2 sections of each. I’ll watch these videos to get my head into something new, to cover something I’ve missed or just as a peripheral interest. Right now I’m watching courses about UX Design and Google Analytics.
In addition to this, at weekends I’ll maybe spend a bit more time reading (books or white papers), catching up on videos / general software development news and working on personal projects.
All in all I’m much happier with my routine for keeping on top of stuff – at least for the time being!