Does Anyone in IT Read Academic Literature?
digital book worm asks: "I'm a soon-to-be fresh-out with a Masters degree in Computer Science. For the last several years I've had paper after paper shoved in my face, and following some of the major publications (such as Communications of the ACM, IEEE Software, and some of the IEEE Transactions series) and conference proceedings has become second nature. I can't help but wonder though: For those of you outside of academia, do you find that there is any benefit to following the latest research on a regular basis? Clearly there are times when it is appropriate to go back and look for papers that solve a particular problem you're working on, but I'm finding it a little difficult to believe my professors' hype that the latest and greatest is the stuff that goes on in these papers, and that I should make it a life-long goal to keep current on many of the publications listed above."
There is a great deal of dross that is published in even the better scientific journals and it is quite a task keeping up with even a small field. I can't imagine many people who are not directly involved in research would be able to find the time to keep abreast.
/Science/ or /Nature/.
I'd like to see better summaries of research published; something available in between reading all the abstracts and interesting papers in the top journals of the field and just reading the occasional flasgship paper in
When I was in software design (with some hardware work), I followed several academic journals and a plethora of trade papers to keep up.
Now, after a career veer into network and systems administration, I haven't run across much worth reading on a regular basis. It may be there, but I haven't found it.
Even with the "dross", and the stuff I didn't care about, it was worthwhile when I was in software and hardware.
There's a saying:
A few months in the laboratory (or coding, in your case) can often save you a few hours in in the library.
The hard part is actually being able to keep up (i.e. knowing the language, which journals to trust, what's going on etc). Since you are following the literature closely you should not abandon it. Those that don't follow it will definitely have a hard time starting, though.
P.
I certainly don't religiously keep up with things, but I love periodically going to the library and checking out the latest journals etc. because there's always something cool to read.
I do seem to find the most interesting stuff through references from other sources though, e.g., someone will mention a paper on a mailing list I read, or I'll do a google search on some term I see in patch which will turn up relevant publications.
So my impression is that you can keep abreast of things pretty well simply by "remaining engaged" in whatever activity/community interests you, and that the current interesting ideas and research will inevitably pop up if you do. Reading journals and conference proceedings (or at least browsing through the contents to find the cool stuff) can be part of that, but it hardly seems necessary to worry about it too much.
We live, as we dream -- alone....
On the one hand, if you stay on top of research, even though most of what you read is useless, you'll be in a good position to integrate what you read and it will probably kick off thinking processes that will be of value. Having a good overview of what's going on helps you to see connections between work that the authors may not even realize is related.
;')
On the other hand, there's a tremendous amount of stuff out there. I don't mean crap - some of it's quite good. But staying on top of it could easily be a full-time job, and then some.
So I think your professor is right, in a sense, but what he's saying may not be practical in the real world, even if it makes sense in academia.
I would suggest that you decide how much time you're willing to spend reading papers, and make a habit of doing it, and when you run out of time, stop. If you have nothing that's obviously interesting in your stack, skim what's on top. If there's something interesting, skim that, and if you still think it's interesting, read it more carefully (if you need to - often skimming is all you need). But always cut yourself off when you get to the end of the allocated time - don't bog down reading papers all day.
Heck, this is advice I should probably take. Thanks for asking!
I have exactly the opposite perspective. Every successful, novel product I've worked on has had foundations in recent academic papers. Successful design level engineers read the lastet stuff, and put the ideas they get from the papers they read into practice.
Anybody that tells you they can launch a tech product that is both revolutionary and successful without learning from the recent innovation of others is lying, and the people in academia are the ones that share their recent innovations.
The other is that they just aren't that relevant to my career. I once heard cutting-edge software engineering literature called "intellectual porn". Just like porn, all the little imperfections are smoothed over and if you read enough of it you believe that every company (or girl) is perfect and yours is the only one that's this messed up. Talk to guys that have been around (jobs or girls) and they'll tell you that they're all messed up. The ones that look perfect are the worst of all.
Personally I try to keep up with trends that have caught on. I didn't jump on Agile or Extreme Programming even though parts of it sounded good. Over the last several years I've learned Java, Photoshop, ASP, Perl, JSP, Flash, UML, Design Patterns, J2EE, and now DotNet. Not once did I pick up a journal article for those, but just looking at job postings, resumes, and the shelves at mega bookstores will show you what's hot. Sure you'll be a little behind the curve. If you want to stay in front of it, get to DotNet or Java user groups and watch the respective web sites to keep up with the up-and-coming features.
I tend to keep up with the latest ACM/IEEE published papers. But in 20+ years of IT programming I've only met a handful of others that do anything similar.
:-)
Basically I read an interesting paper, suggest we use some small part of it at work, everybody laughs. Two years later I'm called in to explain what the hell I was talking about as it's now seen as the thing to do. (sigh)
For instance, I recently commented that augmented reality is ready to make a move into the corporate world. Laughter all round.
The very same day I was asked to re-explain the benefits of open source as the CEO had been told it would reduce the cost of IT. I just gave the same chat I did three years ago
You're kidding, right?
..for that matter, how many have studied the documentation that came with their compiler? understand the operation at a general level of the OS they work with? have a knowledge of security problems? care about any of that? ..becoming more cynical, know what the stack and heap are?
I've been able to do very well for myself by being able to apply classic engineering and IT things - you know, searches that aren't linear brute force, some of the more useful design patterns, knowing what a code profiler is. How many programmers out there have even tried to read the Art of Computer Programming, by the man your God, Knuth?
How many people who call themselves C and C++ programmers do you know, who haven't read the C Programming Language, or the C++ Programming Language?
My experience is that a large segment of the IT world is ignorant or dismissive of the classical stuff, so to hope for them to be aware of current developments that may or may not be useful to anything being done now is probably a far reach at best.
..don't panic
I come to IT from engineering (EE). I've constantly been astounded by the shallowness of the average practitioner in this field. Not because they're dumb or incapable, but because they actively choose to tune out anything other than the latest products, buzzwords, and empty vendor promises (including open source stuff).
In engineering it's common that the average engineer has a basic knowledge of, e.g., fundamental equations and how practical tools are derived from them. In IT, it's almost considered an *advantage* to avoid deep or abstract thought.
Anyone who deals with databases, for instance, knows exactly what I'm talking about. I gravitated toward databases because of the complete and sound theory behind data storage and manipulation (the relational model). However, no "modern" database supports the full power of the relational model. Vendors and users seem more interested in how well their databases support XML (a relative of the 1970's hierarchic databases), rather than how well they guarantee data integrity or allow for user-defined types and operators.
I attribute this to a lack of what I call "distilled thought". Folks don't know how to cut to the essence of whatever they are working on. Can you imagine if EE had, for instance, a different set of theories for every shape of antenna? No, we have four simple equations, Maxwell's equations, from which everything is derived. Once you understand the basic principles, you are in a position to critically evaluate almost anything somebody puts in front of you.
So, to answer the original question, there are a FEW of us who value "academic literature" and foundation knowledge, but most don't.
(Though to be honest, some of the academic stuff is getting contaminated with the buzzword fungus as well).
The correct answer depends on what you want out of your career.
Most people here are quite satisfied with being essentially code monkeys that take the current "Teach Yourself Foo in 24 Days" book, and use that. If all you want to be is a guy that churns out VB code for an insurance company, make webpages, or reboot windows boxes, then no. There's no point to keep up with the field, because you're doing anything new. All you're doing is taking advantage of essentialy commodity techniques and technology.
It is important to note many of these same people are hostile to research, criticizing academic papers as pointless, crap, and full of big-words (aka technical terms). These same people tend to think of themselves as God's gift to engineers, and therefore react negatively to anything they can't understand. Computer science is still a young field that is dominated by the young and experienced. It is no wonder, why the same mistakes are continously repeated in this field.
Now, if you want to work and actually create new technologies (as opposed to simply products) then you need to keep up with the research. As a lowly coder, you can't take necessarily take advantage of what you read, but as a lead designer you can take advantage of some of it.
If you decide you want more, then just focus on one or two lead journals most relavant to what you're doing. If you decide you want to write VB all your life, then don't bother. The choice is yours.
Do you need to keep up? No. That is not to say you should not. For starters this community should no better than most the speed at which this industry changes. Knowing what is coming and maybe even more importantly what is on it's way out can make or break a career.
There are many markets where it really is necessary to reach that next tier of success. If you want to be a grunt, for now or for life, stay as a grunt. Not that you cannot be a successful grunt, but you are handicapped to be one without that knowledge. Your education, continuing education that is, is what gives you the abilities to see what others can't and thus to go where others can't. That's the difference between programming and application design. Trust me, cubicles are nice, but window offices are better.
If you want to take the road less filled with research don't start your own business, don't invest your money, and enjoy your cubicle. There's a good chance that there will be a nice fellow a cubicle over waiting on that ideal FORTRAN contract to come along.
Seriously though, this knowledge is what allows me to do things better than the other guy. It's what makes my brand and to what I owe my success. One more note of advice. When given the opportunity to teach take it. As a primary job fuction or not (professor or simply project team member) teaching will guarantee you rewards to your own personal education found in no other way.
"I'd like to see better summaries of research published"
Then read Slashdot, the finest summarizing publication in the entire universe, and maybe some adjacent ones, too.
In fact, to maximize the exposure of certain research, they will publish summaries several times, sometimes within the same article.
Those who sacrifice security to condemn liberty deserve to repeat history or something. - Benjamin Santayana
Most IT workers don't have the necessary time and money to study academic literature, as they prefer to invest all of their resources to survive in the modern fast-pace high-demanding corporate world. As one of my university professors told us, only the rich have time to actually learn the sciences and study academic literature. If you need to work in order to have food on the table, you will prefer to study something that will benefit you immediately, such as industry white papers and how-to guides. In the modern world where everyone is seeking the money, scientific papers often won't benefit you for years, until you find a way to commercialise the new findings. This is exactly what the corporations want: Lots of IT workers trained in programming and networking but without the slightest knowledge of the underlying sciences. Corporations don't like philosophers and scientists, because they cannot be easily manipulated by the boss; they want you to be a code monkey. But knowledge liberates, and code monkeys can take their life in their hands if they learn the sciences and become philosophers. This is part of what I want to achieve with my site, Wikinerds.org: to assist those who are seeking liberation through knowledge.
I don't agree with you. You have to think about what you were being taught and why a particular tool was used for teaching. It is quite possible that whoever was running your course was a crusty old academic who had no idea about the real world, and still thought that Pascal was a must-have on your CV.
However, if you went to a half-decent college, it's more likely that they were trying to teach you the fundamental ideas of your field. Perhaps Pascal had a particular quality that meant that it was useful for the teaching of ideas, or perhaps the development environment meant that students were able to get going quickly and start tackling interesting problems?
Many CS departments now just teach Java over and above the ideas behind the discipline. That's fine, especially for the department (who can say "95% of our graduates went into employment in CS jobs within 6 months of graduating"), but when Java is supplanted by the next big thing, those who just learned Java (rather than the theory behind their subject) may have trouble adapting.
I'm not trashing Java, I'm trashing the sausage factory mindset.
About 99% of what I learned at undergraduate level was not cutting edge (and wasn't even close). However, I was taught ideas, and that has equipped me to work in both industry (for global companies) and more recently in academia on my PhD research. It's at graduate level and beyond that students work at the cutting edge. It's also true that industry develops some cool stuff, but the emphasis in industry is on cutting-edge research that will yield a profit in a couple of years. Academia has an eye on the long term. Sometimes the two converge (Google wouldn't have been possible without cutting edge academic research, but wouldn't be as well supported today if it had stayed a research project).
"The noble art of losing face will one day save the human race"---Hans Blix