Whether you're a developer, designer or any type of professional in the tech industry, there's one disease we all fear: change. Technologies, tools, languages, techniques ... all of them change literally overnight, sometimes leaving behind disappointed, frustrated people. In this article I plan on describing the actions I take when dealing with the ever changing tech world.
What?! It's already outdated?
Technology changes, you can't keep up, deal with it! The end?!
As a software developer, one of my main goals, is to keep myself current with the newest technologies used in the field and as you can probably tell from your own experience it is hard as hell. All those Twitter feeds, following all those people, filtering information from them, reading articles, reading books, watching tutorials... well... that's a mouthful, and the list doesn't stop here. Keeping myself current wouldn't be such a big problem if I would just rely on my job for income, as I'd only have to be prepared for the challenges I'm facing in the office, but doing freelance work, well, that's a totally different story. Unlike the regular 9 to 5 job, where you have a pretty well defined set of technologies, freelancing is like going in the forrest at night, blindfolded and barefoot. You will have clients who know exactly what they want, and you should be prepared with a minimum set of knowledge in that direction. There will also be people who know nothing about the programming part, but they have a pretty good vision of the outcome, and then you'll need to come up with technical solutions. For the second category, you choose the wrong solution, you're screwed; you don't know at least 2 or 3 technologies to compare and come up with an answer, you're screwed... and again, the list goes on.
"— But Adrian, you don't understand, it's really hard for me to keep current and know all those technologies by heart. I'd really love to know them all, but how can I do this when I don't know what to look for?"
Dealing with change
My answer to the question above would be to first of all admit that things are changing really fast and it is impossible for you to know absolutely everything.
So, stuff is changing, we know this, but what can we do to mitigate this? I have a short checklist that I will expand upon in this article:
- Be selective
- Find appropriate tools
- Shoulder-surf if you're in an office
- Set aside some time
That's right, be selective! Don't just grab everything on the Internet, and read until 3:00 AM and expect to remember something. All you're going to get is a bad day, a headache and your brain as empty as you had it before you started reading in the first place. Oh, and I forgot to mention frustration, as you realise that you invested a lot of time and you barely remember a small fraction of what you read.
What I do is I search for influential people in the areas I'm interested, look up their social media profiles, and branch out from there, building a list of people along with their blogs, twitter handles and when I have the time, I'll subscribe to their RSS feeds, twitter feeds etc.
Tools of the trade
Plain old pen and paper
I simply love this combo. Whenever I'm too lazy to pop open Evernote and write down something, I always default to a piece of paper and a pen and quickly jot down whatever goes through my mind, be it a reminder, some ideas, you name it.
Bookmarks! Yes, bookmarks! Pocket is this smart little application that I have installed on my iPhone, and I use it whenever I find an interesting URL about something I'd like to look into. It integrates really well with most of the IOS applications out there, but I mainly use it to grab links from my Twitter timeline. They also have a Google Chrome extension that you can install, and you get a "Save To Pocket" button that sends any link to your Pocket account.
You can create an account at: http://getpocket.com
Actually, this should have been "(*)note" as I've also used OneNote to store my stuff in the past, but given my current workflow, I use Evernote for managing a lot of my activity and not just for storing reference material. In terms of study material, I keep the things that I consider to be very important, in my "Reference" notebook. That way, whenever I need to come back to a critical piece of information, I know exactly where to look for it, and with the help of tags, searching for stuff is a breeze.
Evernote is also really useful through the fact that everything is visible to you at a glance, not to mention being able to set reminders on notes, work chat, presentation mode and a lot of other features that make it so awesome. On the other hand, even though it's a great tool, OneNote lacks the same level of customisation and features on OS X, but if you're a windows user I highly recommend it.
This is a great web application, that allows you to write Markdown and preview the results. It has great integrations with GitHub, GoogleDrive, Dropbox and also CouchDB. I usually use this to write my articles but I also write answers for various forums and preview them before actually posting, and when I don't feel like using Evernote or Pocket, I have a document where I just paste links that I find on the web.
Stackedit is available on https://stackedit.io.
Feedly is a great for centralising all the stuff you're interested in, from all the sources you can think of. I have every site that I'm interested in added to Feedly, and once a day, usually in the morning, I fire up the application and see what's new. Tow great things about Feedly are that it allows you to properly categorise your work and the "sharing" options, especially the Evernote and Pocket integrations, which I use quite often.
You need to have this, period! Find the people that are important in your field, get their Twitter handles and start stalking them, and the people they follow, and so on (kidding). Of course, you need to allocate some time for all this stalking and tweeting or you'll end up being a highly informed unemployed professional :).
IDEM Twitter. Google Plus is a good source of information, at least in my case as it is not that "Facebook"-y, and if you follow people from your industry, then you only get stuff from them and related recommendations. Same as with Twitter, set some time aside, browse through the posts, see what's interesting to you, and probably send it to Pocket so you can read it later.
A couple of years ago I bought David Allen's "Getting things done", and it totally changed the way I manage my time. I'm not a great practitioner, I sometimes suck at managing my system, but when I do manage it well, I'm the most productive version of myself. I think it's very important to go by at least a small set of rules, and have a schedule for important activities, and always write stuff down as what is important now, and you think you will remember 2 weeks from now, will be "overwritten" in your brain by the next most important thing that will pop up in your mind, 10 minutes later. Don't be that person!
"Shoulder surfing" is one of my favourite activities when I'm in the office with some spare time on my plate. I have a number of colleagues in the office with whom I get along pretty well so when there's nothing left to do, I go and surf over their shoulder looking for new tools, browser extensions, you name it. Note that I'm not looking for personal messages, performance appraisal emails etc. I also think code review is fun, if you "pair" with the person who needs a review, and do this at their computer :).
There are no closing thoughts, and I consider this article as being just my share of the discussion and I'd like to have people share their tools and techniques for staying up to date.