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

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.

Sep 7th 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
Introduction to Hardware and Operating Systems (Coursera) Coursera
IBM

Introduction to Hardware and Operating Systems (Coursera)

Organizations need workers who can help others with computer hardware, software, and connectivity issues. Healthcare organizations are still converting to digitized systems, requiring more IT support. Workers are retiring, and organizations are contracting workers through IT consultancies rather than in-house IT technicians. With remote and hybrid work here to stay, organizations must provide employees with the devices and support they need to remain connected and productive. Additionally, IT support roles are often a steppingstone that enables employees to grow into higher-paying IT careers.

Sep 14th 2026
5-12 Weeks
Python Programming Fundamentals (Coursera) Coursera
Duke University

Python Programming Fundamentals (Coursera)

This introductory course is designed for beginners and individuals with limited programming experience who want to embark on their software development or data science journey using Python. Throughout the course, learners will gain a solid understanding of algorithmic thinking, Python syntax, code testing, debugging techniques, and modular code development--essential skills for a successful career in software engineering, development, or data science.

Sep 7th 2026
4 Weeks
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).

Aug 31st 2026
1 Week
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.

Aug 31st 2026
5-12 Weeks
Writing, Running, and Fixing Code in C (Coursera) Coursera
Duke University

Writing, Running, and Fixing Code in C (Coursera)

Building on the course Programming Fundamentals, this course will teach you how to write code by first planning what your program should do—an important approach for novice and professional programmers. You will learn how to compile and run your program, and then how to test and debug it. This course builds on the Seven Steps you have already learned and provides a framework for systematically testing for problems and fixing them, so you can find and fix problems efficiently.

Sep 7th 2026
4 Weeks
Crash Course on Python (Coursera) Coursera
Google

Crash Course on Python (Coursera)

This course is designed to teach you the foundations in order to write simple programs in Python using the most common structures. No previous exposure to programming is needed. By the end of this course, you'll understand the benefits of programming in IT roles; be able to write simple programs using Python; figure out how the building blocks of programming fit together; and combine all of this knowledge to solve a complex programming problem.

Sep 1st 2026
5-12 Weeks
Architecting Smart IoT Devices (Coursera) Coursera
EIT Digital

Architecting Smart IoT Devices (Coursera)

This course will teach you how to develop an embedded systems device. In order to reduce the time to market, many pre-made hardware and software components are available today. You'll discover all the available hardware and software components, such as processor families, operating systems, boards and networks. You'll also learn how to actually use and integrate these components.

Sep 21st 2026
5-12 Weeks