Great question. Short answer is it depends. Microsoft and Google are very competitive when it comes to hiring software engineers. However, as a a student there are several avenues to getting in companies like those two and other high tech companies (e.g. Amazon, Palantir, Dropbox, etc).
The first is internships. Internships usually offer the best direct route for students to a full-time position. Most companies also have specific programs for graduating students to get entry level positions. These programs will offer you the ability to rotate through different groups at a company and get diverse experience before you commit to working a particular group. They also have mentoring built in. Look to apply for those types of programs.
In terms of progressing in a company. It used to be that you'd hear stories of people starting as help-desk technicians and rising to engineers and other more senior positions. Those opportunities may still exist, but they do take very long. If you feel confident to be an software engineer apply to to be software engineer. Large companies will have defined career paths (e.g. junior SE-> software engineer -> SE II -> SE III -> principal SE). Those programs have specific milestones and its up to your manager to promote you up the ranks. Alternatively, you can join a smaller startup or company and grow and gain experience quickly. You'll often see employee 3 who is a SE at a startup become a manager or director of SE by the time the company grows to 20/30 employees within the span of 2-3 years.