I spent my past summer as an intern at IBM Research in New Delhi, India. It was a phenomenal experience of Indian culture and technical research and I wanted to impart some of the things I learned while working at a large tech company abroad.
First, I learned industry is far more focused on production than research, even at research facilities. The projects which get sponsored are those which intend to make money in the next five to ten years and they may ask you to sacrifice completeness for timeliness.
While I learned a lot in my time there, I was advised not to endeavor a thorough understanding of some core concepts since I only needed a superficial understanding in order to work with the material.
This philosophy certainly had me on the ground running but may have missed me the opportunity to contribute more meaningful insights. If you like to work on real world problems with visible outcomes, I think it is a great experience. But, if you like to spend your time solving abstract problems and prefer the interesting to the useful then you may find the work to be nonsubstantive.
Second, I discovered that you can learn anything if you go say hello to the person in the next cubicle. I talked with people working on a variety of projects outside of my group and learned about neural networks, temporal graphs, financial prediction and data security among other things. Everyone loves to talk about their own research, and few will pass up the opportunity to practice their presentation.
Learning from colleagues is a great way to get some general technical breadth and you never know when you will find something new you want to work on.
You may know whether you would like to work in industry but for the many students who aren’t sure, the only way to decide is to get an internship and see how you like it.