Google is among the most sought after employers in the world. Engineers are the rock stars at Google — and they’re paid like one.
Interns start at $70,000 to $90,000 salaries, while software engineers pull in $118,000 and senior software engineers make an average of $152,985. But one does not simply walk into the Googleplex.
The company receives upwards of 2.5 million job applications a year, but only hires about 4,000 people.
For would-be Googlers, the Google in Education team has released a list of skills that they want to see in potential engineers.
“Having a solid foundation in computer science is important in being a successful software engineer,” the company says. “This guide is a suggested path for university students to develop their technical skills academically and non-academically through self-paced, hands-on learning.”
Here are the skills Google wants its tech talent to master, complete with online resources to get you started…
1. Learn To Code
Learn to code in at least one object-oriented programming language, like C++, Java, or Python. Consult MIT or Udacity.
2. Test Your Code
It’s not just important to know how to code. You should also be able to test code, because Google wants you to be able to ‘catch bugs, create tests, and break your software.’
3. Have Some Background In Abstract Math
It is important to have some background in abstract math, like logical reasoning and discrete math, which lots of computer science draws on.
4. Get To Know Operating Systems
Get to know operating systems, for they’ll be where you do much of your work.
5. Become Familiar With Artificial Intelligence
Become familiar with artificial intelligence beacuse Google loves robots.
6. Understand Algorithms And Data Structures
Google wants you to learn about fundamental data types like stacks, queues and bags as well as grasp sorting algorithms like quicksort, mergesort and heapsort.
7. Learn Cryptography
Learn cryptography. Remember, cybersecurity is crucial and important for security.
8. Learn How To Build Compilers
Stanford says that when you do that, ‘you will learn how a program written in a high-level language designed for humans is systematically translated into a program written in low-level assembly more suited to machines.’
9. Learn Other Programming Languages
Add Java Script, CSS, Ruby and HTML to your skillset. W3school and CodeAcademy are there to help.
10. Learn Parallel Programming
Also, learn parallel programming because being able to carry out tons of computations at the same time is powerful.