views:

207

answers:

6

I am primarily a .NET developer, and in that sphere alone there are at any given time probably close to a dozen fascinating emerging technologies, some of them real game-changers, that I would love to delve into.

Sadly, this appears to be beyond the limits of human capacity.

I read an article by Rocky Lhotka (.NET legend, inventor of CSLA, etc) where he mentioned, almost in passing, that last year he felt very terribly overwheled by the rate of change. He made it sound like maybe it wasn't possible to stay on the bleeding edge anymore, that maybe he wasn't going to try so hard because it was futile.

It was a surprise to me that true geniuses like Lhotka (who are probably expected to devote a great deal of their time to playing with the latest technology and should be able to pick things up quickly) also feel the burn!

So, how do you guys deal with this? Do you just chalk it up to the fact that development is vast, and it's more important to be able to find things quickly than to learn it all? Or do you have a continuing education strategy that actually allows you to stay close to the cutting edge?

+1  A: 

I say just pick a facet of the development landscape that fascinates you and delve into that. For example, if you enjoy dealing with distributed systems, start reading up on WCF and becoming an expert on it.

I don't think it's possible to be familiar with everything aside from a casual understanding of the technology. Far better to specialize instead of becoming a jack of all trades, but master of none.

Joel Martinez
+4  A: 

Attend conferences and local user group meetings, get on twitter and start following a bunch of folks. Join or start up a mailing list (google groups is my favorite provider, Yahoo groups aren't half bad either) in your area to discuss issues.

Propose a talk at your local DNUG to have someone do a quick overview of all these new technologies or maybe have an open discussion/lightning talk where people stand up and give 5-10 minutes on their favorite new technology.

In short: Get out there and talk and share with people. It's the only way you'll stay on top of everything. You can't do it by yourself unless you don't sleep and don't work.

chadmyers
+1  A: 

Since I can never find time to go and dabble or play with new technologies, typically I choose one based on some small amount of information - maybe an article, maybe a recommendation of a friend - and then I force myself to use the new technology in a project that I'm working on. That how got into the current process I'm in of learning SCSF and CAB. It can be painful, and even slow at the start since you have to run up the curve, in the end it typically works in your favor (provided the technology you chose gives benefits). That's how I learned LINQ, Generics and just about everything else. Choose a technology that purports to solve the problem you have better than the way you know and then force yourself to implement it that way.

ctacke
+2  A: 

It is tough not to be tempted to want to learn it all, but I try not to jump into anything that is 'too new' I seem to end up with a lot of frustration with not a lot of sources out there to help. While someone does have to take the dive head first and I respect those people (I guess that's the life of a beta tester) I just do not think that responsibility falls on everyone. But if you have the time, and patience then diving into something new can be a lot of fun. I guess its not a direct answer to your question but I hope it gives you something to think about.

Patcouch22
+2  A: 

I find myself worrying about missing the boat on something from time to time but when I actually sit down and learn some hot new technology I find that it's primarily a new combination of fundamental technologies I've already seen.

My appoach is to make sure I have a good grasp of algorithms, data structures, communication protocols, some hardware knowledge and general engineering skills.

Andrew Queisser
+7  A: 

I have been in IT for 30 years now, so perhaps I can offer some perspective. Yes, there is an increasing amount of material to keep abreast of. But the rate of change (as in "progress") is not increasing - if anything, it is decreasing. What we are seeing is a widening of the field.

Take a simple example: Once upon a time there was HTML/1. Then came HTML/2 and that was progress. Now we have HTML/4, HTML/5, XHTML/1, Flash, Silverlight, and on and on. Any one of these is progress, but each is progress in a different direction and all are in active use.

Stay on top of this? Forget it - it's not possible. On the other hand, good IT folks can pick up a new language or a new technology in a few weeks at most - no big deal. Try to pick out the genuinely new ideas and learn about them. Ignore all the specific technologies (IIS 7, SQL Server 2008, etc.) unless and until you need them.

Continuing the Internet as an example, the last real innovation were the ideas behind Web 2.0. I took the opportunity to learn Ruby at the same time - did a couple of small, throw-away projects in Ruby on Rails. If a project in this area comes along, the ideas will be the same in whatever environment.

One does occasionally get frustrated. It's not always easy to pick out the truly new ideas amidst all the marketing hype.

All the best...

Brad

Brad Richards
Outstanding answer.. Thanks.
Brian MacKay