Login Sign Up

Troubleshooting and Debugging Techniques

Google via Coursera

Coursera based on 3,028 ratings

Share

0

Overview

Troubleshooting and Debugging Techniques is a practical course designed to equip developers, engineers, and IT professionals with the essential skills to identify, diagnose, and resolve software and system issues efficiently. Whether you are a beginner or an experienced professional, this course helps you build a systematic approach to problem-solving in software development and operations.The course covers key troubleshooting methodologies, including how to isolate problems, reproduce errors, and use debugging tools effectively across different environments and programming languages. You will learn...

Syllabus

  • Troubleshooting Concepts
    • In this module, youll be introduced to the fundamentals of troubleshooting and youll learn different strategies and approaches to tackle problems that you might encounter. Youll learn about the concept of debugging and how debugging is one of the core principles of troubleshooting. Youll be introduced to some tools that will you in the debugging process, like tcpdump, ps, top, itrace, and lots more. Next, youll explore how to understand the problem. This might sound like a no brainer, but it's not as easy as you might think! Next, well dive into the different approaches when troubleshooting reproducing errors versus intermittent errors. Finally, youll learn about binary searching a problem. Well explore the different types of searches, including binary and linear searches. Then, well 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.
  • Slowness
    • In this module, youll learn about what factors can cause a machine or program to act slowly. Youll dive into ways of addressing slowness by identifying the bottleneck that might be causing the slowness. Youll learn about tools to identify which resources are being exhausted, including iotop, iftop, and activity monitor in MacOS. Next, youll learn how computers use resources, and understand the differences between CPU, RAM, and cache in order to you find the possible causes for slowness in our machines or scripts.Next up, youll learn how to write efficient code, then explore profilers to you identify where your code is spending most of its time. Next, youll dive into data structures and understand which ones are right for you to use. These include lists, tuples, dictionaries, sets, and expensive loops. Then, youll dive into complex slowness problems and how utilizing concurrency and adding a caching service can improve the execution of your code. Finally, youll understand how using threads can make the execution of your code much quicker.
  • Crashing Programs
    • In this module, youll get introduced to the age old question, Why has my program crashed? Youll learn how to troubleshoot system crashes and application crashes, what tools can be used to identify the cause of the crash, and what log files to look at in order to find what might have gone wrong. Next, youll dive into investigating why code crashes, and what you can do to prevent that from happening. Then, youll explore what happens when an unhandled error occurs and throws an exception. Youll learn about several debugging techniques, which will you identify these errors and exceptions. Finally, youll explore the concept of handling crashes and incidents at a much larger scale. Youll delve into a scenario where a large eCommerce site will throw an error 20% of the time. Once that issue has been fixed, youll understand the importance of communication and documentation during these incidents, and how writing a post mortem can prevent issues from happening again.
  • Managing Resources
    • In this module, youll learn how to manage your applications. Youll dive into some common issues that may cause your application to crash. Youll also understand what memory leaks are, and how to troubleshoot and prevent them. Up next, youll run down managing disk space; youll 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, well shift from managing applications to managing your time. Youll 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. Youll learn that using proactive approaches, like continuous integration, can you with future issues that might come up. Youll also explore how to plan for future resource usage by making good use of monitoring.
Troubleshooting and Debugging Techniques
Go to Class

Google via Coursera

37 minutes

Paid Certificate Available

English

On-Demand

Beginner

Instructor

Google Career Certificates

Reviews

No reviews yet. Be the first to review!