You know how every once in awhile you’ll get asked a question that catches you completely off-guard because its simplicity demands a straightforward answer and yet none exists? I was meeting with the partners of a small company for a web project I’m doing the other day and one of the partners (who’s quite a bit older) asked me point-blank, “Sean- how do you know how to do all this stuff?” I considered for a moment launching into an explanation of RSS feeds and blogs, webinars, listservs, etc and then realized this is someone who doesn’t even use email, much less the more advanced communication channels of the internet. In the interest of not filling this guy’s head with a bunch of foreign technical jargon, I opted for the abridged explanation of “I’m self-taught.” But then I got to thinking that I have been asked the same question before by younger comp-sci majors who are moving into the field and I figured it warranted an attempt to break it all down and explain the guts of how we in the software industry learn what we know. This will be beneath other developers that happen to be reading this but here goes:
There’s a ton of ways to come at this explanation but I thought a useful perspective would be to break it down by communications channel (Of course there is no substitute for getting your hands dirty and actually playing with a technology yourself). Our attention is a limited resource that can only be divided amongst so many sources in a day. Given this limitation, how then is the best way to allocate our brain cycles in order to solve our complex problems, keep up with the latest technologies and methodologies and at the same time remain sane, human and happy? Having spent over seven years in the web app development industry I’ve knitted together a system which works well for me and incorporates about eight different mediums. Broken down by order of time allotment they are:
- Email – Undoubtedly the majority of my time is spent reading and writing emails. It may be unthinkable to some but I conduct all my email through a web interface using Gmail for work and Yahoo for personal email. Gmail is great for listservs and newsletters because of Google’s options for applying labels, filtering messages and threading conversations. Email encompases all list exchanges, newsletters and one-to-one personal communications with other developers.
- Web – Web browsing accounts for the next chunk of knowledge input and consists generally of highly-specific google searches for various error codes and phrases that usually lead to someone’s forum post on how they dealt with the exact same problem. I also use web to browse vendor’s sites and read developer zone tutorials and announcements they publish on their products. When I come across a helpful tutorial or refernce page I’ll bookmark it and come back to it later. There are a couple news sites I read regularly including Google News, Wired, Slasdot and Boing Boing. Del.icio.us is a recent gem I’ve found that uses social bookmarking to show what other people find useful. Technorati is supposedly the next greatest thing for unearthing information found in blogs but I haven’t caught that bug yet.
- RSS – “Really Simple Syndication” or what Firefox calls “Live Bookmarks” is huge part of my daily reading and allows me to monitor the ramblings of people I feel are wise and worth listening to. Rather than checking a bunch of sites regularly, I can subscribe to certain authors and the new content comes to me. I have a two-tier system to “triage” the various blog postings that I follow. I use Bloglines to aggregate a bunch of feeds and skim through the material for key stories of relevance. If a particular feed on bloglines has consistently high-quality information and the user comments are insightful and complement the authors post, I promote the feed to my Thunderbird RSS reader. Unlike Bloglines, Thunderbird doesn’t strip the formatting and it leaves the user comments inline with the post.
- Print – As high-tech as this world gets there will always be a place for paper and ink publications. Even in the face of downloadable ebooks and the promise of high-res ePaper, there is simply no substitute for having a reference book or a glossy magazine which you can leaf through, dog ear and pass along to friends. Finding the best books on a subject is usually a matter of asking around on a discussion list or reading Amazon reviews. I only subscribe to one magazine personally, though I read a couple others at my office like Law Office Computing and Law Technology News. Amazon recently added a concordance feature to their book reviews which could make an interesting way to thin-slice a book for its contents.
- Podcasts – I was a skeptic of the podcasts at first thinking “I can read this faster than I can listen to someone else talk about it,” but things like tone of voice, personality and emphasis just do not come through in an article. Think of podcasts like syndicated talk radio that you can subscribe to. I’m a big believer in cross-training and variety and I have found that listening to a few podcasts from ITConversations is a great way to stay ontop of new trends, get to know the voices in the industry and hear the authors that I read actually talking about their own books. This is the relative newborn for me having only discovered podcasts in the last couple months but I am appreciative of this channel because it lets me attend virtually the conferences that I couldn’t otherwise.
- Webinars – These are generally live product demos you get delivered via WebEx or Breeze. Think of it like someone giving you a presentation on a projector only it’s projected over the web to your computer and can incorporate interactivity like chat and desktop sharing. Comparitively I spend only a sliver of my total time in webinars (maybe one or two a month) but I have gained massive insight from a few webinars so I wanted to make sure they were included in this list.
- Conferences, Usergroups and Instructor-led Training – Much like paper publications, face-to-face interaction will always have its place in learning in the IT industry. Anyone who neglects the value of a dialogue with a teacher in person or shooting the shit with other developers over a beer is sadly deficient in an important element of this field. Conferences and Training can be expensive investments but usually have unforseen dividends that come in the form of personal connections that are established and continue well after the event. Usergroups are free and a great place to get a monthly barometer of what other fellow developers are doing and to launch into peripheral discussions about xboxes and other topics that are important to developers.
So that’s the “quilt of info channels” that keeps me warm in this industry. Ultimately, it’s playing with blocks first-hand and discovering through trial and error how things work that matters most. Jean Piaget’s model of assimilation and accomodation resonates for me as being a very simple yet helpful way to understand the way we understand. What did I forget? How do you learn what you know how to do?