views:

373

answers:

5

I was re-reading some of my Steve McConnell books and this quote got me thinking 'scientists build in order to learn, engineers learn in order to build'. On the vein of 'learning in order to build' I was wondering:

How are the software engineers keeping up to date on the latest technologies and research?

It would seem that publications through the ACM or IEEE are the main avenue of publication for researchers, but given the closed nature of this information does anyone actually use it outside of the research community? This form of research is also very new, and very risky, so an additional question is where do you draw the line in risk? Is it worth looking at bleeding edge research or better to wait until it makes it to paperback.

EDIT: I'm not a total noob. I've just noticed that (some) older developers are completely unaware of new technologies and can even be antagonistic to new tech. A healthy bit of skepticism is always useful, but willful ignorance is dangerous. In an effort to prevent this from happening to myself, I'm interested in how developers are staying up to date on new trends.

+1  A: 

Blogs! Check out this older SO post

Kaiser Advisor
+2  A: 

The ACM certainly has more practical/less academic oriented publications. I'd assume IEEE does as well.

I keep up to date by reading Stack Overflow, Slashdot, and a few other gems out there.

Dean J
The ACM, in my experience, tends to be far more academic-oriented than the IEEE. At least in the publications I receive from them.
Thomas Owens
+5  A: 

If you don't have the time to read research papers, I recommend the much more accessible Communications of the ACM. They also publish the much more popularized ACM Queue, and it's free to read online!

You can follow various programming forums, for instance programming at Reddit, blogs, magazines such as Doctor Dobb's Journal or even Slashdot.

Finally, why not order some new books to read? The 3rd edition of the CLRS book was recently published. Order some new books. Try a place for online reading, e.g. Safari books online -- you can read a lot of books there for ten bucks a month.

I also personally read Hacker News (HN), although a lot of posts there are about enterpreneurship and the like.

csl
ACM is really nice, however a little expensive to access the publications. It's nice to see Queue is free though, I always though you had to pay for it.
reccles
+2  A: 

Some great suggestions here, but I'd also suggest the aptly named Hacker News. They've generally got lots of great programming articles.

ReaperUnreal
+1 for suggesting Hacker News. It's my favorite lurking ground and constantly has articles of good quality.
Julson Lim
Ha! +1, nice and sparse.
reccles
Unimpressive for the concerned purpose.
MaD70
Agreed, MaD. I see *maybe* 2-3 articles for the serious software engineer.
Paul Nathan
True, it wasn't as useful as I first hoped.
reccles
It's socially voted, so it won't be every article that's relevant.
ReaperUnreal
+4  A: 

On keeping yourself up-to-date

You can learn something new when you need it, but you need to learn how to search effectively high quality, pertinent knowledge before. It is not always possible to spend much time at the very least moment, so is better investing on your curiosity.

This is how I do it:

  • something new (for me)/unusual/interesting/useful catch my attention, i.e. it passes trough my bullshit/hype filter (developing and improving it is an art in itself);
  • I try to familiarize myself with the vocabulary of the field (Wikipedia is generally useful as a starting point, but never assume correctness and/or completeness);
  • I search for basic material first, to catch early an eventual slip in my filter: introductions, overviews, surveys, comparisons, ...
  • than I search for specific key terms/phrases to retrieve relevant literature - CiteSeer and a generic search engine are usually enough.
  • I read abstracts of found material and select those that seems more interesting.

Last but not least, it is a general good advice to stay away from the last magnificent "technologies" much hyped commercially. In this regard I wholeheartedly recommend reading an article by one of our hosts: Fire and Motion. Here a relevant excerpt:

... When I was an Israeli paratrooper a general stopped by to give us a little speech about strategy. In infantry battles, he told us, there is only one strategy: Fire and Motion. You move towards the enemy while firing your weapon. The firing forces him to keep his head down so he can't fire at you. (That's what the soldiers mean when they shout "cover me." It means, "fire at our enemy so he has to duck and can't fire at me while I run across this street, here." It works.) The motion allows you to conquer territory and get closer to your enemy, where your shots are much more likely to hit their target. If you're not moving, the enemy gets to decide what happens, which is not a good thing. If you're not firing, the enemy will fire at you, pinning you down. ...

Mind you, I'm not a fan-boy of Joel Spolsky, sometimes I violently disagree with his opinions, but this article can be really an eye-opener for much of the "naive" mass of programmers, from someone that worked at Microsoft for years. This is not an anti-Microsoft rant either, this strategy is not unique to Microsoft, it is the most important characterization of how this "industry" functions - most affected targets are you, the poor programmer, small-to-medium ISVs and users (big firms usually have enough resources to fight on the same ground).

Suggestions/tips/tricks on improvements/corrections of this process welcomed.

P.S.: Fravia(RIP)'s web searching lore is an interesting site for learning to search effectively on the web.

On risk management

Well, I'd like to retort: how much great is the risk of finding yourself blown away by a disruptive technology?

MaD70

related questions