Surprisingly, it isn't as important as you'd expect to find your direction right now! Many developers work in multiple branches of computer science until they find the one that best suits them. Be flexible and give it time. It may not be until years after graduation that you find where you fit best, but that's okay!
One of the best ways you can try out different branches of computer science is to become involved in open source development. Find projects you think are interesting, or which you use, and try your hand at fixing bugs or making small improvements. Help with documentation and testing. This not only builds that all-important portfolio, but it gives you an opportunity to try out many different areas of programming.
With a solid portfolio of open source contributions, you'll find it will be much easier to land an internship at a company like Google!
P.S. From what I've heard, Google is overrated, especially with the ethical controversies they're embroiled in. I am not saying you should give up on your dream of working for them, but keep your eyes open for other companies you might be interested in interning with as well. There are thousands of small and mid-size programming firms doing stuff even cooler than Google!
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.