Blog

Cheap Docker images with Nix

Let’s talk about Docker and Nix today. Before explaining what Nix is, if you don’t know yet, and before going into the details, I will show you a snippet similar to a Dockerfile for creating a Redis image equivalent to the one in docker hub.The final i…

Why Math Majors Came to Google to Learn About Careers in Software Engineering

Did you know that you don’t have to be a computer science major to be a software engineer at Google? It’s true! Just a few weeks ago, Google hosted its first-ever Math Summit in the New York City office to encourage students majoring in subjects other than computer science that they, too, can — and should! — apply for software engineering internships and full-time roles at Google. Students from 17 colleges came to Google for a day of technical talks, a panel discussion featuring Googlers with math backgrounds, an interview workshop and networking. If you’re not studying computer science, but are interested in building technology that makes a meaningful impact on the lives of people all across the world, then read on to learn what you’ll need to know.


IMG_4221 (1).jpg
A panel at Google’s first-ever Math Summit, held in New York City.


I don’t have to be a CS major to work at Google?
We want to take this opportunity to do a little myth-busting: You *do not* have to be a CS major to have a career as a software engineer here at Google. Studying physics? Electrical engineering? Theoretical math? We have Googlers from all of these backgrounds! You just have to have the CS fundamentals, which you’ll need in order to do well in the technical interviews (more on this later), and the passion to work in teams to solve some of technology’s toughest questions. If you can develop your coding skills, then software engineering might just be your next adventure.


What do I need to know?
You might be thinking, “But I’m so behind! How will I learn everything I need to know for interviews before I graduate?” We have good news: you don’t have to know everything. When you’re preparing for technical interviews, it’s most important to have a firm understanding of data structures and algorithms, which is typically the next course taken after the Intro to Programming course offered by many colleges and universities. If you’re still in school, take advantage of the courses offered there. And be sure sure to check out our Technical Development Guide (g.co/techdevguide).


What are interviewers looking for?
Interviewers will want to see that you are able to write functional code in at least one language really well (e.g., Java, Python, C++, etc.). Make it your priority to know the common constructs and idioms in your language of choice. Once you have that down, ask yourself if you could explain the real world performance of the code you write. Do you know the run time? Can you think of how you’d change your code if you had to make certain trade-offs? Have you thought about scalability? What about different edge cases? Make it a habit of asking yourself these questions and testing your code, and you’ll be in great shape.


That’s it?
Mostly, yes! The next steps are to practice, practice, and practice. Buddy up with a friend and practice writing code on white boards. Talk out loud as you go through each problem to simulate the interview. Remember, it’s okay to admit what you do not know. You won’t be penalized for this! Interviewers have been in your position before, and they will tell you that most of what they do now was learned on the job — not from textbooks or computer science courses.


Get in touch with us!
Interested in learning more? Let us know here! And check out google.com/students for all internship and full-time opportunities at Google.


We hope to hear from you!
Alec & Grace, from the University Programs team


IMG_4207.jpg

Alec taking selfies while waiting for students to arrive at the Math Summit.