Practicing Modern Software Development
- Rise of APIs in Software Design
- API Data Formats
- Serialization and Deserialization of Data
- Collaborative Software Development
- Version Control with GIT
- Branching with GIT
Describing Software Development Process ( Self-Study)
- Software Development Methodologies
- Test-Driven Development
- TDD Example
- Code Review
Designing Software (Self-study)
- Modular Software Design
- Modular Design Benefits
- Architecture and Design Patterns
- MVC Architecture Pattern
- Observer Design Pattern
Introducing Network-Based APIs
- HTTP Protocol Overview
- HTTP Protocol Applied to Web-Based APIs
- HTTP Content Negotiation
- RPC-Style APIs
- REST-Style APIs
- Postman for REST API Consumption
- Advanced Postman Topics
- Consuming notification Events Using Webhooks
Consuming REST-Based APIs
- Common API Constraints
- API Authentication Mechanisms
- Using HTTP Authentication
- Leveraging HTTPS for Security
- Handling Secrets for API Consumption
Introducing Cisco Platforms and APIs (Self-study )
- Cisco Network Management Platforms
- Cisco Compute Management Platforms
- Cisco Compute Management APIs
- Cisco Collaboration Platforms
- Cisco Collaboration APIs
- Cisco Security Platforms
- Cisco Security APIs
- Cisco Network Management Platforms in Cloud
Employing Programmability on Cisco Platforms
- Automating Cisco Network Operations
- Cisco IOS XE Device-Level APIs
- Cisco NX-OS Device-Level APIs
- Cisco Controller APIs
- Automating Cisco Webex Teams Operations
- DevNet Developer Resources
Describing IP Networks (Self-Study)
- Basic Networking Concepts
- MAC Addresses and VLANs
- Network Routes and Routing
- Transport Layer and Packet Delivery
- Network Device Planes
Relating Network and Applications
- Standard IP Network Services
- Network Address Translation
- Common Protocols
- Application Connectivity Issues
- Tools for Troublshooting Connectivity Issues
- Explaining the Impact of Network Constraints on Applications
Employing Model-Driven Programmability
- Model-Driven Programmability Stack
- Network Automation and NETCONF
- Exploring YANG Models
- Utilizing Data Models with RESTCONF Protocol
- Using Python Scripts and Cisco SDKs
- Model Driven Programmability in a Cisco Environment
Deploying Applications
- Application Deployment Types
- Application Deployment Models
- Edge Computing Overview
- DevOps Practices and Principles
- Components of a CI-CD Pipeline
- Essential Bash Commands for Development and Operations
Automating Infrastructure
- SDN and Intent-Based Networking
- Infrastructure as Code
- System Management with Ansible
- Infrastructure Automation with Ansible Playbooks
- CI/CD Pipelines for Infrastructure Automation
Testing and Securing Applications
- Software Test Types
- Verifying Code Behaviour with Unit Tests
- Dockerfile Composition
- Using Docker in a Local Developer Environment
- Application Security
- Securing and Scaling Application Ingress Traffic
- Network Simulation and Test Tools
Labs:
- Parse API Data Formats with Python
- Use Git for Version Control
- Identify Software Architecture and Design Patterns on a Diagram
- Implement Singleton Pattern and Abstraction-Based Method
- Inspect HTTP Protocol Messages
- Use Postman
- Troubleshoot an HTTP Error Response
- Utilize APIs with Python
- Use the Cisco Controller APIs
- Use the Cisco Webex Teams Collaboration API
- Interpret a Basic Network Topology Diagram
- Identify the Cause of Application Connectivity Issues
- Perform Basic Network Configuration Protocol (NETCONF) Operations
- Use Cisco Software Development Kit (SDK) and Python for Automation Scripting
- Utilize Bash Commands for Local Development
- Construct Infrastructure Automation Workflow
- Construct a Python Unit Test
- Interpret a Dockerfile
- Utilize Docker Commands to Manage Local Developer Environment
- Exploit Insufficient Parameter Sanitization