Roughly speaking, the first half of my software development career was spent in, or consulting for, Fortune 100 companies. The last couple years I've been working in mostly small companies. Here, in a nutshell, is how I see the difference between the two basic environments:
In a big company it's often hard to figure out who knows the answers to the questions you have.
In a small company, it's obvious who has the answers to the questions you have, but they're too busy on 5 other projects to help you.