I'm catching up on Entity Framework so I'm reading Julie Lerman's excellent books: "Programming Entity Framework," "DbContext," and "Programming Entity Framework: Code First." For grins, I Googled her using Bing and found this gem on her blog.
It's also interested me to consider how this process, repeated over the years, has resulted in my having a quiver filled with a slew of little bits of very useful, somewhat scattered, information. This is very different than learning a big topic, like testing or Entity Framework. However they are a starting point at which I can leverage the tool and make it work for me.
I mentioned in my last post that our brains are great for long-term storage for things we do frequently but no-so-great for things we've only done once or twice. Like Julie, I have tons of scattered information about a wide variety of topics - just enough to make me dangerous - and thousands of lines of code I've written over the years that serve as an excellent resource when I come across a new problem that's similar to one I've already solved. I completely understand what she means by these pieces of information and little snippets of things we've done in the past being leveragable tools for getting things done.
My recent string of interviews has been a really defeating experience. There's nothing quite like sitting in front of someone who seemingly holds my career in their hands as they pound me with questions on the inner workings of SQL Server or ask me to diagram a game of five card draw on a whiteboard using every known design pattern. Index tuning and UML diagramming are things I've done in the past but were done infrequently and sporadically. Recalling them (or, rather, in the interviews I've had recently, not recalling them) has been challenging and has really made me question a 15-year career in programming.
On the other hand, my recent string of interviews has also been a really great learning experience. I've been in somewhat of a vacuum the past 12 years by working in one industry/market and on very small development teams extending a single product. As a result, I've missed out on some of the methodologies and technologies that have gained favor in the past few years - namely Test-Driven Development (TDD) and Entity Framework. Now that I know I have some deficiencies, it's time to get to work and fill those knowledge gaps.
Reading Julie's post made me realize that I'm not the only one that has learned a wide variety of things - if even accidentally - and has become a "jack of all trades, master of none" developer (though she has written three books so I'd consider her a master at Entity Framework). It's nice to know I'm in good company.