Geeks With Blogs
// ThomasWeller C#/.NET software development, software integrity, life as a freelancer, and all the rest

As a freelancer who is constantly selling his skills on the free market, I always have to be up to date and keep myself informed about the latest technologies - in a more cursory way to know what options are available in a certain situation, or more in-depth if I am actually working with a specific technology.

Although you can go overboard with trying to stay on top of the IT industries' evolution (I talked about that in a previous post), I simply consider continuous learning to be a natural part of the job. There may be people who come from school, learn something and then do that for the next 40 years or so - I'm not one of them. (Sadly this still is the way most people assume a (professional) life to be: You go to school, make some years of training, afterwards you do what you have learned, leaving the house in the morning to go to your workplace, coming back in the evening, and getting pension after you have done that for 30-40 years. That's not too big a deal in everyday life, but it can have quite annoying consequences when it comes to legal and tax payment issues...). Contrary to this, when I make plans for the year to come, I always reserve about two months for non-contracted, but job-related activities like learning and training - this even reflects in the rates that I negotiate with my customers. It's my competence they pay for, not the speed of my typing (which btw. is VERY poor...) or whatever.

The software freelancer's core competency: meta-knowledge

Sure, nobody can know everything, even when it comes to such a small corner of the world like "C# programming" - and a person who cares about his mental health will not even try to. Instead, it is important to know how you can quickly find a specific bit of information when it's needed, you must be able to assess the quality and reliability of that information, and you have to quickly understand it and derive a useful solution from it, since that is what the customer ultimately pays you for: solutions for his problems.

I wouldn't even describe myself as someone who knows all that much, and, as I said, I don't think that's necessary. You have to know the right things. This is what I do to stay informed:

  • I keep reading some blogs from the smarter  people of our industry, the ones who gained a good reputation over the years. It's not always necessary to read everything in-depth, it's sufficient to keep an eye on it and pick the interesting parts as needed. Currently, I have subscribed to about a dozen blogs.
  • Similarly, I keep an eye on some interesting user groups and open source projects (roughly the ones that are listed in the various Toolbox sections to the right).
  • There are some news sites/feeds that I watch to stay informed about what's hot and/or new in the .NET world. The most important ones among them are DotNetKicks and DotNetShoutOut.
  • I have an extensive and well-organized compilation of bookmarks which grows over time. Because this is an important part of what one might call my working capital, I regularly spend some time keeping the collection clean and up to date, and I also maintain a remote backup of it.
  • I actively participate in question-and-answer sites like e.g. stackoverflow.com. It's not only that this is another valuable source of knowledge (the questions asked there are coming directly from real life...), but the even more important part for me is that you train your ability to communicate with other developers about highly specialized technical questions. Other than that, there are not so much opportunities to do so in my part of the world...
  • I constantly keep my programming fingers flexible with so-called Code Katas, small to mid-size programming exercises that usually originate from some seminar or meeting - you can find collections of them e.g. here or here. What I especially like about them is the level of professional self-knowledge that they provide: When working on a Kata, you can experience how you deal with things when there's not the usual business pressure, and you get a good feeling for the know-how that you actually have.
  • And last, but most important: I have a subscription for the Safari Books Online library. (In case you don't know: Safari is an online library from O'Reilly which "includes exclusive access to the digital collections of O’Reilly Media, Prentice Hall, Addison-Wesley, Peachpit Press, New Riders, Cisco Press, Sams, Que, Adobe Press, Adobe Developer Library, as well as hundreds of additional titles from publishers like John Wiley & Sons, Microsoft Press, Apress, Manning, McGraw-Hill, IBM, Oracle Press, Course Technology Charles River Media, Syngress and Talented Pixie." Apart from the thousands of books there are also videos, articles and early, not yet officially published book versions - so-called rough cuts, similar to Manning's MEAP.) It gives me instant on-demand access to a wealth of first-class, always up-to-date expert knowledge, wherever and whenever I need it. Compared to what it provides, the subscription fee (40$/month) is not very high.

Some Books Are Bigger Than Others

It's Amazon, that clearly had to suffer from my usage of Safari: Since I started to use it (about two years ago), I am buying significantly fewer programming books - and hey, a single programming book usually costs around 50-80€ (or roughly 70-120$). On the other hand, many of these books will be outdated within a few years, so keeping them physically around does not make any sense at all, they are nothing but a waste of resources. Nowadays, I can restrict my programming bookshelf to such all-time classics like e.g. Domain Driven Design or Code Complete - stuff that I may occasionally read in bed, read parts of it more than once, or I may lend it to a fellow developer. - In short: There are some few books that you live with, and there are many that you use in everyday work.

Many say, that they are feeling much more comfortable with something physical like a book lying next to their keyboard. I also had this emotion in the beginning, which has lead to tons of printed paper and a considerable mess on my desk. But now that I'm used to it, I'm much better off with an additional display or an old laptop (I even feel slightly disturbed if there are too much things around me). Once your used to that way of working, it's much faster and more flexible - and it's also much cheaper and cleaner in the long run.

I'm not willing to miss that only one more day in my professional life. That's why I usually have an additional display (19'') with me, when I go to a customer...

Posted on Wednesday, October 7, 2009 5:14 AM Business , Freelancing | Back to top


Comments on this post: My technical library is always with me

# re: My technical library is always with me
Requesting Gravatar...
Very interesting post. I am also trying to limit myself on buying "classic" books versus technology oriented books that, as you mentioned, quickly become obsolete.

I am also trying to keep up to date by reading blogs on the subject. You mentioned about a dozen: care to share them?
Left by Stefano Ricciardi on Nov 04, 2009 12:50 PM

# re: My technical library is always with me
Requesting Gravatar...
Stefano,

not at all, here they are - at least the ones I quickly can remember from the top of my head. It's basically the usual suspects, I think:

- Oren Eini (Ayende@Rahien)
- Jeffrey Palermo
- Phil Haack
- Davy Brion
- Jeff Atwood (Coding Horror)
- Fabio Maulo (HunabKu)
- Steve McConnell (Construx)
- (Uncle) Bob Martin/ObjectMentor/
- Los Techies
- ElegantCode
- CodeBetter
- InfoQ

Equally important/informative are the sites where interesting stuff from all over the web is collected:

- DotNetKicks
- DotNetShoutOut
- Chris Alcock's 'Morning brew'
- CodeProject

As I said, I don't _read_ all this blogs regularly, you would get crazy when trying... But I keep an eye on these blogs, and quickly go over the post titles from time to time. This way I can pick the posts that I find particularly interesting, and I can be sure that I always stay informed (at least cursory) about the latest developments.
Left by Thomas Weller on Nov 04, 2009 2:00 PM

# re: My technical library is always with me
Requesting Gravatar...
Oh, I forgot Martin Fowler, of course...
Left by Thomas Weller on Nov 04, 2009 4:13 PM

Your comment:
 (will show your gravatar)


Copyright © Thomas Weller | Powered by: GeeksWithBlogs.net