When you enroll in this course, you'll also be enrolled in this Professional Certificate.
Learn new concepts from industry experts
Gain a foundational understanding of a subject or tool
Develop job-relevant skills with hands-on projects
Earn a shareable career certificate from Google
There are 4 modules in this course
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.
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.
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.
What's included
14 videos7 readings4 assignments1 app item
Show info about module content
14 videos•Total 69 minutes
Course introduction•4 minutes
Intro to Module 1: Troubleshooting Concepts•2 minutes
What is debugging?•5 minutes
Problem solving steps•4 minutes
Silently crashing application•6 minutes
"It Doesn't Work"•7 minutes
Creating a Reproduction Case•4 minutes
Finding the Root Cause•6 minutes
Dealing with Intermittent Issues•5 minutes
Intermittently Failing Script•9 minutes
What is binary search?•3 minutes
Applying binary search in troubleshooting•5 minutes
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.
What's included
15 videos5 readings4 assignments1 app item
Show info about module content
15 videos•Total 75 minutes
Intro to Module 2: Slowness•3 minutes
Why is my computer slow?•5 minutes
How computers use resources•5 minutes
Possible causes of slowness•5 minutes
Slow web server•10 minutes
Writing efficient code•4 minutes
Using the right data structures•4 minutes
Expensive loops•4 minutes
Keeping local results•5 minutes
Slow script with expensive loop•8 minutes
Parallelizing operations•6 minutes
Slowly growing in complexity•4 minutes
Dealing with complex slow systems•4 minutes
Using threads to make things go faster•6 minutes
Module 2 Wrap Up: Slowness•2 minutes
5 readings•Total 24 minutes
Monitoring tools•4 minutes
More about improving our code•4 minutes
More about complex slow systems•4 minutes
Glossary terms from course 4, module 2•4 minutes
Exemplar: Performance Tuning in Python Scripts•8 minutes
4 assignments•Total 80 minutes
Test your knowledge: Understanding slowness•10 minutes
Test your knowledge: Slow code•10 minutes
Test your knowledge: When slowness problems get complex•10 minutes
Module 2 challenge: Performance Tuning in Python Scripts•50 minutes
1 app item•Total 90 minutes
Qwiklabs assessment: Performance tuning in Python scripts•90 minutes
Crashing Programs
Module 3•5 hours to complete
Module details
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 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 several debugging techniques, 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.
What's included
14 videos15 readings4 assignments1 app item
Show info about module content
14 videos•Total 76 minutes
Intro to Module 3: Crashing programs•4 minutes
Systems that crash•6 minutes
Understanding crashing applications•6 minutes
What to do when you can't fix the program?•5 minutes
Internal server error•10 minutes
Accessing invalid memory•7 minutes
Unhandled errors and exceptions•6 minutes
Fixing someone else's code•4 minutes
Debugging a segmentation fault•5 minutes
Debugging a Python crash•6 minutes
Crashes in Complex Systems•6 minutes
Communication and Documentation During Incidents•5 minutes
Writing Effective Postmortems•4 minutes
Module 3 Wrap Up: Crashing Programs•2 minutes
15 readings•Total 62 minutes
Internal server error•4 minutes
Resources for understanding crashes•4 minutes
Review: Debugging a segmentation fault•4 minutes
Review: Debugging a Python crash•4 minutes
Debugging with print•4 minutes
Debugging with assert•4 minutes
Try and catch debugging•4 minutes
Python logging module•4 minutes
Python debugging with pdb•4 minutes
Debugging/ breakpoints in VS Code•4 minutes
AI infused debugging and paired programming•4 minutes
Resources for debugging crashes•4 minutes
Practice writing effective postmortems•4 minutes
Glossary terms from course 4, module 3•2 minutes
Exemplar: Fix errors in Python scripts•8 minutes
4 assignments•Total 95 minutes
Test your knowledge: Why programs crash•10 minutes
Test your knowledge: Code that crashes•25 minutes
Test your knowledge: Handling bigger incidents•10 minutes
Module 3 challenge: Fixing errors in Python scripts•50 minutes
1 app item•Total 90 minutes
Qwiklabs assessment: Fix errors in Python scripts•90 minutes
Managing Resources
Module 4•5 hours to complete
Module details
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.
What's included
16 videos10 readings4 assignments1 app item
Show info about module content
16 videos•Total 72 minutes
Intro to Module 4: Managing Resources•2 minutes
Memory Leaks and How to Prevent Them•6 minutes
Managing Disk Space•6 minutes
Network Saturation•6 minutes
Dealing with Memory Leaks•8 minutes
Getting to the Important Tasks•6 minutes
Prioritizing Tasks•6 minutes
Estimating the Time Tasks Will Take•4 minutes
Communicating Expectations•6 minutes
Dealing with Hard Problems•5 minutes
Proactive Practices•5 minutes
Planning Future Resource Usage•4 minutes
Preventing Future Problems•4 minutes
Module 4 Wrap Up: Managing Resources•1 minute
Congratulations!•1 minute
Sneak Peek of Next Course•1 minute
10 readings•Total 44 minutes
More about managing resources•4 minutes
More about making the best use of your time•10 minutes
Change management in virtualized environments•4 minutes
Containerized Applications: Docker•4 minutes
More about preventing future breakage•4 minutes
Glossary terms from course 4, module 4•2 minutes
Exemplar: Debug and solve software problems•8 minutes
IT skills in action•4 minutes
Reflect and connect with your peers•2 minutes
Course 4 glossary•2 minutes
4 assignments•Total 80 minutes
Test your knowledge: Managing computer resources•10 minutes
Test your knowledge: Managing our time•10 minutes
Test your knowledge: Making our future lives easier•10 minutes
Module 4 challenge: Debug and solve software problems•50 minutes
1 app item•Total 90 minutes
Qwiklabs assessment: Debug and solve software problems•90 minutes
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.
Instructor
Instructor ratings
Instructor ratings
We asked all learners to give feedback on our instructors based on the quality of their teaching style.
Grow with Google is an initiative that draws on Google's decades-long history of building products, platforms, and services that help people and businesses grow. We aim to help everyone – those who make up the workforce of today and the students who will drive the workforce of tomorrow – access the best of Google’s training and tools to grow their skills, careers, and businesses.
"To be able to take courses at my own pace and rhythm has been an amazing experience. I can learn whenever it fits my schedule and mood."
Jennifer J.
Learner since 2020
"I directly applied the concepts and skills I learned from my courses to an exciting new project at work."
Larry W.
Learner since 2021
"When I need courses on topics that my university doesn't offer, Coursera is one of the best places to go."
Chaitanya A.
"Learning isn't just about being better at your job: it's so much more than that. Coursera allows me to learn without limits."
Learner reviews
4.6
3,094 reviews
5 stars
75.95%
4 stars
16.48%
3 stars
4.62%
2 stars
1.71%
1 star
1.22%
Showing 3 of 3094
J
JB
4·
Reviewed on Jan 5, 2024
I didn't learn more about troubleshooting, but I did learn a bit. Also, I really like the animations in the videos. My brother thought that some of them were hilarious!
F
FC
5·
Reviewed on Sep 11, 2024
Excellent course, I loved the didactic! Just had some difficult solving challenges on some Qwiklabs, but in general I learned a lot of new and interesting things!
S
SM
5·
Reviewed on Oct 27, 2020
This course helped me to discover so many new tools that come prebuilt into Linux and Mac systems. This is an excellent addition to my skillset. Thank you.
When will I have access to the lectures and assignments?
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
What will I get if I subscribe to this Certificate?
When you enroll in the course, you get access to all of the courses in the Certificate, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.