I found that looking at the code of the best developers there was super useful. In particular, look at literally anything that Jeff and Sanjay write.
HN user
anayini
I worked briefly on the same team as Gurmeet while I was an intern at Google. He's an incredibly smart guy and had tons of interesting puzzles to give out.
Was at one point in a similar situation. Went to a math and science high school with the hopes of eventually going to Stanford or MIT. Instead, I ended at my state school. As a senior looking back on college, I'm extremely satisfied with my choice. I've had the opportunity to learn from some great professors and have gotten a few internships at Google and a fulltime job at Palantir from it.
Regardless of where you go you can always find great people and learn from them.
Regardless of how talented you are, the coding interview is flawed. That is, even if you are great, if you mess up an interview you likely won't get the job. This isn't to discourage though, just know that if you don't get in it DOES NOT mean that you aren't talented. It means you had a bad day and you should try again soon.
The Berkeley book is quite good. Pretty concise description of the fundamental stuff and good exercises. I'm actually a student at UIUC and Jeff's notes (the ones in the link) are great too and he often includes areas of theory not found in the Berkeley book that he finds interesting.
:noh
Check out the website for Halcyon Molecular. They are experimenting with new ways to sequence the human genome using electron microscopy. Naturally, aside from bioengineers and materials engineers they are interested in bioinformatics. There might be a nice way to start in the more bioengineering focused areas of the company and transition into bioinformatics. (halcyonmolecular.com)
good luck