Troubleshooting and Debugging Techniques (Coursera)

Offered by Google,
Troubleshooting and Debugging Techniques (Coursera)

In this course, we'll give you the tools to quickly identify and solve real-world problems that you might come across in your IT role. We'll look at a bunch of different strategies and approaches for tackling the most common pitfalls of your code and IT infrastructure. You'll learn strategies for approaching almost any technical problem and then see how those apply to solving different real-world scenarios.

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

We picked examples that include general system issues, issues with software that someone else wrote, and issues with programs that we wrote. We'll talk about problems that can affect any operating system, and we'll also look at challenges specific to certain platforms and scripting languages.
We strongly recommend that you’ve taken the prior courses in this program, or already have knowledge of Python and Linux so that you can follow along with our troubleshooting examples.
Course 4 of 6 in the Google IT Automation with Python.

What You Will Learn

  • Analyze real-world IT problems and implement the appropriate strategies to solve those problems
  • Demonstrate techniques to quickly find and solve the root cause of problems in IT infrastructure
  • Understand the root cause for problems related to speed, crashes, or exhausted resources in your computer
  • Identify the most common pitfalls of your code and how to fix them

Syllabus

WEEK 1
Troubleshooting Concepts
In this module, you’ll be introduced to the fundamentals of troubleshooting and you’ll learn different strategies and approaches to tackle problems that you might encounter. You’ll learn about the concept of debugging and how debugging is one of the core principles of troubleshooting. You’ll be introduced to some tools that will help you in the debugging process, like tcpdump, ps, top, itrace, and lots more. Next, you’ll explore how to “understand the problem.” This might sound like a no brainer, but it's not as easy as you might think! Next, we’ll dive into the different approaches when troubleshooting reproducing errors versus intermittent errors. Finally, you’ll learn about “binary searching a problem.” We’ll explore the different types of searches, including binary and linear searches. Then, we’ll learn about the concept of bisecting and how it can be used in your troubleshooting approach, and finish up with finding invalid data in a CSV file.

WEEK 2
Slowness
In this module, you’ll learn about what factors can cause a machine or program to act slowly. You’ll dive into ways of addressing slowness by identifying the bottleneck that might be causing the slowness. You’ll learn about tools to identify which resources are being exhausted, including iotop, iftop, and activity monitor in MacOS. Next, you’ll learn how computers use resources, and understand the differences between CPU, RAM, and Cache in order to help you find the possible causes for slowness in our machines or scripts.
Next up, you’ll learn how to write efficient code, then explore profilers to help you identify where your code is spending most of its time. Next, you’ll dive into data structures and understand which ones are right for you to use. These include lists, tuples, dictionaries, sets, and expensive loops. Then, you’ll dive into complex slowness problems and how utilizing concurrency and adding a caching service can improve the execution of your code. Finally, you’ll understand how using threads can make the execution of your code much quicker.

WEEK 3
Crashing Programs
In this module, you’ll get introduced to the age old question, “Why has my program crashed?” You’ll learn how to troubleshoot system crashes and application crashes, what tools you can be used to help identify the cause of the crash, and what log files to look at in order to find what might have gone wrong. Next, you’ll dive into investigating why code crashes, and what you can do to prevent that from happening. Then, you’ll explore what happens when an unhandled error occurs and throws an exception. You’ll learn about the printf debugging technique, which will help you identify these errors and exceptions. Finally, you’ll explore the concept of handling crashes and incidents at a much larger scale.
You’ll delve into a scenario where a large eCommerce site will throw an error 20% of the time. Once that issue has been fixed, you’ll understand the importance of communication and documentation during these incidents, and how writing a post mortem can prevent issues from happening again.

WEEK 4
Managing Resources
In this module, you’ll learn how to manage your applications. You’ll dive into some common issues that may cause your application to crash. You’ll also understand what memory leaks are, and how to troubleshoot and prevent them. Up next, you’ll run down managing disk space; you’ll see some scenarios of how this happens and how to identify what process or application is taking up all your disk space. Then, you'll learn what network saturation is, how it can be caused, and some useful tools and techniques to solve a network saturation problem.
Next, we’ll shift from managing applications to managing your time. You’ll get tips on how to prioritize tasks, estimate how long a particular task will take before finishing, and communicate expectations when dealing with important tasks. The final lesson delves into how to deal with hard and complex problems by breaking it down into small, digestible chunks while keeping your eyes on a clear goal. You’ll learn that using proactive approaches, like continuous integration, can help you with future issues that might come up. You’ll also explore how to plan for future resource usage by making good use of monitoring.

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

Related Courses

App Deployment, Debugging, and Performance en Français (Coursera) Coursera
Google Cloud

App Deployment, Debugging, and Performance en Français (Coursera)

Dans ce cours, les développeurs d'applications apprennent à concevoir et développer des applications cloud natives qui intègrent parfaitement les services gérés de Google Cloud. À travers un ensemble de présentations, de démonstrations et d'ateliers pratiques, ils découvrent comment appliquer les bonnes pratiques de développement d'applications et comment utiliser les services de stockage Google Cloud appropriés pour le stockage d'objets, les données relationnelles, la mise en cache et l'analyse. Les participants peuvent choisir d'effectuer les ateliers dans leur langage préféré (Node.js, Java ou Python).

Oct 26th 2026
1 Week
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.

Nov 9th 2026
3 Weeks
Advanced React (Coursera) Coursera
Meta

Advanced React (Coursera)

Learn how to use more advanced React concepts and features, optimize and debug your React applications, and become proficient in using React Bootstrap and JSX. You’ll examine different types of React components, learn various characteristics and when to use them. You’ll start working with hooks, effects and other functional components. You’ll find out how routing is used in React to customize the users' experience, you’ll create a web application that consumes API data, and you'll get familiar with the most commonly used React framework integrations, tools, and debugging approaches.

Oct 19th 2026
4 Weeks
Creative Design, Prototyping, and Testing (Coursera) Coursera
University of Maryland, College Park

Creative Design, Prototyping, and Testing (Coursera)

Designing the customer and user experience is essential to creating great products today. Gone is the old paradigm of “form follows function” model of design. The process must be iterative and follow the best product design and development processes. While designing a great user experience can be a lengthy and expensive process, there are approaches to doing it faster and smarter, without compromising results.

Oct 19th 2026
4 Weeks
Technical Support Fundamentals (Coursera) Coursera
Google

Technical Support Fundamentals (Coursera)

This course is the first of a series that aims to prepare you for a role as an entry-level IT Support Specialist. In this course, you’ll be introduced to the world of Information Technology, or IT. You’ll learn about the different facets of Information Technology, like computer hardware, the Internet, computer software, troubleshooting, and customer service. This course covers a wide variety of topics in IT that are designed to give you an overview of what’s to come in this certificate program.

Oct 19th 2026
5-12 Weeks
Software Engineering: Implementation and Testing (Coursera) Coursera
The Hong Kong University of Science and Technology - HKUST

Software Engineering: Implementation and Testing (Coursera)

Software Development Life Cycle (SDLC) is the process of developing software through planning, requirement analysis, design, implementation, testing, and maintenance. This course focuses on the implementation and testing phases of SDLC, and you will examine different software development processes for large software systems development, and understand the strengths (pros) and weaknesses (cons) of different software development processes.

Oct 26th 2026
5-12 Weeks
Core 2: OS, Software, Security and Operational Procedures (Coursera) Coursera
IBM

Core 2: OS, Software, Security and Operational Procedures (Coursera)

Are you interested in becoming a proficient and sought-after IT professional? Are you currently or do you plan to pursue a career in an IT support, network technician, or other IT-related role? This IBM course, designed for individuals with IT Fundamentals knowledge, is part of a series of courses that will help you prepare for the CompTIA Core 2 Certification exam. You will gain a solid foundation in operating systems, IT support best practices and procedures, and the skills necessary to excel in an IT role.

Nov 9th 2026
5-12 Weeks
Introduction to Visual Basic Programming (Coursera) Coursera
LearnQuest

Introduction to Visual Basic Programming (Coursera)

This course is the second course in a series that aims to prepare you for a role working as a programmer. In this course, you will be introduced to the five main concepts in procedural programming: user input, console output, variable declaration and assignment, decision branching and iteration. Labs will allow the students to apply the material in the lectures in simple computer programs designed to re-enforce the material in the lesson.

Oct 19th 2026
4 Weeks