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

Advanced Styling with Responsive Design (Coursera) Coursera
University of Michigan

Advanced Styling with Responsive Design (Coursera)

It used to be the case that everyone viewed webpages on about the same size screen. But with the explosion of the use of smartphones to access the Internet, the landscape of design has completely changed. People viewing your site will now expect that it will perform regardless of the platform (smartphone, tablet, laptop, or desktop computer). This ability to respond to any platform is called responsive design.

Jun 22nd 2026
4 Weeks
Data Manipulation at Scale: Systems and Algorithms (Coursera) Coursera
University of Washington

Data Manipulation at Scale: Systems and Algorithms (Coursera)

Data analysis has replaced data acquisition as the bottleneck to evidence-based decision making --- we are drowning in it. Extracting knowledge from large, heterogeneous, and noisy datasets requires not only powerful computing resources, but the programming abstractions to use them effectively. The abstractions that emerged in the last decade blend ideas from parallel databases, distributed systems, and programming languages to create a new class of scalable data analytics platforms that form the foundation for data science at realistic scales.

Jun 22nd 2026
4 Weeks
Introduction to HTML5 (Coursera) Coursera
University of Michigan

Introduction to HTML5 (Coursera)

Thanks to a growing number of software programs, it seems as if anyone can make a webpage. But what if you actually want to understand how the page was created? There are great textbooks and online resources for learning web design, but most of those resources require some background knowledge. This course is designed to help the novice who wants to gain confidence and knowledge. We will explore the theory (what actually happens when you click on a link on a webpage?), the practical (what do I need to know to make my own page?), and the overlooked (I have a page, what do I do now?).

Jun 22nd 2026
3 Weeks
Cloud Computing Concepts, Part 1 (Coursera) Coursera
University of Illinois at Urbana-Champaign

Cloud Computing Concepts, Part 1 (Coursera)

Cloud computing systems today, whether open-source or used inside companies, are built using a common set of core techniques, algorithms, and design philosophies—all centered around distributed systems. Learn about such fundamental distributed computing "concepts" for cloud computing. Some of these concepts include: clouds, MapReduce, key-value/NoSQL stores, classical distributed algorithms, widely-used distributed algorithms, scalability, trending areas, and much, much more!

Jun 22nd 2026
5-12 Weeks
Algorithmic Toolbox (Coursera) Coursera
University of California, San Diego,Higher School of Economics - HSE University

Algorithmic Toolbox (Coursera)

The course covers basic algorithmic techniques and ideas for computational problems arising frequently in practical applications: sorting and searching, divide and conquer, greedy algorithms, dynamic programming. We will learn a lot of theory: how to sort data and how it helps for searching; how to break a large problem into pieces and solve them recursively; when it makes sense to proceed greedily; how dynamic programming is used in genomic studies. You will practice solving computational problems, designing new algorithms, and implementing solutions efficiently (so that they run in less than a second).

Jun 22nd 2026
5-12 Weeks
Introduction to Google SEO (Coursera) Coursera
University of California, Davis

Introduction to Google SEO (Coursera)

Ever wonder how major search engines such as Google, Bing and Yahoo rank your website within their searches? Or how content such as videos or local listings are shown and ranked based on what the search engine considers most relevant to users? Welcome to the world of Search Engine Optimization (SEO). This course is the first within the SEO Specialization and it is intended to give you a taste of SEO with some fun practices to get seen in Google.

Jun 22nd 2026
4 Weeks
Approximation Algorithms (Coursera) Coursera
EIT Digital

Approximation Algorithms (Coursera)

Many real-world algorithmic problems cannot be solved efficiently using traditional algorithmic tools, for example because the problems are NP-hard. The goal of this course is to become familiar with important algorithmic concepts and techniques needed to effectively deal with such problems. These techniques apply when we don't require the optimal solution to certain problems, but an approximation that is close to the optimal solution. We will see how to efficiently find such approximations.

Jun 26th 2026
4 Weeks
Finding Hidden Messages in DNA (Bioinformatics I) (Coursera) Coursera
University of California, San Diego

Finding Hidden Messages in DNA (Bioinformatics I) (Coursera)

This course begins a series of classes illustrating the power of computing in modern biology. Please join us on the frontier of bioinformatics to look for hidden messages in DNA without ever needing to put on a lab coat. In the first half of the course, we investigate DNA replication, and ask the question, where in the genome does DNA replication begin? We will see that we can answer this question for many bacteria using only some straightforward algorithms to look for hidden messages in the genome.

Jun 22nd 2026
5-12 Weeks
Introduction to CSS3 (Coursera) Coursera
University of Michigan

Introduction to CSS3 (Coursera)

The web today is almost unrecognizable from the early days of white pages with lists of blue links. Now, sites are designed with complex layouts, unique fonts, and customized color schemes. This course will show you the basics of Cascading Style Sheets (CSS3). The emphasis will be on learning how to write CSS rules, how to test code, and how to establish good programming habits.

Jun 22nd 2026
4 Weeks
Algorithms on Graphs (Coursera) Coursera
University of California, San Diego,Higher School of Economics - HSE University

Algorithms on Graphs (Coursera)

If you have ever used a navigation service to find optimal route and estimate time to destination, you've used algorithms on graphs. Graphs arise in various real-world situations as there are road networks, computer networks and, most recently, social networks! If you're looking for the fastest time to get to work, cheapest way to connect set of computers into a network or efficient algorithm to automatically find communities and opinion leaders in Facebook, you're going to work with graphs and algorithms on graphs.

Jun 22nd 2026
5-12 Weeks
Algorithms on Strings (Coursera) Coursera
University of California, San Diego,Higher School of Economics - HSE University

Algorithms on Strings (Coursera)

World and internet is full of textual information. We search for information using textual queries, we read websites, books, e-mails. All those are strings from the point of view of computer science. To make sense of all that information and make search efficient, search engines use many string algorithms. Moreover, the emerging field of personalized medicine uses many search algorithms to find disease-causing mutations in the human genome.

Jun 22nd 2026
4 Weeks