We may earn an affiliate commission when you visit our partners.
Yasser Abbass

Python is the fastest-growing programming language in the industry, and among the most popular programming languages in the world.

It's not a hard language for beginners to pick up and for intermediate or advanced programmers to advance, which is why the need to learn this language has increased exponentially over the past few years.

Mastering python - From Scratch is designed as a journey that will take you from installing the programs to learning the fundamentals of python and gradually applying the most advanced techniques to develop some of the most advanced real-life applications.

Read more

Python is the fastest-growing programming language in the industry, and among the most popular programming languages in the world.

It's not a hard language for beginners to pick up and for intermediate or advanced programmers to advance, which is why the need to learn this language has increased exponentially over the past few years.

Mastering python - From Scratch is designed as a journey that will take you from installing the programs to learning the fundamentals of python and gradually applying the most advanced techniques to develop some of the most advanced real-life applications.

Whether you are a beginner with no knowledge in python or programming, or if you're an experienced programmer in a different programming language, or even if you're an experienced python programmer,

this course will give you the basics and move forward to the more challenging applications in Python to help you broaden your horizons in Python, or if you'd want to expand your career opportunities.

My name is Yasser Abbass. I'm a software engineer and I will be your instructor for this course

I have been in programming for the past 30 years and specifically in python for the past decade.

  • Mohammad: "Yasser is by far one of the best instructors I had opportunity to learn from. I highly recommend this course for any beginner. Every Topic is in depth. Many Projects and Practices. Thank you so much Yasser. "

The course is divided into four sections, each including several lectures. with each lecture, you will find some exercises and each section has one or more projects that will make sure that you applied what you have learned. we will be building 10 projects with varying levels of difficulty.

Some of the projects we will be building together are:

- Text to Speech.

- Guessing Number project.

- Converter project.

- Web Monitoring.

- System Health.

- Backup Script project.

- A student course management system.

- A bookstore management system.

- A File backup program that will be converted to a desktop application.

- A full bookstore web app.

But don't worry you will be able to create those projects and more as you follow along with the course and with the skills you learned you will be able to apply it to your projects. You will also be able to download all the source code for all the lectures and the projects.

During this course, you will learn:

- How to install the software on Windows, Mac, and Linux.

- An introduction to Jupiter-lab.

- Data types, Conditional logic, looping, and collections.

- Functions, modules, and built-in functions.

- How to handle files.

- How to interact with the file-system.

- Date-time, web communication, exception handling, and JSON.

- How to send emails through python.

- Object-oriented programming.

- How to use MongoDB from python.

- How to create databases with full CRUD operations

- Advanced python built-in functions.

- Iterators generators and decorators.

- Logging.

- Concurrency, threading multiprocessing, and Asyncio.

- How to create a GUI for python with PySimpleGUI.

- How to create a desktop application with PyInstaller.

- How to create professional web apps with flask.

  • Vikash: "Trust me, this is everything you will be needing."

Finally, if you are stuck you can drop a question in the Q&A, and I or one of my teaching assistants will answer you promptly

Enroll now

What's inside

Syllabus

Introduction and Basics
Course Contents
Tools installation (intro)
Tools Installation in Windows
Read more
Tools Installation in mac OS
Tools Installation in Linux
Working with Jupyter
Python data types (intro)
Python data types (Numbers) - part-1
Python data types (Numbers) - part-2
Python data types (Numbers) - part-3
Python data types (Numbers)
Python data types (Strings) - part-1
Python data types (Strings) - part-2
Python data types (Strings) - part-3
Python data types (Strings) - part-4
Python data types (Strings) - part-5
Python data types (Strings) - part-6
Python data types (Strings)
Type conversion
Conditional Logic - part-1
Conditional Logic - part-2
Conditional Logic
Looping - part-1
Looping - part-2
Looping - part-3
Looping - part-4
Looping
Collections (Lists) - part-1
Collections (Lists) - part-2
Collections (Lists) - part-3
Collections (Lists) - part-4
Collections (Lists)
Collections (dicts, tuples, sets) - part-1
Collections (dicts, tuples, sets) - part-2
Collections (dicts, tuples, sets) - part-3
Collections (dicts, tuples, sets) - part-4
Collections (dicts, tuples, sets)
Functions - part-1
Functions - part-2
Functions - part-3
Functions - part-4
Functions
Modules - part-1
Modules - part-2
Modules - part-3
Modules
Built-in functions - part-1
Built-in functions - part-2
Built-in functions
Introduction to Pycharm - part-1
Introduction to Pycharm - part-2
Download Source Code
TTS Project (Overview)
TTS Project part-1
TTS Project part-2
TTS Project part-3
Guess Project (Overview)
Guess Project - part-1
Guess Project - part-2
Guess Project - part-3
Converter Project (Overview)
Converter Project - part-1
Converter Project - part-2
Converter Project - part-3
Converter Project - part-4
Converter Project - part-5
Converter Project - part-6
Interacting with filesystem
File Handling - part-1
File Handling - part-2
File Handling - part-3
File Handling - part-4
File Handling - part-5
File Handling
Interacting with file-system - part-1
Interacting with file-system - part-2
Interacting with file-system - part-3
Interacting with file-system - part-4
Interacting with file-system - part-5
Interacting with file-system
Datetime - part-1
Datetime - part-2
Datetime - part-3
Datetime - part-4
Datetime
Web Communications - part-1
Web Communications - part-2
Web Communications - part-3
Web Communications - part-4
Web Communications - part-5
Web Communications
Exception Handling - part-1
Exception Handling - part-2
Exception Handling
JSON - part-1
JSON - part-2
JSON
OS SYS EMAIL (intro)

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Begins with installing the software on Windows, Mac, and Linux, which is helpful for those new to Python development and may not know how to set up their environment
Includes several lectures with exercises and projects in each section, ensuring learners apply what they've learned and build a portfolio of real-life applications
Covers advanced Python concepts like iterators, generators, decorators, concurrency, threading, multiprocessing, and Asyncio, which are essential for building high-performance applications
Teaches how to create GUI applications with PySimpleGUI and desktop applications with PyInstaller, which are valuable skills for building user-friendly software
Explores creating professional web apps with Flask, which is a popular Python web framework used for building scalable and maintainable web applications
Includes interacting with MongoDB and creating databases with full CRUD operations, which are essential skills for working with data in Python applications

Save this course

Save Mastering python - From Scratch to your list so you can find it easily later:
Save

Reviews summary

Python from scratch to advanced projects

Based on the course description and syllabus, this course aims to take learners from absolute beginners in Python to building advanced real-life applications. It promises comprehensive coverage of Python fundamentals, moving into topics like Object-Oriented Programming, concurrency, databases, and building both web apps (with Flask) and desktop applications (with PySimpleGUI). A key feature highlighted is the development of 10 diverse projects throughout the course to reinforce learning. The instructor is presented as highly experienced.
Taught by a seasoned professional
"The instructor, Yasser Abbass, states he has been in programming for '30 years' and specifically in python for 'the past decade'."
"An included quote describes Yasser as 'one of the best instructors' and recommends the course for beginners."
Aims to start from scratch
"The title includes 'From Scratch', suggesting it is designed for newcomers."
"The description explicitly states, 'Whether you are a beginner with no knowledge in python... this course will give you the basics'."
Covers basics through advanced topics
"The course description mentions covering 'the fundamentals of python and gradually applying the most advanced techniques'."
"Syllabus includes topics from 'Data types' and 'Looping' to 'Concurrency' and 'Object-oriented programming'."
"It intends to take learners from 'no knowledge' to 'more challenging applications in Python'."
Focus on building real-life applications
"The course promises building '10 projects with varying levels of difficulty'."
"Examples include 'Web Monitoring', 'System Health', 'Backup Script', and 'A full bookstore web app'."
"Projects are designed to 'make sure that you applied what you have learned'."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Mastering python - From Scratch with these activities:
Review Basic Programming Concepts
Reviewing fundamental programming concepts will help you grasp Python's syntax and structure more easily.
Browse courses on Variables
Show steps
  • Review notes from previous programming courses or tutorials.
  • Complete online quizzes or coding challenges on basic programming concepts.
  • Write simple programs to practice using variables, loops, and functions.
Review "Python Crash Course, 2nd Edition: A Hands-On, Project-Based Introduction to Programming"
Reviewing this book will provide a solid foundation in Python programming with a focus on practical projects.
Show steps
  • Read the book cover to cover, paying close attention to the code examples.
  • Complete the exercises and projects at the end of each chapter.
  • Experiment with the code examples and try to modify them to create your own variations.
Practice Python Data Structures and Algorithms
Practicing data structures and algorithms in Python will solidify your understanding of how to use them effectively.
Show steps
  • Solve coding problems on LeetCode or HackerRank using Python.
  • Implement common data structures like linked lists, stacks, and queues in Python.
  • Practice implementing sorting and searching algorithms in Python.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Build a Simple Command-Line Application
Building a command-line application will give you practical experience applying Python concepts to solve a real-world problem.
Show steps
  • Choose a simple task, such as a to-do list manager or a basic calculator.
  • Design the application's functionality and user interface.
  • Write the Python code to implement the application.
  • Test and debug the application.
Create a Python Cheat Sheet
Creating a cheat sheet will help you consolidate your knowledge of Python syntax and commonly used functions.
Show steps
  • Identify the most important Python concepts and syntax elements.
  • Organize the information into a clear and concise format.
  • Include examples of how to use each concept or function.
Follow Advanced Python Tutorials
Following advanced tutorials will expose you to more complex Python concepts and techniques.
Show steps
  • Find tutorials on topics such as decorators, generators, or metaclasses.
  • Work through the tutorials step-by-step, experimenting with the code examples.
  • Try to apply the concepts learned in the tutorials to your own projects.
Contribute to a Python Open Source Project
Contributing to open source will give you valuable experience working on a real-world Python project and collaborating with other developers.
Show steps
  • Find a Python open source project that interests you.
  • Read the project's documentation and contribution guidelines.
  • Identify a bug or feature that you can work on.
  • Submit a pull request with your changes.

Career center

Learners who complete Mastering python - From Scratch will develop knowledge and skills that may be useful to these careers:
Python Developer
A Python developer specializes in building applications and solutions using the Python programming language. Mastering Python - From Scratch is designed to take you from a beginner to an advanced Python programmer. This course will equip you with the necessary skills to develop a wide range of applications. The course's hands-on projects, such as building a student course management system and a bookstore web app, enable you to practice and refine your Python development skills.
Software Engineer
A software engineer designs, develops, tests, and maintains software applications. Mastering Python - From Scratch helps build a foundation in Python, a versatile and widely used programming language for software development. The course covers essential concepts like data types, conditional logic, looping, functions, and object-oriented programming. The hands-on projects, such as building a student course management system and a full bookstore web application, provide practical experience in developing real-world applications. This course offers a comprehensive introduction to Python for aspiring software engineers.
Software Developer
A software developer creates and maintains software applications. Mastering Python - From Scratch helps build a foundation in Python programming, which is widely used in software development. You will learn about data types, conditional logic, looping, functions, modules, and object-oriented programming. Through this course, you will acquire the fundamental knowledge and skills needed to design, develop, and test software applications using Python.
Machine Learning Engineer
A machine learning engineer develops and deploys machine learning models. Mastering Python - From Scratch helps build a foundation in Python, which is the primary language for machine learning. This course's coverage of data types, functions, modules, and object-oriented programming is essential for building machine learning models. A machine learning engineer will want to use this course to learn to apply Python to solve complex problems in artificial intelligence.
Data Scientist
A data scientist analyzes large datasets to extract meaningful insights and solve complex problems. Mastering Python - From Scratch helps build a foundation in Python, a core tool for data manipulation, analysis, and visualization. Through this course, learners will gain proficiency in using Python libraries for data science, such as handling files, managing data, and creating databases. The course's coverage of data types, collections, and modules are particularly valuable. A data scientist armed with Python skills will be well-equipped to tackle diverse data-driven challenges.
Web Developer
A web developer builds and maintains websites and web applications. Mastering Python - From Scratch is relevant to web development, because it introduces the Flask framework for creating professional web applications. This course also covers web communications, and interacting with file systems. You will learn to build a full bookstore web app. Learning Python is a valuable asset for any web developer, and this course provides a project-based approach to learning the language.
Full-Stack Developer
A full stack developer works on both the front-end and back-end aspects of web applications. Mastering Python - From Scratch helps build a foundation in Python, a popular language for back-end development, along with Flask for web apps. The course covers various aspects of web development, including front-end technologies, back-end logic, and database interactions. Through this course, you will gain the breadth of knowledge and skills needed to work on both the client-side and server-side of web applications.
Automation Engineer
An automation engineer designs, develops, and implements automated systems and processes. Mastering Python - From Scratch helps build a foundation in scripting and programming, which are essential for automating tasks and workflows. The course covers file handling, web communication, and interacting with the file system, which are valuable for automating system administration tasks. The projects in this course, such as the backup script project and system health monitoring, demonstrate how Python can be used to automate real-world tasks. An automation engineer will find this course useful for enhancing their scripting skills.
Database Administrator
A database administrator (DBA) manages and maintains databases, ensuring their availability, security, and performance. Mastering Python - From Scratch helps build a foundation in interacting with databases using Python. The course covers how to create databases with full create, read, update, and delete operations, as well as how to use MongoDB from Python. These skills are essential for a DBA to automate database management tasks, monitor database performance, and develop custom database applications.
DevOps Engineer
A DevOps engineer focuses on streamlining the software development lifecycle, from coding to deployment and operations. Mastering Python - From Scratch may be useful because it helps build a foundation in Python scripting and automation. The course's coverage of system health, and file backup are particularly relevant. A DevOps engineer armed with Python skills can automate infrastructure management, configuration, and deployment processes, leading to faster and more reliable software releases.
Backend Developer
A backend developer focuses on the server-side logic and database interactions of web applications. Mastering Python - From Scratch may teach you how to develop robust and scalable backends using Python frameworks like Flask. This course helps build a foundation in file handling, web communication, database interactions, and API development, all of which are essential for building efficient and reliable backend systems. In particular, the section about creating web apps with Flask applies to this role.
System Administrator
A system administrator manages and maintains computer systems and servers, ensuring their smooth operation and security. Mastering Python - From Scratch may be useful because it helps build a foundation in Python scripting, which can automate system administration tasks. Topics such as interacting with the file system, date-time management, and exception handling are particularly relevant. You can leverage Python's capabilities to automate tasks, monitor system health, and manage system resources.
Data Analyst
A data analyst examines data to identify trends, patterns, and insights that can help organizations make better decisions. Mastering Python - From Scratch may be useful because it helps build a foundation in Python, a powerful tool for data manipulation, analysis, and visualization. The course covers essential concepts like data types, collections, file handling, and modules, which are all relevant to data analysis tasks. The course will allow a data analyst to leverage Python's capabilities to extract meaningful information from data.
Quality Assurance Engineer
A quality assurance engineer ensures that software products meet quality standards through testing and validation. Mastering Python - From Scratch may be useful because it helps build a foundation in Python scripting, which can be valuable for automating testing processes and creating test scripts. The course's coverage of conditional logic, looping, and file handling can be applied to writing effective test cases and generating test reports. A quality assurance engineer will find this course helpful for enhancing their automation skills.
Game Developer
A game developer creates video games for various platforms. Mastering Python - From Scratch may be useful, because it helps build a foundation in Python, which can be used with game development libraries. The course's coverage of data types, conditional logic, looping, and functions can be valuable for implementing game logic and creating interactive experiences. With this course, a game developer can use Python to build 2D games and automate game development tasks.

Reading list

We've selected one books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Mastering python - From Scratch.
Provides a solid foundation in Python programming with a focus on practical projects. It's excellent for beginners and those looking to reinforce their understanding of core concepts. The project-based approach allows you to apply your knowledge and build real-world applications. This book is commonly used as a textbook at academic institutions.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser