Google is famously more selective than Harvard (both places have self-selected applicant pools, but Harvard admits 5% while Google has "millions" of applications and only tens of thousands of programmers hired over multiple years). However, by a similar argument it is less selective than Major League Baseball.
Google hires self-taught programmers. But the median autodidact has low ability compared to the median formally-educated computer scientist. Google cares less about credentials than they used to, and even in the early days they were willing [http://www.codersatwork.com/jamie-zawinski.html] to hire jwz-caliber self-taught programmers. But your interview performance must be on par with traditionally educated candidates. You must be able to write plausible code in 45 minutes to solve a challenging problem that can be described in 2 minutes. That essentially requires that you are familiar with fundamental algorithms and data structures (or that you are a genius who can reinvent these on-the-fly) and some popular programming language.
The portfolio doesn't matter very much. The hiring committee will expect if you are young that you are capable of contributing in some way immediately and show promise for doing much more in the future. If you are older they will expect that you have a track record of exceptional accomplishment that they can expect you will extend at Google.
For info about the process, see https://www.google.com/about/careers/. It's going to be (1) submit your application (2) do phone screens (3) do onsite interviews (4) review offer.
The penalty for trying too early is that it will take some of your time to do interviews and you won't be able to try again for a whole year. So you should put some effort into it if you seriously want to work at Google, but you should not dedicate years of your life to taking a single shot at it because you can and many do successfully reapply after rejection.