Introduction
These course materials will assist you in developing the skills necessary to do the following:
- Use basic Python programming and Linux skills.
- Implement a development environment using DevNet resources.
- Use software development and design best practices.
- Create REST API requests over HTTPS to securely integrate services.
- Explain the processes and devices that support network connectivity.
- Use current technologies to deploy and secure applications and data in a cloud environment.
- Compare software testing and deployment methods in automation and simulation environments.
- Compare Cisco platforms used for collaboration, infrastructure management, and automation.
Course Overview
Welcome to the DevNet Associate course! This course will teach you the basics of software development, networking fundamentals and automation.
The industry is shifting towards automation, applications, and integrations. It is important to learn the necessary skills in order to keep up with the fast pace of technology. The modules in this course were specifically chosen to help you obtain critical job skills.
The cause of this shift in the industry is Application Programming Interfaces (APIs). We need to be more efficient in how we deploy devices, applications, networks and infrastructures. One way to do this is to eliminate repetitive manual tasks with computer automation using APIs. APIs make it possible to build automated scripts, as well as integrations that build a network between applications. This lets the applications share data, request actions to be performed, or even notify each other when a specific event happens. You will learn about APIs, their benefits, and how to troubleshoot them in the Understanding and Using APIs module.
To be able to use APIs to write scripts and build applications, you must know how to code. You need to learn the main concepts of software development and be equipped with the necessary tools to write quality code. These topics will be covered in the Software Development and Design module.
Automation and integrations through APIs cannot exist without the network. The network allows communication between applications and clients. Using APIs have helped make the network more efficient through network programmability. Network programmability is the ability to configure, monitor, and react to events in the network in real-time. It is important to learn about the basics of the network, which is discussed in detail in the Network Fundamentals module.
With the number of APIs growing in the industry and applications integrating together, it is important to understand how to secure the network and your applications to avoid incidents such as data breaches. There are different security concerns for each deployment type, so you need to know about the various modes of deployment to make the best choice for your application. More details about securing the network and your applications are discussed in the Application Deployment and Security module.
APIs have already opened the doors for automation of the network. Network automation can be taken a step further by the automated deployment of applications. You can do this with infrastructure as code. This is basically the ability to manage the infrastructure with automation, instead of manually setting up the infrastructure. You will learn more about this topic in the Infrastructure and Automation module.
The last module is Cisco Platforms and Development. This module pulls it all together in big categories, such as collaboration, compute including data centers, networking including data models, and security. Let's get started!
Why Should I Take this Module?
Why should you take this module? Because you are a NetAcad student and you know that the world of networking is changing all the time and you want to keep your knowledge and skills up to date! The newest change in networking is using code to automate many of the functions of the network. This module is intended to be a refresh of Linux and Python skills. It contains labs and quizzes to help you recall your skills.
The DevNet Associate course will teach you the necessary skills around software development, APIs, networks, automation, and security. These skills will help you stay up-to-date with the rapid changes in the industry. At the end of each module, you can test your newly acquired skills by taking the quiz assessments. Are you ready to begin?
Linux
Linux has gained widespread use in servers, Internet of Things (IoT) devices, networking equipment, smartphones, and many other devices you may not think of as even being computers. From the home router providing your internet connection to the server this course is hosted on, it is likely that multiple Linux-powered devices are currently enabling you to read this page.
But why do you need to know about Linux? Well, for starters, remember that VM you just downloaded and installed to be your developer environment? That is a Linux-based virtual machine. All of the coding labs in this course are performed on a Linux-based VM.
What Linux command is used to display the contents of the current directory?
Topic 1.2.0 - The Linux ls command, without any options, is used to display the contents, such as files and subdirectories, of the current directory.
What command is used to rename a file in a Linux system?
Topic 1.2.0 - The mv Linux command can be used to move a file to another directory or rename a file. The cp command is used to make a copy of files or directories. The dd command is also used to make a copy of a file. The rm command is used to delete a file.
A user issues a Linux command and the result is shown.
total 40
drwxr-xr-x 2 devasc devasc 4096 Apr 15 19:09 Videos
drwxr-xr-x 2 devasc devasc 4096 Apr 15 19:09 Templates
drwxr-xr-x 5 devasc devasc 4096 Mar 30 21:24 snap
drwxr-xr-x 2 devasc devasc 4096 Apr 15 19:09 Public
drwxr-xr-x 2 devasc devasc 4096 Apr 15 19:09 Pictures
drwxr-xr-x 2 devasc devasc 4096 Apr 15 19:09 Music
drwxr-xr-x 5 devasc devasc 4096 Mar 30 21:21 labs
drwxr-xr-x 2 devasc devasc 4096 Apr 15 19:09 Downloads
drwxr-xr-x 2 devasc devasc 4096 Apr 15 19:09 Documents
drwxr-xr-x 2 devasc devasc 4096 Mar 30 21:25 Desktop
devasc@labvm:~$Which Linux command is used to display the contents of the current directory as shown?
Topic 1.2.0 - The Linux ls command with the -l option is used to display contents in the current directory as a “long list”. By default, the listing is sorted alphabetically. With both the -l and -r options specified, the listing is displayed as a long list and in reverse order.
A system administrator of a Linux server is searching the passwd file for the username taylor that appears at the beginning of the line. Which grep command should the administrator use?
Topic 1.2.0 - The Linux grep command can be used to process text line by line and to print any lines which match a specified pattern. The matching patterns are based on regular expression (regex) query modifiers used to select the appropriate content. Some regex query modifiers are as follows:
- (underscore): matches a space
- ^ (caret): indicates the start of a string
- $ (dollar sign): indicates the end of a string
- . (period): matches a single character, including a space
- (asterisk): matches zero or more occurrences of the preceding character
- (square bracket): matches a character
- { } (curly bracket): repeats preceding character
A user issues the apt-get upgrade command to update system files in a Ubuntu Linux system and receives an error message of "permission denied." What should the user do to complete the task?
Topic 1.2.0 - There are several Linux commands in the Advanced Package Tool (APT) system to perform software package management tasks. The apt-get upgrade command is used to update all packages and dependencies on the system. This command must be run with administrative level permissions, which are provided by the sudo command.
Python
Python Programming
Python is an easy to learn programming language that you will use throughout this course. Why should you learn Python? You will need to become familiar with basic Python to complete many of the labs in this course. In addition to this, the Python Essentials course (see the link in Student Resources) names a few factors that make Python a great tool for learning basic coding:
- It is easy to learn - the time needed to learn Python is shorter than for many other languages; this means that it's possible to start the actual programming faster.
- It is easy to use for writing new software - it's often possible to write code faster when using Python.
- It is easy to obtain, install and deploy - Python is free, open and multiplatform; not all languages can boast that.
- If you're not familiar with any other languages, Python is great to begin with, because it will give you a solid foundation and allow you to learn other programming languages (e.g., C++, Java, or C) much easier and much faster. Learning Python is fun and trendy!