Linux Foundation Certified System Administrator (LFCS)
Linux Training Architect II
The Linux job market continues to grow and expand, and this course will help prepare you for one of the standard industry Linux administration certifications. This course has been designed to match the domains, skills, knowledge, and competencies as detailed by the Linux Foundation.
Introduction to the LFCS
Welcome to the Linux Academy course Linux Foundation Certified System Administrator. This lesson is a welcome message to the course and provides a brief introduction of what to exptect along the way.
About This Course
In this lesson, we are going to take a look at the course Syllabus and walk through the different Linux Academy features that will help you study and learn the materials found in the course.
About the Author
Your instructor for this course will be Mike Bunch. Mike has almost 25 years of IT experience across the board. From support to administration to training to project management, he has seen a lot of changes come to IT. In addition to work, he also likes to do woodworking, read & write scifi & fantasy and attempt to play disc golf when time allows.
About the Exam
The Linux Foundation Certified System Administrator exam is a two-hour, online and hands-on exam. You will go through several real-world type scenarios on an actual CentOS 7 or Ubuntu 18 system instead of just answering multiple-choice questions. In this lesson, we will take a high-level look at the exam, and some information available on the Linux Foundation website.
Essential Commands (25% of the Exam)
Search for Files Part 1 - Find/Locate
Knowing where files are located in a Linux system can be overwhelming. In this lesson, we'll explore using the
locate commands to identify where files are located based on parameters like the file name and file ownership. At the end of this lesson, you will be able to use these commands to find files on your Linux system.
Search for Files Part 2 - Which/Whereis/Type
In this lesson, we will expand our search knowledge by using the
type commands to locate applications and application information. At the end of this lesson, you will be able to use these commands to find out where an application is located, which version of an application is being used in a session and what additional versions that are available.
Evaluate and Compare the Basic File System Features and Options
Understanding the benefits and weaknesses of various file systems is an important skill for a Linux system administrator. In this lesson, we will take a high-level look at different file systems available for Linux, including EXT, BTRFS, XFS, and FAT filesystems along with other options available and see what advantages and disadvantages each offer. At the end of this lesson, you will be able to discuss a few of the strengths and weaknesses of several different Linux filesystems.
Compare and Manipulate File Content and Use Input-Output Redirection Part 1 - Create Files/Input-Output
One of the most common tasks a Linux administrator performs is reviewing text files. In this lesson, we're going to take a look at a few commands that will allow you to view file data and use simple redirection to make the output more manageable. By the end of this lesson, you should be able to use commands like
less, as well as a text editor like
nano to view various files.
Compare and Manipulate File Content and Use Input-Output Redirection Part 2 - Compare Files (Diff/Compare/CMP)
In addition to viewing file contents, a Linux administrator needs to be able to review files and directories to identify any changes or differences between them. In this lesson, we will take a look at the
cmp commands, and how to use them to compare files. By the end of this lesson, you should be able to use the commands to compare files and directories and easily identify differences between them.
Use Input-Output Redirection (e.g. >, >>, |, 2>)
Linux System Administrators often need to string together commands, and Bash allows for manipulating file content using input-output redirectors. In this lesson, we will talk about stdin, stdout, and stderr as well as demonstrate the more common uses of I/O redirection, such as the pipe character (
|) and the to and from characters (
We will also take a look at redirecting specific output, such as stderr, to a different location than stdout. At the end of this lesson, you will feel confident directing output from one command to the input of another.
Analyze Text Using Basic Regular Expressions
Regular expressions are a challenge for many Linux system administrators. They can be very powerful but can also be difficult to build correctly to get the results you want. During this lesson, we'll take a look at basic regular expressions and how they might be used to analyze text files using
grep. At the end of this lesson, you may not feel much like a regular expression guru, but you'll have a basic understanding of how regular expressions work and be ready to look ahead at mastering them down the road.
Archive, Backup, Compress, Unpack, and Decompress Files
Knowing how to back up a Linux system is crucial for a Linux system administrator. In this lesson, we'll take a look at a couple of common backup and restore techniques, taking advantage of the Tape ARchive command. At the end of this lesson, you will understand the history of the
tar command and be able to create archives of your important files on any modern media, not just the old fashioned tapes.
Create, Delete, Copy, and Move Files and Directories
Sometimes, things aren't exactly where you expect them to be. In this lesson, we will take a look at a few basic commands for creating, deleting, copying, and moving both files and directories, so that things are where you need them to be. By the end of this lesson, you will be able to shuffle files like a professional poker player!
Create and Manage Hard and Soft Links
With Linux filesystems, there can be multiple pointers to the same area on disk, or shortcuts that behave just like targets both locally as well as on other filesystems or disks. In this lesson, we'll take a look at hard and soft links, and explore their similarities and differences. At the end of this lesson, you will be able to understand the difference between hard and soft links, and be able to leverage those differences to manage and protect your files effectively!
List, Set, and Change Standard File Permissions
Since everything in Linux is a file, file permissions are very important. In this lesson, we'll discuss standard file permissions, how they affect file access, and how to change them to fit our requirements. We'll use standard utilities, such as
chmod. At the end of this lesson, you will be able to recognize file permissions and ownership configuration and update them to properly protect your files and ensure your Linux system is secure.
Manage Access to the root Account
On a Linux machine, the
root account is all-powerful and allows us do pretty much do whatever we want. It's extremely important to limit who can access this account. In this lesson, we will take a look at
su, and see how we can use them to protect a system. At the end of this lesson, you will understand the difference between logging in as
root and gaining temporary escalated privileges. You'll also know how to grant other users escalated privileges without compromising your system.
Read and Use System Documentation
Linux is made up of lots of little commands that work together to create a powerful operating system. With all of these little pieces, it can be difficult to remember what they each do or how to use them. To help solve this issue, Linux has documentation built right in! In this lesson, we'll take a closer look at
man pages as well as some other places you might find documentation. At the end of this lesson, you will be able to understand any command by using the available documentation.
Operation of Running Systems (20% of the Exam)
Operation of Running Systems
Boot, Reboot, and Shut Down a System Safely
The need to properly reboot and/or shutdown a system is critical to the stability and security of a system. Unfortunately, it isn't as simple as pulling the plug out of the wall. That's why in this lesson we are going to take a look at using the
shutdown command to shutdown, reboot, poweroff, and halt a system.
Boot or Change System into Different Operating Modes
Linux systems can run in a variety of modes for a variety of reasons: single user mode for recovery (useful for troubleshooting a problematic system), commandline mode (good for server management), and graphical mode (common for desktop access). In this lesson, we will review the different operating modes and take a look at how to temporarily and permanently change the operating mode on a system.
Install, Configure, and Troubleshoot Boot-Loaders
A bootloader manages all of the activities that need to occur before you can boot into your operating system. In this lesson, we will talk about the role of a bootloader, what goes into the configuration of a bootloader, and then take a look at GRUB2 (the most common bootloader). We will also take a look at the files that configure and build the bootloader menu.
Diagnose and Manage Processes
Knowing what processes are running on a Linux system, and what tools are available to monitor and manage those processes is a critical part of a system administrator's role. In this lesson, we'll look at
ps. We'll see what information each command provides and how to take advantage of what each offers. We will also review the
kill command, along with the
renice commands. By the end of this lesson, you will be able to retrieve information about processes on your system to help you properly manage it.
Locate and Analyze System Log Files
If your system isn't running properly, where should you look to find information on the issue so you can get it resolved? In this lesson, we'll take a look at where to find system log files on Centos/Redhat systems and Debian/Ubuntu systems. Then we'll examine a couple of the main logs on each system. We will use a couple of tips and tricks that will make viewing the information a bit easier as well. By the end of this lesson, you'll be able to locate the system logs, and have a good idea of how to find specific information in them.
Schedule Tasks to Run at a Set Date and Time
As a Linux system administrator, you will often find yourself running the same command, script, or report over and over again. In this lesson, we are going to take a look at
cron and see how it can help automate those repetitive tasks, and get them on a regular schedule. By the end of this lesson, you will be able to view a crontab and understand how to schedule your tasks when you need them.
Verify Completion of Scheduled Jobs
Now that you have
cron managing your scheduled jobs, how can you confirm the jobs are running as expected? In this lesson, we will discuss where we can find information about
cron jobs and go over a couple of tips that will make it easier to keep track of their status. By the end of this lesson, you will be able to see if your
cron jobs are running and if they were successful.
Update and Manage Software to Provide Required Functionality and Security, Part 1 - Ubuntu/Debian
The ability to manage software and updates on a Linux system is one of the most important skills of a Linux system administrator. In this lesson, we will review the
apt-get tools that are commonly used in Debian-based systems like Ubuntu. By the end of this lesson, you should understand what each tool offers and feel comfortable updating, installing, uninstalling and retrieving information about packages on Ubuntu and other Debian systems.
Update and Manage Software to Provide Required Functionality and Security, Part 2 - CentOS/Redhat
The ability to manage software and updates on a Linux system is one of the most important skills of a Linux system administrator. In this lesson, we will review the
dnf tools that are commonly used in RedHat-based systems like CentOS and Fedora. By the end of this lesson, you should understand what each tool offers and feel comfortable updating, installing, uninstalling, and retrieving information about packages on CentOS and other RedHat systems.
Verify the Integrity and Availability of Resources
What exactly are system resources? System resources are components within a computer system and include memory (RAM), hard disks, CPU, and network IO (input/output), just to list a few. In this lesson, we are going to take a look at how to troubleshoot memory and hard disks using the
Verify the Integrity and Availability of Key Processes
Processes are applications that are actively loaded and/or running in an operating system. These processes consume memory and CPU cycles, and can occasionally have issues. In this lesson, we will use tools like
htop to take a closer look at the processes on our systems. After this lesson, you will be able to use the tools to learn more about processes on your systems.
Change Kernel Runtime Parameters, Persistent and Non-Persistent
The Linux kernel controls almost every part of the operating system. The ability to change kernel parameters on the fly can allow a Linux System administrator to test and validate changes you think you might need to update before making the changes permanent. In this lesson, we will walk through how to view and change kernel runtime parameters on a temporary or permanent basis. After this lesson, you should be comfortable viewing parameters and making these changes yourself.
Use Scripting to Automate System Maintenance Tasks
Just throwing in my two cents, but I would write something like the following: Scripts are everywhere in Linux, although less so due to systemd units. As a Linux system administrator, you will need be able to run, read, write and troubleshoot scripts but before you can learn to write scripts, you have to learn to read them. The first part to learning how to script is to be able to understand the vocabulary that can be used includes every command on the system as well as the scripting commands that are part of your shell. In this lesson, you will learn how to create, read, run, and troubleshoot a simple
bash shell script.
Scripting Conditionals and Loops Part 1 - Operators/If
The ability to use conditional evaluations in a script will increase your script-fu, and make your scripts more powerful and flexible. In this lesson, we will take a look at operators and use the if statement to evaluate a condition then execute a command based on the results. By the end of the lesson you should have an idea of how to use operators to set up conditional evaluations, and how to use if to execute commands based on the conditional results.
Scripting Conditionals and Loops Part 2 - For/While/Until
We've reviewed the basics of shell scripting, talked about operators, and used if to execute commands based on a conditional comparison. In this lesson, we are going to expand our knowledge to include repeating commands using for, while and until loops. By the end of this lesson, you should be able to expand your scripting knowledge by understanding loop evaluations, and be able to use for, while, and/or until in your scripts.
Manage the Startup Process and Services (In Services Configuration)
A Linux service is an application or set of applications configured to launch at system startup and run in the background. On modern Linux distributions, services are managed by
systemctl. In this lesson, we will go over the basics of the
systemctl command and use it to stop/start and enable/disable services. By the end of this lesson, you should feel comfortable managing startup processes on a Linux system.
List and Identify SELinux/AppArmor File and Process Contexts
Linux systems (especially in a production environment) often employ security tools to prevent illicit access, stop services or applications from using excessive resources, and prevent accidental resource conflicts. Distributions employ similar strategies, though the tools and processes may differ. In this lesson, we will take a look at the utilities that will allow us to view the file and process contexts for both SELinux and AppArmor. At the end of this lesson, you'll be able to describe and find file and process contexts for both SELinux and AppArmor.
User and Group Management (10% of the Exam)
User and Group Management
Create, Delete, and Modify Local User Accounts
User management is one of the most common, but critical activities, you will perform as a system administrator. In this lesson, we will take a look at commands like
userdel, which will help you manage and maintain your users. After this lesson, you will know what your options are for creating and managing user accounts.
Create, Delete, and Modify Local Groups and Group Memberships
Group management is another common but critical activity you will perform as a system administrator. Groups can be important because they can be used to grant privileges to tools like sudo as well as be sued to grant or restrict permissions for files and directories. In this lesson, we will take a look at the commands
groupdel to help you manage and maintain groups.
Manage System-Wide Environment Profiles
Application configuration in Linux is usually done with environment variables. We will look at various tools and files on a Linux system that will allow us to view, create, and remove environment variables.
Manage Template User Environment
In this lesson, we are going to take a look at the
/etc/skel directory and how important it can be to you. When we have finished, you will be able to tailor your
/etc/skel directory to meet your needs as a Linux System Administrator.
Configure User Resource Limits
To ensure the availability and usability of your servers, you may need to apply limits to some users or groups. We will take a look at
/etc/security/limits.conf and how it can be used to limit resource utilization to protect your system from resource intensive users or groups.
Manage User Privileges
Who can access your servers, and what they can execute once on the system? As a Linux system administrator, what should you do? In this lesson, we will take a look at the
/etc/security/access.conf file and how we can use it to control who has remote access.
Pluggable Authentication Modules (PAM) in Linux allow you to configure and reconfigure how authentication takes place in PAM-aware applications, without needing to rewrite the application. In this lesson, we will review PAM and how a Linux system administrator can use it to configure PAM-aware applications.
Networking (12% of the Exam)
Configure Networking and Hostname Resolution Statically or Dynamically
Linux systems share networks with Windows systems, MacOS systems, and hardware devices. But now they also have to contend with mobile devices (tablets and phones) and smart appliances. Linux needs to be as flexible as possible, so it needs to be able to support dynamic and static IP addresses as well as DNS resolution. In this lesson, we will review the files necessary to configure networking and hostname resolution, statically or dynamically, on both Debian/Ubuntu systems and CentOS/RedHat systems.
Configure Network Services to Start Automatically at Boot
Linux systems serve many roles and are relied upon by many applications and systems on the network. In this lesson, we will take a look at configuring network services to start automatically at boot. Managing network services is not much different than managing other services. By the end of this lesson, you should be able to manage network services like they were any other service.
Implement Packet Filtering
Protecting a networked machine on the Internet can be a challenge today. In this lesson, we will look at how to implement packet filtering using the
iptables command to block ICMP packets on a Linux system. After this lesson, you should be able to use
iptables to prevent unauthorized packets and access to your systems.
Start, Stop, and Check the Status of Network Services
We are already familiar with using the
systemctl command to manage regular and network services. In this lesson, we are going to take a look at the
netstat command. We'll use the information it provides to examine various network services so that we can see what is running, what ports are in use, if connections are open, and other general traffic data. By the end of this lesson, you should be familiar with the
netstat command and use its output to manage your network services.
Statically Route IP Traffic
A network is a highway, designed to get packets of information to their destination. Sometimes a Linux admin needs to close off a road due to problems or construction. In this lesson we will take a look at the
ip route commands, to check our current routes and add or delete routes as needed. By the end of this lesson, you should be comfortable viewing route tables, understand the basics of the
ip route command, and know how to use the man page to learn more.
Synchronize Time Using Other Network Peers
Many Linux services and applications depend on accurate system time across multiple nodes, so it is up to the Linux system administrator to ensure time and date information is accurate to maintain reliability. In this lesson, we will look at how to keep servers synchronized to external time servers using the
timedatectl command. After this lesson, you should be familiar with the command and be able to check and adjust your time settings as necessary.
Service Configuration (20% of the Exam)
Configure a Caching DNS Server
DNS resolution is a key component of a network/server environment, and a caching DNS server can help improve performance. In this lesson, we will look at how to configure a DNS server to cache query responses. After this lesson, you will be able to configure your servers to make use of caching too.
Maintain a DNS Zone
DNS is the contact list of the Internet, and if you have a domain you might need to create the appropriate zone files for your DNS server. In this lesson, we'll go over the record types and procedures you'll need for maintaining your very own DNS zone. After this lesson, you'll be able to identify all the configuration files necessary to run a zone, describe the different record types (SOA record, A, MX, NS, and CNAME), and maintain a SOA block for your zone.
Configure Email Aliases
Do you need to send a copy of all emails received by one address to another, or send service account emails to a specific user to avoid managing multiple mailboxes? As a Linux sysadmin, you can simplify the management system emails for a Linux server by setting up aliases for your mail system of choice. In this lesson, we'll take a look at setting up aliases for Postfix that solves both of these scenarios. By the end of this lesson, you will be able to route email as needed using aliases.
Configure SSH Servers and Clients
As a Linux sysadmin, you will most likely use SSH on a daily basis to connect to your systems. Secure Shell is the standard remote access protocol used to connect to servers anywhere in the world. In this lesson, we will take a closer look at the configuration files for SSH, as well as go through the process of generating a key with ssh-keygen. After this lesson, you should feel comfortable configuring SSH and generating your own keys.
Restrict Access to HTTP Proxy Servers
Protecting systems to keep your users and data safe, along with following proper network practices, is critical. In this lesson, we will take a look at Squid and see how to use it to cache and filter http requests for particular networks and hosts. After this lesson, you will know where to go to check and update your configuration to only allow appropriate hosts connections.
Configure an IMAP and IMAPS Service (and Pop3 and Pop3S)
Linux system administrators have been managing email servers for a long time, with a variety of options available. You may be tasked with installing and managing an email server, so understanding the basics of POP3 and IMAP can be valuable. In this lesson, we will install Dovecot for our IMAP and POP3 services. After this lesson, you will be comfortable with installing and managing Dovecot to set up your own email server.
Query and Modify the Behavior of System Services at Various Operating Modes
systemctl command can do more than just start and stop services, let's take it one step farther. In this lesson, we will take a look at how to use
systemctl to view service settings, show dependencies, and create an override configuration for a file. By the end of this lesson, you will be able to use
systemctl for more than starting and stopping services.
Configure an HTTP Server (Ubuntu/Debian)
With the exponential growth of the Internet, web-related skills are in demand. In this lesson, we will install and configure the Apache2 server on an Ubuntu system. After this lesson, you should know how to install it and where to find the key files and directories yourself.
Configure HTTP Server Log Files
Many Linux system administrators use log aggregation software or similar analysis software to consolidate and manage reporting functions. In this lesson, we will take a look at Apache2 log files and how to modify the output. By the end of this lesson, you will be able to customize the logfile to meet your reporting needs.
Restrict Access to a Web Page
Managing web servers is an important skill, but as a Linux sysadmin you need to be able to secure your websites in order to prevent unauthorized access. There are many ways a Linux administrator can secure a website, but in this lesson we will talk about how to use IP Addresses to restrict access to a web page in Apache2. We will take a look at the necessary configuration, and finally how to test and troubleshoot the configuration. By the end of the lesson, you will be able to manage access to a website and know how to test and troubleshoot the configuration file.
Configure a Database Server
Databases are an important part of many applications that a Linux sysadmin will support, so you need to be familiar with how to manage various databases. Linux has many database options available, like Oracle, PostgreSQL, and Mongo, but two of the most popular are MySQL or MariaDB. In this lesson we will talk a bit about databases and will install and configure MariaDB, as well as take a look at the MariaDB shell.
Manage and Configure Containers
Containers can make testing solutions and managing applications much easier as they enable a Linux system administrator to collect an application, dependencies, and data into a single image that can be easily transferred and managed identically on different systems. In this lesson, we will use Docker to spin up a web server, manage the container and completely remove it when we are finished. After this lesson, you should be familiar with some basic Docker commands and be ready to start managing your own containers.
Manage and Configure Virtual Machines
For a long time, virtual machines were the only option available for isolating operating systems and their hosted applications and processes. In this lesson, we'll take a look at creating, managing, and configuring a Linux virtual machine running on a Linux host. After this lesson, you'll be able to use
virsh to create, manage, start, and stop your own virtual machines.
Storage Management (13% of the Exam)
List, Create, Delete, and Modify Physical Storage Partitions
Modern data-driven systems today require more and more storage to provide the services they were designed to deliver, and it is up to the Linux system administrator to know what storage is available and how to manage it. In this lesson, we will use
parted to partition hard block devices and become familiar repartitioning block storage devices. By the end of this lesson you should be familiar with partitioning and changing block storage, but always remember to backup data before you make changes.
Manage and Configure LVM Storage Part 1 - Create LVM
Logical Volume Management allows you to join multiple physical disks together in such a way that they are presented to the operating system as a single device. In this lesson, we'll explore how to partition devices for LVM, create physical volumes, set up the logical volumes, and create the volume groups.
Manage and Configure LVM Storage Part 2 - Extend LVM
With LVM, a Linux system administrator has control over the storage available and can expand or reduce available storage as needed. We have seen how to create physical volumes, volume groups, and logical volumes. Now it is time to reap the benefits of that knowledge. In this lesson, we will take a look at how to expand or reduce logical volumes to manage storage space available.
Create and Configure Encrypted Storage
Controlling user access sometimes isn't enough when trying to protect sensitive data, and can create a challenge for a Linux system administrator. Creating a filesystem that can be locked and unlocked as needed is another valuable tool in the Linux system administrator's arsenal. In this lesson, we will take a look at using
cryptsetup to create encrypted storage and make sure our information is protected.
Configure Systems to Mount File Systems at or During Boot
Users can't access data if a file system has not been mounted, so a Linux system administrator needs to make sure file systems mount properly and are accessible. Linux file systems are not like those in Windows and require planning and consideration to determine what should be available at boot. In this lesson, we'll examine the
/etc/fstab file and see how it's used to mount file systems at boot time. After this lesson, you'll be familiar with the format of the
/etc/fstab file yourself and can configure your file systems to mount properly when needed.
Configure and Manage Swap Space
Swap space is a file or a special partition formatted for swapping space in the file or partition with memory on the system. This allows the Linux kernel to move the memory being used by inactive processes out of RAM to the swap space, so that other active processes can use that RAM. In this lesson, we will discuss what swap is, how much swap your system will need, how to enable and disable swap, and where and how swap is defined on the system. After this lesson, you should be able to create swap files and enable or disable them as needed.
Create and Manage RAID Devices
LVM can offer redundancy through mirrors and speed through striping, but it doesn't offer both like RAID 5, 6 or 10. LVM also offers the advantage to resize devices. In this lesson, we are going to talk about RAID (Redundant Array of Independent Disks), which is another option that will combine disks and present them as a single device. But it also offers other features, such as redundancy, to help ensure file/filesystem functionality and stability. In this lesson, we will use
mdadm to combine multiple disks into a software RAID array.
Configure Systems to Mount File Systems on Demand
Users are not able to with any files or directories in a file system until it is properly mounted and avialable. In previous lessons, we have mounted local filesystems and set them up in
/etc/fstab to be mounted at boot time. In this lesson, we are going to walk through how to connect to a remote Samba share and configure a remote filesystem to mount at boot time.
Create, Manage, and Diagnose Advanced File System Permissions
To meet unusual permission requirements and/or situations, a Linux system administrator has additional options available: the sticky bit,
setuid. These have been touched on in a previous lesson, but today the discussion will be focused on the purpose of each permission type. We will use
chmod to set these additional permissions, then we will take a look at how to find files and directories with those permissions set on them.
Set up User and Group Disk Quotas for File Systems
Disk space is much less expensive today than it used to be, but if you have a lot of users or a highly utilized solution, you may find that you need to limit the amount of storage used by a specific user or group of users. Possible situations include a user that is continuously generating reports, or an anonymous FTP user that is continually downloading files, so we need to control their storage utilization. In this lesson, we'll explore limiting user and group usage of a block storage device using the Linux
quota command. After this lesson, you'll be able to set hard and soft limits and set grace periods for users to clean up their files.
Create and Configure File Systems
"Everything in Linux is a file," so creating healthy file systems to meet usage needs is an important task for any Linux system administrator. In other lessons, we have created filesystems as part of the workflow, but in this lesson we will focus on creating filesystems of different types, get them mounted, and talk about adding them to
/etc/fstab to make them available on boot.
EXAM: Linux Foundation Certified System Administrator - Key Linux Commands, Terms and Utilities
Registering for and Taking the Exam
We have been focused on preparing for the Linux Foundation's Certified System Administrator exam. Now you have completed the course, studied all of your material, so you are ready to take the exam. In this lesson, we will review the process and information needed for registering for the exam on the Linux Foundation training website at: https://training.linuxfoundation.org/certification/linux-foundation-certified-sysadmin-lfcs/ After reviewing the lesson and the resources available at the Linux Foundation website, you are ready to register and pass the exam!
What's next for you after passing the LFCS certification? Let's take a couple of minutes to talk about what you can do next. Thank you for completing the course and letting us be a part of the process with you!
Take this course and learn a new skill today.
Transform your learning with our all access plan.Start 7-Day Free Trial