- Linux
- Software Design and Architecture
- Python Programming
- Git and GitHub
- Software Development Lifecycle (SDLC)
- Basic programming concepts
- Careers in software engineering
- Programming languages and frameworks
- The Software Development Lifecycle (SDLC)
- Software Architecture
- Shell Script
- Bash (Unix Shell)
Applied Software Engineering Fundamentals Specialization
Build the foundation of your career in Software. Develop hands-on experience with Git, GitHub, Linux, and Python, and learn the fundamentals of Software Engineering.
Offered By


What you will learn
Describe software development and related technologies; outline approaches to deployment architectures; and summarize career options in the field.Â
Explain the role of version control and collaborative coding in SDLC & DevOps; Create GitHub repositories and use branching with Git commands.
List and execute commonly used Linux commands, utilize pipes and redirection, create simple shell scripts using BASH, schedule jobs using Cron.Â
Create, package, and deploy Python applications using knowledge of programming constructs, libraries, APIs and web services.Â
Skills you will gain
About this Specialization
Applied Learning Project
Each course is packed with hands-on labs, interactive activities, and projects so you can build your portfolio while gaining practical knowledge of software engineering concepts. You will develop software engineering skills throughout the program. Projects involve:.
- Exploring job listings to become familiar with skills and requirements in the Software Engineering domain.Â
- Using Git commands and GitHub to create an open source project while working with branches, merging code, and performing pull requests (PRs).
- Writing a Bash shell script on Linux that takes backups of changed files and schedules it to run every 24 hours using Crontab.Â
- Coding with Python using lists, tuples, dictionaries, sets, conditions, branching, loops, functions, exception handling, objects, and classes, web services & APIs, and libraries like NumPy & Pandas. Â
- Developing a Python web app that uses IBM Watson to translate languages, including writing unit tests and packaging the app for distribution.
Basic information technology and computer literacy. No prior degeree or knowledge / experience of Software Engineering is required. Â
Basic information technology and computer literacy. No prior degeree or knowledge / experience of Software Engineering is required. Â
How the Specialization Works
Take Courses
A Coursera Specialization is a series of courses that helps you master a skill. To begin, enroll in the Specialization directly, or review its courses and choose the one you'd like to start with. When you subscribe to a course that is part of a Specialization, you’re automatically subscribed to the full Specialization. It’s okay to complete just one course — you can pause your learning or end your subscription at any time. Visit your learner dashboard to track your course enrollments and your progress.
Hands-on Project
Every Specialization includes a hands-on project. You'll need to successfully finish the project(s) to complete the Specialization and earn your certificate. If the Specialization includes a separate course for the hands-on project, you'll need to finish each of the other courses before you can start it.
Earn a Certificate
When you finish every course and complete the hands-on project, you'll earn a Certificate that you can share with prospective employers and your professional network.

There are 5 Courses in this Specialization
Introduction to Software Engineering
If you are curious to learn more about the field of software engineering, this course is for you. No prior knowledge or qualification in programming or software development is necessary. Software Engineers are in great demand and now is a great time to learn more about this exciting career path.
Hands-on Introduction to Linux Commands and Shell Scripting
This course provides a practical introduction to Linux and commonly used Linux / UNIX shell commands. It teaches you the 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.
Getting Started with Git and GitHub
Collaboration and social coding are crucial parts of contemporary Software Engineering practices and the DevOps culture. In this course, you’ll be introduced to collaborative version control and popular Git platforms.
Python for Data Science, AI & Development
Kickstart your learning of Python for data science, as well as programming in general, with this beginner-friendly introduction to Python. Python is one of the world’s most popular programming languages, and there has never been greater demand for professionals with the ability to apply Python fundamentals to drive business solutions across industries.
Offered by

IBM Skills Network
IBM is the global leader in business transformation through an open hybrid cloud platform and AI, serving clients in more than 170 countries around the world. Today 47 of the Fortune 50 Companies rely on the IBM Cloud to run their business, and IBM Watson enterprise AI is hard at work in more than 30,000 engagements. IBM is also one of the world’s most vital corporate research organizations, with 28 consecutive years of patent leadership. Above all, guided by principles for trust and transparency and support for a more inclusive society, IBM is committed to being a responsible technology innovator and a force for good in the world.
Frequently Asked Questions
What is the refund policy?
Can I just enroll in a single course?
Is financial aid available?
Can I take the course for free?
Is this course really 100% online? Do I need to attend any classes in person?
How long does it take to complete the Specialization?
What background knowledge is necessary?
Do I need to take the courses in a specific order?
Will I earn university credit for completing the Specialization?
What will I be able to do upon completing the Specialization?
Do I need to know anything about Software Engineering to take this course?
Do I need to download and install any software tools to complete this course? 
More questions? Visit the Learner Help Center.