As a technology consultant, each project brings new challenges; this is what makes our job so appealing to those of us that love it! However, one of the hardest things I believe is keeping up to date on the latest happenings with the many technologies we are asked to implement on a moment's notice. It’s pretty common at Summa that we might be working on a Java project for months or years, and then be asked to jump onto a .NET or IBM project with little to no downtime in between. Now most of us have perfected the art of “ramping up” and I do not intend to discuss that in this post (that might be a good future topic), however, I believe our ability to get up to speed quickly on a technology is directly related to how well we know the state of the market. This is what I will try to discuss and I will offer what I believe are the best ways to stay “up to date” in whatever areas you choose.
Before I dive into the techniques for keeping up to date it’s necessary to understand how it can help us be better consultants and why we should spend our precious spare time keeping up on trends. I have recently been assigned to a project that is trending towards an ASP.net solution and I have not worked with .NET much for a good 3 or 4 years as I have been focusing mostly on Java. What I found was that even though there have not been that many releases of Visual Studio or the .NET framework in this time period, things have changed pretty drastically! For instance, there is now an MVC engine, LINQ has come and is fading away, there is this thing called Silverlight and a bunch of new acronyms (WCF, WPF, WF, SRSS, EF, etc.), and Microsoft appears to be embracing external, open source libraries like JQuery and actually has a way to easily add external resources to projects (NuGet). Of course there is more than this, but the moral of the story is that I found myself severely out of date and I didn’t like it. So in my quest to get back up to date, I have decided to share my efforts with you so that you don’t have to go through a similar experience. Here are some of the techniques I used (in no particular order).
Web Media (Blogs, Podcasts, Forums)
The first place I turned in my quest to get up to date was, of course, Google. Searching is an excellent resource, but it doesn’t always return the newest results. A great new feature Google added recently was its sidebar where you can click “More Search Tools” and limit your results to a time period. This can help to make sure you aren’t reading an article that is 3 years old (and at this point, likely useless). This of course leads to forums and blogs about the topics you searched on.
In doing this, you start to see who the experts are because they are usually the ones designing the new stuff and writing about it whenever they can (who wouldn’t want to publicize their work). Once you find some interesting authors and/or sites, you can add them to your favorite feed readers (mine is Google Reader) so that you can keep up with their latest posts (and see a history of works). One feature that I like in Google Reader (others may also have this) is the ability to add bundles which are predefined groups of popular blogs that relate to a category. So you can find "ASP.NET" and with one click it will automatically subscribe you to the best of the best ASP.NET blogs (at least according to Google). This is a great way to quickly learn about new authors. Also remember to read the whole page not just the article. Most blogs have great comments and links to their favorite blogs so you can add to you blog-folio quickly and efficiently.
Other great web media are Podcasts and Forums. Many of the bloggers you have come to know and love either Podcast individually or with other bloggers on specific topics or on a variety of latest trends. It might take some time to find a Podcast that updates regularly and addresses your needs, but they are out there. And then when you have a specific question or need to get an experts opinion, turn to a Forum site like Stack Overflow where someone has either already asked your question, or will benefit from you asking it.
Print Media (Books and Magazines)
Another source that people often turn to is books or magazines. While this can be a great resource, I offer a word of caution on this topic. Make sure the book is based on the correct version of the technology you are researching. Often times the book is 3 months or so behind the release cycle and therefore they get outdated fairly quickly. If you are looking to keep up to date, this might not be your best option since you probably want to learn about it when it first comes out not months down the road. Now if you need to learn a new language or concept for the long-haul, then this is a great place to start. Oh, and one other thing on books, don’t go to Borders or Barnes and Noble and just pick something up without researching online for better prices (and reviews for that matter)…trust me, you (or your company) will save time and money!
Social Media (Twitter, Facebook, social-network-of-the-month)
This may seem kind of odd that I have a separate category for social networking, but to me, this is one of the best ways to stay on top of trends. At first glance, Twitter might seem useless because who cares what you are doing and why should you care what others are doing, but it’s a rare known fact that you don’t have to use Twitter in the traditional sense (actually I think it is rarely used for this purpose). Anyone can sign up for Twitter and follow whoever they like without sending out one single Tweet. The beauty of this is that all of the gurus and companies are Tweeting, and what they Tweet is usually links to their blog posts (before they hit the feed readers) and links to other peoples blog posts that they have found interesting. Also everyone broadcasts their Twitter handle to the nth degree, so it’s easy to find interesting people on Twitter and they will be happy to have you follow them. Here are a few to get you started:
- Scott Guthrie (@ScottGu), Scott Allen (@OdeToCode) –.NET Gurus
- Josh Bloch (@JoshBloch) – Java Collections Framework
- Kent Beck (@KentBeck) – Creator of TDD, XP, and founder of JUnit
- James Duncan Davidson (@duncan) – Founder of Tomcat & Ant
- Martin Fowler (@martinfowler) - Software Development Methodologies
- @BillGates - Can you guess this one?
If you think about it, this is like tapping into the mind of a great programmer or being a fly on the wall of a big corporation preparing their latest release and accompanying press documents because you get the latest information first. To make this even more powerful, you can download an aggregator like TweetDeck and organize those that you follow into their respective categories so you can pick and choose what to read and when. The power of this is incredible and if you haven’t at least explored this for a week or so, I urge you to do it…now! Of course Twitter is not the only one, so try out several and find out which one works best for you.
Training (On-site, Web-based, Online Tutorials, Web Casts)
Another great resource is the various forms of training and web based tutorials. If you can afford to get professional training (either online or in-house), this is probably the best approach, however this can be costly. Nowadays many sites offer great tutorials that get you knee-deep in the latest technologies for free. There are also many web casts available from various conferences or events where the presenter is demoing a new technology. I would say you’re best friend for locating these resources are Google searches and through your blogs and podcasts.
Face-to-Face (user group meetings and technical conferences)
You do know that social networking in the good old days before computers meant meeting people face-to-face and discussing topics of interest. This might be far-fetched for our society these days where everything can be done from your laptop or smart phone; however, this is still a very viable option. User group meetings are usually technology specific and give you a chance to meet people locally that are doing what you are doing, learn about what they are doing, and get great presentations on the latest and greatest happenings in your technology. This is also a great way to learn about conferences you can attend or hear about from those that did attend. These conferences are showcases for the “new stuff” and are certainly worth their price tag. It is not always possible to attend a conference in person, but I have seen trends towards web-based conferences and I think we will see more of this in the near future.
So I have outlined 5 ways you can keep up with technology, but I will say that the hardest part is getting started and staying the course. While working full time hours (or more) and trying to keep a work-life balance, it can be tough to find time to fit this into your schedule, so you may have to get a little creative. Why not browse your blog reader on your lunch break and mark interesting posts that you can read later while “weeding out” those that you aren’t so enthused about. You could read a post or two on the bus or train during your commute or if you drive, why not listen to a podcast instead of the radio. Signup for Twitter and start following a guru (this would be a great place for a plug of my Twitter handle, but I don’t Tweet…I just follow). Find a local user group or attend a conference; the people you meet will be well worth the time spent. If all else fails, take a half an hour a couple nights a week to “catch up” on what you have missed. Just remember, the more you know, the farther you will go.