Is it difficult to score a job at Google or Microsoft as a computer science major?
The knowledge you gain while studying computer science is the key to get job at any elite technology company. To gain knowledge you have to ask questions at whatever you study? If you don't there won't be any points to differentiate you from your fellow classmates in computer science. Try developing a habit of self learning from online sources. Ask questions to your professors if you don't understand anything. Learn to code, you will learn basic stuff in you major but you have to maximize on this skill by working on it in your free time.
To answer your second question, it depends on what you want. You can rise up in ranks but usually it takes time in big companies like google and microsoft. At every rank the kind of work you do will be different. At google the top rank in terms of engineering consists of very smart people. You cannot compare rank of engineer by a manager? They closely relate but the kind of work is different.
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.