On reading whitepapers

There is an ancient technique that can help you in achieving mastery in computer science. No, I don’t mean a “from zero to hero in 2 hours” kind of online course. Nope, I don’t mean a free ebook that you can get after registering to a mailing list. Oh, some kind of a certification? I don’t mean it either. What I’m thinking about, is some real mental heavy lifting. I’m thinking about reading whitepapers.

It’s funny that wisdom can hit you after some time. I still remember words of one of my lecturers, who said, that it would be more beneficial for us to go home and study on our own, rather than listening to him. The very same can be applied to complex and/or innovative algorithms, processes, approaches described in whitepapers. Consider the new and shiny CosmosDB from Microsoft Azure. It promises indexing data in any schema (using JSON as a payload format). How can you achieve it, considering a multi-tenant environment (no, you’re not alone in the cloud) and all the funky objects stored in the database? Here’s the whitepaper describing it. Is it dense? Yes. Is it not-so-easy-to-read? Yes. Is it worth it? In my opinion, yes.

We live in times, when you can often face an assumption, that we need to ship things ASAP and understand them in a fast and easy way. Whitepapers are probably the exact opposite. It takes time to learn how to read them. It takes time to read every of them. It takes time to verify and apply findings in them.

I wish you more time, more focus, more presence and strength for spending it properly.

Your local user groups

Recently I’ve been deeply involved in Warsaw .NET User Group. What makes you a deeply involved you ask? I’d say that resolving current problems would be the answer that fits the most. We covered a few important points like getting some sponsorship, being given a few tickets for Build Stuff conference (thanks!) and running snacks sessions (short presentations, for those who want to start with their presentations). It looks like people are a bit more energized and active. That’s for sure the right direction for any user group.
I want to encourage all of you, just make a small move, do sth for the community you’re chosen “to be involved with”, for instance ask for a problem to be resolved. It’s a win-win “by people, for people”, nothing more, nothing less.

Learning

How do you learn? How much time do spend on learning new things? What tools do you use? Below you can find a few my opinions, a few tools that I use.

The tools I use to learn are, in the order from the most used:

  1. An interesting projects
  2. A smartphone
  3. An e-book reader
  4. Books (yes, good, old-fashioned printed books)
  5. A computer or a laptop

The first and foremost is an interesting project. By a project I mean my day-to-day job (choose it wisely, it’s a lot of your time) as well as some minor things done as OSS. Under this category go also all the spikes which haven’t been finished and all the fun projects I do at home.
A smartphone with a good RSS reader allows me to deal with an enormous number of blog entries published by brothers in code. The phone enables me to drag down a Twitter bar in the Android app a few times a day when I have a few spare minutes(waiting for a coffee, etc.). I’m not an addict though. I do prefer to have internet access switched off most of the time. I use it offline with no notifications etc. distracting me all the time.
An e-book reader (I like to use a bigger format of one) is perfect for longer periods of time (from 20 minutes and longer). Just have a few Google whitepapers unread and stored there.
I read non-technical books as well. I do like the paper versions, but sometimes they’re even harder to read than e-books (a crowded bus for instance). The time limit is also important. I tend to take one with me if I know that I’ll be able to read for more than 15, 20 minutes.
A computer for watching all the Infoq & Skillsmatter presentations. When I have one hour, I take one from my list of ‘to watch’ and watch it.

As you can see I have one rule: I’ve got to have sth on my to do list all the time, with different time requirements. I use it every time I have a few spare minutes. Things which may take longer (a good post on Twitter) are pushed to a to do list. The future version of me will handle it. Having a smartphone and a reader is more than enough for a standard day. Presentations watched on a computer are good for weekends or an evening spare time. I do encourage you. Make your list, assign time frames preferred by you and take a few of your knowledge sources with you. It’s worth it!