I read blogs and listen to podcasts, and I own many of the "classic" programming books. For the money, what kind of printed material would you say is the most valuable to keep current in software engineering -- books, or magazines from professional organizations such as ACM and IEEE? Which organization has the best periodicals?
I belong to both ACM and IEEE. There are some good magazines from both; there are some other magazines (like Byte or Dr Dobb's Journal) that are good too. I tend to think that good quality books are better than the magazines for many purposes, but the two are complementary. You use magazines (and the internet and blogs and ...) for keeping current, and books for detail that is enduring.
When I signed up for ACM and IEEE (nearly two decades ago, now), I was hoping to spot the seminal articles in things like Communications of the ACM (CACM) as they were printed. I've failed signally, and it still disappoints me. I'm not sure whether the seminal articles are no longer produced, or whether I've been sloppy, but I haven't spotted them.
So, I have a large library of books - probably 50+ feet of bookshelving - of varying degrees of usefulness (but mainly valuable; I've moved a couple of times and had to weed out the less valuable ones). I'd be more worried about losing them than the magazines (which I've also had to weed out - but I've still got several boxes full to go).
I belong to both and use their electronic library options to browse / read both the conference and journal articles as well as all of the programming, engineering and management books that I cannot afford to buy in print. In contrast, I don't have the time to read the paper versions of the ACM and IEEE monthlies: there just aren't enough minutes in the day to get through both from cover to cover.
So, my recommendation would be to belong to both and, when you're reading a great blog that recommends a specific reference book, hit the online library and see if they have that book available. If so, not only can you keep up to date / cross-train yourself with a book that you otherwise would have missed, you have a form of the book that doesn't weigh you down when you have to go on travel.
I've been a member of the IEEE for several years, and I'd say that their basic membership is probably not sufficient to keep up-to-date. Spectrum, their general publication, is an interesting magazine, but it's closer to entertainment than science (think of a beefed-up, less trendy Wired). It's still a pleasant read, and a good source of geeky conversation starters, but I don't consider that learning, really.
I've also used the IEEE Member Library for a while, which gives access to all of their publications and conferences, and that can be priceless if you're doing research. But it's also very expensive (~35$/month?), and possibly overly technical for general learning purposes.
I, too, belong to both organizations, but there's a difference between them.
The IEEE publishes a much smaller collection of journals than the ACM. If it is quantity of pages you want, ACM dwarfs IEEE.
The IEEE does, however, provide the only general-interest Software Engineering magazine ("Software"), and the only publication on the History of Computers (Annals...). If your primary interest lies in either of these areas, IEEE might be a better fit.
Personally, if I had to keep only one, I'd definitely stick with the ACM. In terms of pure CS, the volume of ACM journals is staggering, and the Transactions of the ACM is my favorite general-interest magazine these days.
If you don't want to pay for them, the local library might have a subscription you can use, and the university library definitely does.
As someone who recently moved to a research focussed environment I have found blogs and books to be pretty pointless. Therefore I am using IEEE + ACM quite often.
The benefit I get from research journals is an understanding or view point into how certain concepts are implemented, bench marked against other approaches or historical concepts.
The right option for you really depends on what you look to gain from knowledge sources. Are you looking for up to date cutting edge commentary on new frameworks and products (Such as a look into C# 4.0, Java 1.7 etc.)
Or are you looking for ways in which you can challenge technical problems with sound theory approach. Such as fault tolerance in a distributed environment.
The former is easily solved with a subscription to safari online. The latter is a more research journal approach.
Also by using research journals you also need to develop the ability to sort the creme of the crop (Not all publications are correct or useful).
I think the best value/dollar ratio is in the use of services like O'Reilly's Safari Online Library. For a monthly fee, you can access an extensive library of "printed" material. -- I use it as a secret weapon in performing my job. It can be satisfying when you're able to solve coworkers' problems after researching a given topic.
As with others, I am a member of the ACM (life membership) and the IEEE Computer Society and subscribe to both their digital libraries. I also subscribe to O'Reilly's Safari and make use of books24x7e via ACM membership. But, other than Communications of the ACM these are all electronic resources, not printed materials. Leaving aside the possibililty of printing articles locally, where the print quality is necessarily limited, the question could be rephrased to "to keep current in software engineering which resources should I obtain in printed form?". My answer would, from experience, exclude most magazines: electronic access is just too useful for reference and searching and the additional cost of print is, for me, not worthwhile. That leaves books, but which books? I follow three routes for getting recommendations in topic areas of interest:
1) Discussion fora, e.g. SO and perhaps also reviews on Amazon.com (though one knows less about the reviewers there)
2) References, bibliographies and recommendations in (preferably peer-reviewed) magazine articles and books: especially ones I find helpful or whose authors I respect and have come to trust. This would include detailed published reviews (e.g. personally I give a lot of weight to reviews in ACM SIGACT)
3) Course text and reading lists of relevant University courses
Some choices will be on Safari or Books24x7 (or even ACM classic book downloads :-), when there is an electronic version the cost-benefit of buying a paper edition is harder to justify, but not impossible.
I'm having some issues with the words Up-to-date and print being in the same sentence! =O
Kidding aside, it's an interesting question because the print industry is hurting with most media going online.
SO questions
- What are your favorite programming magazines?
- Coding Magazines
- What is the single most influential book every programmer should read?
You could check your industry specific magazines/journals (examples below):
Google turned up this list of magazines, Top 100 Computer & Software Magazines. Perhaps not the best example but you get the idea.
Network - what are your friends/coworkers reading? Ask via Facebook or LinkedIn as well.
I would say that you have to ask yourself, how up-to-date do you want to be? See Technology Adoption Curve. Bleeding-edge/hot tech? or 'play safe' with a more stable technology, i.e. more books, thriving community, etc?
If you want bleeding edge, I'm going to suggest moving away from print as you'll want a lot of online sources feeding you.
If you want a relatively safe route, I suggest following the popular technology book publishers. They often have links for their 'recently released' and 'upcoming' books.
- Manning (see also their early access product, MEAP; basically a pdf)
- O'Reilly (see also their market trend analysis posts)
- Pragmatic Programmers
I find Dr. Dobb's to be a fantastic publication for software-related articles.
I see that many people belong to ACM and IEEE. I only belong to IEEE so my answer might be biased.
I suggest you to only take one. Part of their benefits (like Safari) overlap. You should use the money you save to extend your subscription with their libraries.
Notice that there is IEEE and IEEE Computer Society (I took the second). Both have several journals. If you are interested in more than one it is a better deal subscribing to the digital library and get online access to all of them.
Before you take a decision try to "digest" all their free contents and get your opinion. Then join one and try to follow all the articles you like. If you think you make a good use of your money and still have time left join the other one. I believe IEEE Computer Society is more geared towards the industry (ACM being more academic).
Whichever the choice you make, joining ACM or IEEE should not be just to read material (there is plenty out there, and many books). The greatest benefit you pay for is a filter to ease your access to quality material. Make this investment when you feel overwhelmed of all the information out there you want to read. That being said, never forget that there is also a money making industry behind.
Did read the right books already?
http://stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read
Are you also reading high quality code?
Finally, before you subscribe, you might ask your current employee about giving you a subscription. It is tax deductible and at least, they should know that you care about your own skills.