DevOps and Software Engineering Professional Certificate
Offered By: IBM via edX
Course Description
Overview
Software Engineering professionals, especially those with DevOps skills, are in high demand! According to a recent GitLab report, the need for DevOps skills is expected to grow 122% over the next five years, making it one of the fastest growing markets in the workforce. Additionally, Glassdoor’s salary report shows the average total pay for a DevOps Engineer in the US is $121,000. There has never been a better time to start a DevOps career path.
This self-paced certificate program of online courses, built for beginners, will equip you with the key DevOps concepts and technical know-how to build your Software Development skills and knowledge with DevOps practices, tools, and technologies. By the end of this program, you will be prepared for an entry-level role in Software Engineering with an organization of DevOps practitioners.
You will develop skill sets in a variety of DevOps philosophies, fundamentals, and methodologies, including Agile Development, Scrum Methodology, Cloud Native Architecture, Behavior and Test-Driven Development (BDD and TDD), and Zero Downtime Deployments. The program also touches on data science, cloud computing, programming languages, machine learning, continuous delivery, IBM cloud, and agile software development for DevOps professionals.
Guided by experts at IBM, you will learn how to:
Labs and projects in this program are designed to equip you with job-ready hands-on skills to help you launch a new career in an in-demand field.
This software engineering professional certificate is suitable for those with no or some programming experience and those with or without college degrees.
Syllabus
Course 1: Software Engineering Basics for Everyone
Build the foundation for an in-demand Software Engineering related career. Explore fundamental software engineering principles, processes, architecture, tools, and stacks. Hear from software experts discuss what it takes to be successful.
Course 2: DevOps Basics for Everyone
This course is intended to help launch your career as a DevOps Professional. In this course you will learn to think, work, organize and measure DevOps - skills that you can use to build better products.
Course 3: Introduction to Cloud Computing
Jumpstart your cloud expertise and explore offerings of AWS, Google, and IBM; delve into IaaS, PaaS, SaaS models, and cloud security. Experience IBM Cloud app deployment. Perfect for executives, students, and budding professionals.
Course 4: Agile and Scrum Fundamentals
This course will benefit anyone who wants to get started with working the Agile way. It is particularly suitable for IT practitioners such as software developers, development managers, project managers, product managers, and executives.
Course 5: Linux Commands & Shell Scripting
This mini-course describes shell commands and how to use the advanced features of the Bash shell to automate complicated database tasks. For those not familiar with shell scripting, this course provides an overview of common Linux Shell Commands and shell scripting basics.
Course 6: Git and GitHub Basics
Gain the skills to work with Version Control Systems Git and GitHub. Explore key concepts, including branching and repositories; practice forking, cloning, and merging workflows and build your portfolio as your final project.
Course 7: Python Basics for Data Science
This Python course provides a beginner-friendly introduction to Python for Data Science. Practice through lab exercises, and you'll be ready to create your first Python scripts on your own!
Course 8: Python for AI & Development Project
This mini-course introduces you to the process for unit testing Python code, including building and running unit tests and packaging the Python application for distribution.
Course 9: Introduction to Containers, Kubernetes and OpenShift
This course introduces you to containers and its emerging ecosystem of related technologies such as Docker, Kubernetes, OpenShift, and Istio. You will not only understand the concepts but also practice hands-on in the cloud.
Course 10: Microservices and Serverless
Design, develop, deploy, manage and secure applications and solutions on public, private or hybrid cloud platforms
Course 11: Test and Behavior Driven Development (TDD/BDD)
This course provides the fundamentals of Test Driven Development (TDD) and Behavior Driven Development (BDD), and why it’s essential for building quality applications and preventing bugs, reducing development costs and improving performance.
Course 12: Continuous Integration and Delivery (CI/CD)
This course is an introduction to Continuous Integration and Continuous Delivery (CI/CD), a DevOps best practice to ensure code quality is achieved. It includes multiple hands-on labs using real-world tools to practice your CI/CD skills.
Course 13: Application Security for Developers
Learn to identify security vulnerabilities in applications and implement secure code practices to prevent events like data breaches and leaks. Become familiar with DevSecOps practices, and SAST for identifying security flaws.
Course 14: Monitoring and Observability for Application Developers
Monitoring & Observability are must have skills for Developers and DevOps professionals. This course provides a comprehensive overview of these concepts and teaches you the hands-on skills to employ monitoring, observability, and logging for your application.
Course 15: DevOps and Software Engineering Capstone Project
In this DevOps Capstone Project, you’ll demonstrate your skills and knowledge gained throughout this program with a real-world inspired hands-on project developing and deploying an application using CI/CD to showcase in your portfolio.
Courses
-
Please Note: Learners who successfully complete this IBM course can earn a skill badge —a detailed, verifiable and digital credential that profiles the knowledge and skills you’ve acquired in this course. Enroll to learn more, complete the course and claim your badge!
Kickstart your learning of Python for data science, as well as programming in general with this introduction to Python course. This beginner-friendly Python course will quickly take you from zero to programming in Python in a matter of hours and give you a taste of how to start working with data in Python. ~~~~
Upon its completion, you'll be able to write your own Python scripts and perform basic hands-on data analysis using our Jupyter-based lab environment. If you want to learn Python from scratch, this course is for you.
You can start creating your own data science projects and collaborating with other data scientists using IBM Watson Studio. When you sign up, you will receive free access to Watson Studio. Start now and take advantage of this platform and learn the basics of programming, machine learning, and data visualization with this introductory course.
-
Please Note: Learners who successfully complete this IBM course can earn a skill badge — a detailed, verifiable and digital credential that profiles the knowledge and skills you’ve acquired in this course. Enroll to learn more, complete the course and claim your badge!
In this course designed for beginners, You will learn how to build cloud native applications using current containerization tools and technologies such as containers, Docker, container registries, Kubernetes, OpenShift, and Istio. And also how to deploy and scale your applications in any public, private, or hybrid cloud.
By the end of the course, you’ll be able to build a container image, then deploy and scale your container on the cloud using OpenShift.
If you understand basic cloud and programming concepts, and your career path includes roles such as cloud developer, cloud architect, cloud system engineer, DevOps engineer, and cloud networking specialist, this course is for you!
-
Please Note: Learners who successfully complete this IBM course can earn a skill badge — a detailed, verifiable and digital credential that profiles the knowledge and skills you’ve acquired in this course. Enroll to learn more, complete the course and claim your badge!
The emergence of cloud computing has brought about a lot of changes to modern software development. Rather than large annual releases on physical mediums like CDs, modern software is increasingly released on the cloud, provided cost reduction, decreased time to market, and increased agility. These changes allow organizations to keep pace with their competitors and bring new innovations to market in ways that previously would have been unthinkable.
Rather than building large applications, known as monoliths, that perform all the functionality, microservices break down larger applications into smaller pieces that are independently maintainable and scalable, providing a host of benefits. This architecture is used at the largest software organizations in the world, because it provides cost benefits, team autonomy, and so many other advantages.
By the end of this course, you will
- Have a solid foundation for microservices and serverless
- Deploy microservices on the cloud
- Integrate microservices with serverless compute
This course will introduce you to 12-factor apps and microservices, concepts that emerged to help organizations work better and faster in a cloud-native manner. You’ll then learn about serverless computing—how it works, what value it brings, and what are specific serverless technologies. You’ll get hands-on with IBM Cloud Functions, a serverless platform on IBM Cloud that lets you develop serverless apps with ease. Finally, you will learn to build and deploy applications using container images on the code engine.
The course contains several hands-on labs which allow you to apply the content you learn.
The prerequisites for this course include basic computer and cloud literacy as well as an understanding of core cloud concepts. In addition, understanding of the command line and how to use shell commands will greatly benefit you during this course.
-
This mini-course provides a practical introduction to commonly used Linux / UNIX shell commands and teaches you basics of Bash shell scripting to automate a variety of tasks. The course includes both video-based lectures as well as hands-on labs to practice and apply what you learn. You will have no-charge access to a virtual Linux server that you can access through your web browser, so you don't need to download and install anything to perform the labs.
In this course you will work with general purpose commands, like id, date, uname, ps, top, echo, man; directory manageent commands such as pwd, cd, mkdir, rmdir, find, df; file management commands like cat, wget, more, head, tail, cp, mv, touch, tar, zip, unzip; access control command chmod; text processing commands - wc, grep, tr; as well as networking commands - hostname, ping, ifconfig and curl. You will create simple to intermediate shell scripts that involve Metacharacters, Quoting, Variables, Command substitution, I/O Redirection, Pipes & Filters, and Command line arguments. You will also schedule cron jobs using crontab.
This course provides essential hands-on skills for data engineers, data scientists, software developers, and cloud practitioners who want to get familiar with frequently used commands on Linux, MacOS and other Unix-like operating systems as well as get started with creating shell scripts.
-
After successfully completing this course, you will be able to embrace the Agile concepts of adaptive planning, iterative development, and continuous improvement - resulting in early deliveries and value to customers. This course will benefit anyone who wants to get started with working the Agile way. It is particularly suitable for IT practitioners such as software developers, development managers, project managers, product managers, and executives.
You will learn to apply Agile practices derived from lean manufacturing concepts, like test-driven development. Learn how a scrum team functions. Learn how to write good user stories and track your team’s progress using a kanban board. Create and refine a product backlog collaboratively with the team and the customer, in a flexible and blameless culture. This approach will lead you to higher levels of efficiency, with the ability to plan and execute sprints with your development team, measuring success with actionable metrics. This course is about more than facts and processes. It is about working collaboratively on a self-organizing team, coached by a scrum master, and building what is needed, rather than simply following a plan. Developed and taught by an experienced Agile practitioner, the course includes hands-on practice through realistic scenario-based labs using GitHub and ZenHub.
-
The DevOps Basics for Everyone course explores DevOps as a cultural movement. By thinking from a DevOps perspective, you will be able to build better products for your customer. This course provides views of DevOps from both a business perspective and as a DevOps engineer.
You will learn about building a business case for DevOps, the essentials of DevOps, and receive a brief history of DevOps. Additionally, new ways of thinking, working, organizing, and measuring to fully gain the benefits of DevOps methodologies will also be taught.
You will learn how breaking down silos and organizing developers and operators into single cross-functional teams is necessary for truly adopting DevOps. Having everyone contributing and being responsible is at the core of being successful at applying DevOps.
You will see how building a culture of shared responsibility and transparency is the foundation of every high performing DevOps team.
Exploring the key concepts of infrastructure for DevOps Continuous Integration and Continuous Delivery is taught during this course. You will be able to use actionable measures that apply directly to decision making that will ultimately result in continuous improvement.
The course wraps up with a case study of a DevOps scenario for you to test and apply your newly acquired DevOps knowledge.
-
Please Note: Learners who successfully complete this IBM course can earn a skill badge — a detailed, verifiable and digital credential that profiles the knowledge and skills you’ve acquired in this course. Enroll to learn more, complete the course and claim your badge!
In this mini-course you will demonstrate what you’ve learned in the Python Basics* course and apply your Python skills to a real-world project for your final assignment. You will be introduced to unit testing and will develop the skills needed to create functions and unit tests, run the unit tests, and package the files in a standard Python Package.
Hands-on labs provide practical application of the project work you’ll be performing in the Peer-graded Final Assignment.
At the end of this project, you will have the skills to test your Python code, build and run unit tests, and package the Python application for distribution.
PRE-REQUISITE: *Python Basics course from IBM is a pre-requisite for this project course. Please ensure before taking this course you have either completed the Python Basics course from IBM or have equivalent proficiency in working with Python and data.
NOTE: This course is designed for the learner to apply prior Python knowledge. It is not intended to teach you Python and includes minimal instructional content.
-
The demand for software engineers doubled according to the “State of Software Engineers” report by the tech specialist Hired. Nearly every industry uses software to accelerate its growth, providing a vast number of opportunities. With the importance of software engineers and the technical skillset required, it isn’t surprising that according to Indeed.com, “The good starting software engineer salary in the US is considered to be $113,211 per year. Competitive starting salaries will vary depending on location and cost of living.”
This course is suitable for anyone wanting to start in a software development related role, including those aspiring to be Software Engineers, IT Product and Project Managers, Scrum Masters, Information Developers, UI/UX Designers, QA Engineers, as well as Sales Executives, and Marketing Managers in the Tech industry. No prior programming experience or degree is required.
This course teaches you about the power of the Software Development Lifecycle (SDLC) and software development methodologies such as Agile. You will explore fundamental programming principles and foundations of design, architecture, and deployment, investigate skills that a software engineer needs and identify job opportunities with hands-on projects. You will also learn about programming basics and software development tools and stacks.
Throughout this course, you’ll hear first-hand experiences from expert software engineers to geta feel for the job and their perspectives. After completing this introductory course, you will be familiar with the software engineering tools, technologies, terminology, processes, and practices.
-
Vulnerabilities can occur at any stage of software development, making it critical for developers to write secure code and maintain a secured development environment and the platform it runs on. In this course, you will learn to identify security vulnerabilities in applications and implement secure code practices to prevent events like data breaches and leaks which can significantly impact an organization’s reputation and financial condition. This course provides a comprehensive overview of security best practices that developers should follow when developing applications. You’ll gain extensive knowledge on various practices, concepts, and processes for maintaining a secure environment, including DevSecOps practices that automate security integration across the software development lifecycle (SDLC), Static Application Security Testing (SAST) for identifying security flaws, Dynamic Analysis, and Dynamic Testing, and creating a Secure Development Environment, an ongoing process for securing a network, computing resources, and storage devices both on-premise and in the cloud. This course familiarizes you with the top Open Web Application Security Project (OWASP) application security risks such as broken access controls and SQL injections and teaches you how to prevent and mitigate these threats. This course includes multiple hands-on labs to develop and demonstrate your skills and knowledge for maintaining a secure development environment.
-
Nowadays, many organizations and individuals produce applications for their businesses. Unfortunately, these apps may be plagued by bugs, slow speeds, or poor performance. How can you know that your app is performing at an acceptable standard? Monitoring and observability are key to ensuring continuous uptime and delivery for your applications.
Application monitoring is the process by which developers can identity, measure, and evaluate how well an application is working. Monitoring allows developers to proactively watch and fix issues in application performance. Observability, on the other hand, refers to how well an application can be monitored by the data gained from monitoring. Monitoring and observability work together to provide insights into your system and keep it in working order.
This course provides a comprehensive overview of monitoring and observability. You will learn the fundamentals of monitoring, observability, and evaluation, as well as popular tools for application monitoring, such as Prometheus and Grafana. The course will also cover data visualization tools used in monitoring, like Kibana and Splunk.
The course will also cover the Three Pillars of Observability, and you will learn how to work with the OpenTelemetry framework and how to create logs with Mezmo.
Throughout this course, you will participate in multiple interactive labs to gain experience with monitoring and observability skills, as well as the popular tools mentioned above. This will provide you with hands-on experience with the tools and skills used every day by professionals.
In the final project, you’ll apply the knowledge you’ve gained to a real-world application scenario. You will be able to demonstrate your knowledge of monitoring and observability, and you will gain the confidence to perform these tasks in a practical setting.
-
Testing is one of the most critical processes of the Software Development Lifecycle (SDLC) and often contributes to preventing bugs, reducing development costs, and improving performance. Two of the best methods for testing software are Test Driven Development (TDD) and Behavior Driven Development (BDD). TDD tests individual units of code while BDD tests how these units work together.
This course introduces you to the fundamentals of both TDD and BDD, You’ll discover what automated testing is and why it is essential for building robust applications resilient to failure. You'll explore the basics of testing, including test cases, testing levels, the traditional release cycle, and the benefits, concepts and popular tools involved.
This course provides multiple real-world inspired hands-on labs to demonstrate your skills with TDD and BDD. You’ll create TDD test cases by writing test assertions and building test fixtures, and you’ll run these test cases using the Nose testing package. You’ll practice more advanced TDD methods, such as increasing code coverage, generating and using fake data, and testing mock objects. You’ll also practice setting up a BDD environment using Behave, write the feature and step files, test a web interface using Selenium, and load sample data for testing.
By the end of the course you will have the knowledge and skills to perform test driven development (TDD) and behavior driven development (BDD) testing and understand when to apply these development techniques.
-
Knowing how to work with Version Control Systems Git and GitHub are essential tools for today’s Software Developers, Data Scientists, and Data Engineers. They provide both a version control system and repository, and collaboration capabilities, allowing developers globally to share and collaborate on their projects and practice social coding.
This course provides a hands-on introduction and experience working with the popular Git and GitHub platforms. You will explore key Git concepts, such as branching and repositories, and use Git commands. And you'll also learn and practice various Git conceptssuch as forking, cloning, and merging workflows. You will learn to use GitHub to work effectively as a team and perform everyday Git operations, such as Pull Requests, from both the Web UI and command line.
This course is developed and taught by experienced IBM practitioners. You’ll gain vital skills and real-world inspired hands-on experience using Git and GitHub. Each module contains hands-on labs to apply and practice what you learn. In the final project, you will begin building your portfolio and demonstrate your Git and GitHub skills by creating and sharing a public/open- source GitHub project.
The hands-on activities in this course are performed using web-browser-based tools and interfaces. Installation of any specialized software is NOT required on your computer to complete the course.
-
Continuous Integration and Continuous Delivery (CI/CD) is a key skill that every modern day Software and DevOps Engineer should know. This course provides a practical introduction to CI/CD, an automated approach to software development. ****
Many Organizations are adopting CI/CD practices to ship software faster and more efficiently. CI/CD focuses on frequent and reliable software delivery processes using automation to ensure code quality. This practice requires automation that continuously integrates code changes and continuously delivers those changes to a production environment. ****
In this course, you’ll examine the key features of CI and practice social coding using the Git Feature Branch Workflow. You will also learn about standard CI tools and gain a deep understanding of GitHub Actions workflows and their components. You’ll also review CD and its goals, benefits, and best practices. And you will learn the requirements of a CI/CD pipeline and discover standard CD tools. ****
You will explore Tekton and discover how its components work together to create a CD pipeline. You will learn how to build a pipeline, pass parameters to a pipeline, build triggers to start pipeline runs, implement reusable tasks, and create custom tasks. For your final project, you will complete your CD pipeline by building a container image and deploying your application to an OpenShift Kubernetes cluster.
Throughout this course, you’ll demonstrate your CI/CD skills by completing several hands-on labs with real-world tools used by DevOps professionals.
-
In this Capstone course, you will apply your skills and knowledge acquired in previous courses and demonstrate your proficiency in DevOps practices. You’ll plan, develop, test, deploy, monitor, and enhance a secure microservices-based application on Cloud across several sprints, using a variety of Agile, Cloud Native, and CI/CD technologies and tools. ****
You will utilize, Agile development practices to plan for and progress your project. You will use REST APIs and Python to develop an application. You will create Docker images and orchestrate their deployment using Kubernetes and OpenShift. You will work with GitHub repositories, test your application using TDD/BDD practices, and build Continuous Integration and Deployment (CI/CD) pipelines.
Upon completing your capstone project, you’ll have applied your knowledge and skills with numerous tools and technologies and added a project to showcase in your portfolio that demonstrates your skills as a DevOps professional. It is highly recommended that before starting this course, you have completed the various courses in the IBM DevOps and Software Engineering Professional Certificate or have equivalent experience.
Taught by
Alex Parker, Upkar Lidder, John Rofrano, Rav Ahuja, Ramesh Sannareddy, Joseph Santarcangelo, Heather Nelson and Lin Joyner
Tags
Related Courses
Startup EngineeringStanford University via Coursera Developing Scalable Apps in Java
Google via Udacity Cloud Computing Concepts, Part 1
University of Illinois at Urbana-Champaign via Coursera Cloud Networking
University of Illinois at Urbana-Champaign via Coursera Cloud Computing Concepts: Part 2
University of Illinois at Urbana-Champaign via Coursera