Mastering the Software Engineering Interview (Coursera)

Mastering the Software Engineering Interview (Coursera)

You’ve hit a major milestone as a computer scientist and are becoming a capable programmer. You now know how to solve problems, write algorithms, and analyze solutions; and you have a wealth of tools (like data structures) at your disposal. You may now be ready for an internship or (possibly) an entry-level software engineering job. But can you land the internship/job? It depends in part on how well you can solve new technical problems and communicate during interviews. How can you get better at this? Practice!

Class Deals by MOOC List - Click here and see Coursera's Active Discounts, Deals, and Promo Codes.

With the support of Google’s recruiting and engineering teams we’ve provided tips, examples, and practice opportunities in this course that may help you with a number of tech companies. We’ll assist you to organize into teams to practice. Lastly, we’ll give you basic job search advice, and tips for succeeding once you’re on the job.

Course 4 of 5 in the Object Oriented Java Programming: Data Structures and Beyond Specialization

Syllabus

WEEK 1
Welcome & What is a Software Engineering Interview?
Welcome to our course on effectively communicating your technical abilities. This course focuses on landing a technical job and excelling in a technical role. To succeed in job interviews, you’ll need to be able to confidently articulate your ability to solve challenging problems and come up with new solutions under potentially stressful conditions. After getting a technical job, the role of communication increases even more. You’ll need to work with other members of the team, communicate technical challenges and successes, and potentially sell the value of your work to those outside the company. Our goal is that by the end of this course each and every one of you understands the importance of technical communication, and has received constructive feedback on areas of potential improvement. In achieving this goal you will also learn about algorithmic thinking on the fly, how to evaluate a good interview answer to a difficult technical problem, and how “soft” skills impact interview outcomes. In this module, we’ll begin to see what a technical interview looks like, from the perspective of a major tech company. We’ll then focus on how to best get the interview in the first place. If you're not in the job market right now, you might want to skim the videos in this module and skip ahead to the Resume Critique (for insights about how to present yourself in writing) or the Introductions assignment (on effectively presenting yourself in person).
Welcome & What is a Software Engineering Interview?: Lesson Choices

WEEK 2
Live coding: the technical phone interview and beyond
Now that you’ve gotten warmed up, it’s time to practice your coding skills. One of the things you’ll almost certainly be asked to do during a technical phone interview is to code up a solution to a problem in a shared text document (e.g. Google doc) while you are on the phone with the interviewer. This experience can be intimidating, unfamiliar and humbling if you are not prepared, so this week we will give you lots of practice and tips for getting through this part of the interview with flying colors.

WEEK 3
Explaining what you've already done
This week, we’re going to focus on how to speak about your experiences working on projects and how to speak about the technical problems you’ve experienced and how you’ve solved those problems. We’ll introduce the STAR (Situation, Task, Action, Results) model for presenting your work, and discuss how to and how not to present the problem you worked on and the solution you developed. We’ll also discuss the communication skills that are critical to this task. It’s a fun week with lots of examples (both good and bad), which ends with an assignment where you will present your own work on video and submit this video for peer review.
Explaining what you've already done: Lesson Choices

WEEK 4
Algorithmic thinking on the fly
As we saw in week 2, coding on the fly can be a difficult task! In this final week of the course we’ll revisit the skill of live problem solving by looking at how to solve more challenging algorithmic problems (and write the code associated with the solution) on the whiteboard. You’ll recognize these problems as “classic” interview problems you’ve probably heard a lot about, designed to test your problem solving skills as well as your analysis and coding abilities. Don’t worry, we’ll teach you how to approach them with confidence through a 6-step process to addressing technical questions (hint: you don’t have to produce the perfect solution on the first try!). We’ll show you how to use this process in a number of examples. But of course, there is no substitute for practice, so we’ll set you up with how to train and evaluate yourself.

Go to Class
MOOC List is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Related Courses

Information Theory (Coursera) Coursera
The Chinese University of Hong Kong

Information Theory (Coursera)

At the completion of this course, the student should be able to: demonstrate knowledge and understanding of the fundamentals of information theory; appreciate the notion of fundamental limits in communication systems and more generally all systems; develop deeper understanding of communication systems; apply the concepts of information theory to various disciplines in information science.

Sep 7th 2026
13-24 Weeks
Introduction to Embedded Systems Software and Development Environments (Coursera) Coursera
University of Colorado Boulder

Introduction to Embedded Systems Software and Development Environments (Coursera)

Welcome to the Introduction to Embedded Systems Software and Development Environments. This course is focused on giving you real world coding experience and hands on project work with ARM based Microcontrollers. You will learn how to implement software configuration management and develop embedded software applications. Course assignments include creating a build system using the GNU Toolchain GCC, using Git version control, and developing software in Linux on a Virtual Machine.

Sep 14th 2026
4 Weeks
Audio Signal Processing for Music Applications (Coursera) Coursera
Stanford University,Universitat Pompeu Fabra

Audio Signal Processing for Music Applications (Coursera)

In this course you will learn about audio signal processing methodologies that are specific for music and of use in real applications. We focus on the spectral processing techniques of relevance for the description and transformation of sounds, developing the basic theoretical and practical knowledge with which to analyze, synthesize, transform and describe audio signals in the context of music applications.

Sep 14th 2026
5-12 Weeks
Creative Programming for Digital Media & Mobile Apps (Coursera) Coursera
University of London,Goldsmiths, University of London

Creative Programming for Digital Media & Mobile Apps (Coursera)

This course is for anyone who would like to apply their technical skills to creative work ranging from video games to art installations to interactive music, and also for artists who would like to use programming in their artistic practice. This course will teach you how to develop and apply programming skills to creative work. This is an important skill within the development of creative mobile applications, digital music and video games. It will teach the technical skills needed to write software that make use of images, audio and graphics, and will concentrate on the application of these skills to creative projects. Additional resources will be provided for students with no programming background.

Sep 14th 2026
5-12 Weeks
Introduction to Engineering Design (Coursera) Coursera
Starweaver

Introduction to Engineering Design (Coursera)

In today's fast-paced technological environment, understanding the fundamentals of engineering design is crucial for aspiring engineers and professionals alike. This comprehensive course serves as a primer, introducing participants to key concepts and methodologies essential for designing innovative solutions to complex problems. It provides an overview of the engineering design process, emphasizing the integration of creativity and functionality in problem-solving.

Sep 14th 2026
4 Weeks
Design Computing: 3D Modeling in Rhinoceros with Python/Rhinoscript (Coursera) Coursera
University of Michigan

Design Computing: 3D Modeling in Rhinoceros with Python/Rhinoscript (Coursera)

Why should a designer learn to code? As our world is increasingly impacted by the use of algorithms, designers must learn how to use and create design computing programs. Designers must go beyond the narrowly focused use of computers in the automation of simple drafting/modeling tasks and instead explore the extraordinary potential digitalization holds for design culture/practice.

Sep 14th 2026
5-12 Weeks
Creative Problem Solving (Coursera) Coursera
University of Minnesota

Creative Problem Solving (Coursera)

This course deals directly with your ability for creativity which is a critical skill in any field. It focuses on divergent thinking, the ability to develop multiple ideas and concepts to solve problems. Through a series of creativity building exercises, short lectures, and readings, learners develop both an understanding of creativity and increase their own ability.

Sep 14th 2026
4 Weeks
Samsung Customer Care Essentials (Coursera) Coursera
Samsung

Samsung Customer Care Essentials (Coursera)

Prepare to join a group of over 10,000 Samsung Mobile certified repair technicians in the U.S. who have gone through a training certification that equips them with the skills to conduct a mobile repair safely. Samsung has more than 1,000 Authorized Service Centers and service locations which is a care network that 75% of Americans have access to. This is an entry level course that will teach you the basics of Samsung Care that are needed to become a Samsung mobile repair technician or customer care representative.

Sep 14th 2026
3 Weeks