The Art of Doing: Python Projects to Master the Fundamentals (Udemy.com)
Computer Science Through Python Application. Learn by doing.
Created by: Michael Eramo
Last updated September 2025
Our take
Based on the ratings of 1,072 students, a sample of their written reviews and the syllabus, as the course stood in September 2025. No course pays to be reviewed.
This is a project-first Python course from Michael Eramo, a high school physics and computer science teacher who taught himself to code. The syllabus shows ten sections and 158 lectures, about 40 hours in all, moving from basic data types through lists, loops, dictionaries, functions, classes, and file handling. Each section ends with a project students build themselves from a step-by-step PDF guide rather than copying code off the screen. It sits in our Introduction to Computer Science list, but make no mistake, this is a Python course. Roughly 75,000 students have enrolled, and it was refreshed in September 2025.
Reviewers rate it 4.7 from just over 1,000 ratings, and 618 of those are five stars. The praise is consistent: he teaches the why, not just the what, and the PDF guides let students work out the logic before seeing the code. One reviewer went from essentially nothing to writing programs they had no idea how to create. The complaints cluster around the later projects. The Classes section alone runs over 11 hours, and two reviewers found the final apps hard to follow or could not get them working. One two-star review says some projects did not work and no help came.
Its neighbours in that list include a Java-first AP course and one on computer design foundations, which suit people who want concepts before code; this is for people who want to build things now. The 40 hours is a real commitment, and there are no quizzes or coding exercises, so the projects are the only practice. For a beginner who learns by doing and can tolerate some struggle near the end, it is an easy recommendation.
Pros
- Step-by-step PDF guides make students work out the logic before seeing the code
- A project at the end of every section, so nothing is learned without being used
- Reviewers say Eramo explains why things work instead of just showing what to type
- Updated September 2025, with 4.7 stars across more than 1,000 ratings
Cons
- Later app projects are hard to follow and some students could not get them running
- One low-star reviewer could not get help when projects broke
- Nearly 40 hours with no quizzes or coding exercises beyond the projects themselves
One of the best teachers on Udemy. I have gone through several of his classes and he always does a great job of TEACHING and not just telling how to do something.
Marked beginner and it is; no setup beyond a browser, but the later class-based projects will stretch newcomers.
What you will learn
- Master fundamental concepts of computer science that are transferable across ALL programming languages.
- How to actually write YOUR OWN programs. You will not sit back and watch. You will DO!
- Design and implement programs using functional and object oriented programming to organize larger scale projects.
- Work with external data files such as text, JSON, and pickle files to read, process, and save data.
- Think like a programmer! Approach problem solving creatively, breaking each problem down into steps and designing solutions that come to life!
Course content
10 sections · 158 lectures · 40 hours of video
- 1Introduction 1 free preview5 lectures · 25 min
- 2Basic Data Types 1 free preview19 lectures · 3.1 hours
- 3Lists15 lectures · 2.5 hours
- 4Iteration Part 1 - For Loops 1 free preview15 lectures · 3 hours
- 5Conditional Statements 2 free previews17 lectures · 3.4 hours
- 6Dictionaries11 lectures · 2.6 hours
- 7Iteration Part II - While Loops13 lectures · 3.4 hours
- 8Functions17 lectures · 4.1 hours
- 9Classes29 lectures · 11 hours
- 10Working with Files17 lectures · 5.8 hours
Who it is for
The instructor says it suits
- Beginner programmers who are looking for an opportunity to learn though application rather than direct instruction.
- Intermediate programers who are looking to test their skills.
What you need before you start
- A working computer with internet connection and access to a web browser.
- A desire to learn!
How it compares
Against the other 388 rated Udemy courses in Python on CourseDuck:
- Rating4.7 out of 5higher than 88% of them
- Reviews1,072#179 of 389 by number of reviews
- Length39.7 hourslonger than 93% of them
- Last updatedSeptember 2025more recently than 69% of them
Course Description
Hello, my name is Michael Eramo. I am an experienced educator, life long learner, and a self-taught programmer. I hold official Bachelor's Degrees in Music Industry, Education, and Physics, a Master's Degree in Mathematical Science, and a certificate in Software Development from Microsoft. While I owe my extensive knowledge base in Music, Physics, Mathematics, and Education to the many great educators I have worked with, my understanding of Computer Science is all my own.
I have never taken an "official" computer science course; I am completely self-taught. However, do not let that deter you from taking this course! Instead, let it motivate you that you too can learn anything you want to. Not only have I done it, but I've come to realize what works best for the self-taught programmer, and I have perfected the process!
See, I had this deep fear right after my son was born that I was done growing as an individual; that the person I was at 30 was going to be the same person I was at 55. I felt that there was literally ZERO time in the day to do anything other than go to work and be a dad. That is, until I bought a book on Computer Science, and a sense of wonder was woken. I've read countless books, watched hundreds of videos, and put in thousands of hours exploring and writing code. I would routinely wake up at 3:00 AM to learn for a few hours before I had to go to my full time job, teaching high school, before I went to my part time job of teaching college. Days were long, but getting up at 3:00 AM to read, to learn, or to code benefited me more than a few extra hours of sleep. It helped me realize that I was never done learning; never done growing. To me, that is what defines a life long learner.
I have years of classroom experience as a high school Physics teacher, Computer Science teacher, and college Mathematics professor. I am part of the New York State Master Teacher Program; a network of more than 800 outstanding public school teachers throughout the state who share a passion for their own STEM learning and for collaborating with colleagues to inspire the next generation of STEM leaders. Most importantly, I know what motivates people to learn on their own; to find a way to create time to learn, when there is no time to be had. I understand that time is valuable and that all learning should be engaging, meaningful, and have purpose.
Combining my expertise as an educator and my own personal interest in self-taught computer science led me to a telling realization; most educational material for the self-taught programmer is NOT EDUCATIONAL AT ALL. Instead, it falls into one of two categories:
Writing small "snippets" of programs that taken out of context, seem to serve no purpose at all and frankly, are beneath the user. Prime examples include using a for loop to print out all even numbers from 1 to 100 or using if statements to respond to generic user input. Here, users are bored and aren't challenge to create anything with meaning. There is little purpose other than gaining what is essentially factual level knowledge. It is a waste of your time.
Watching others code whole "applications" without a true understanding of what is going on. These are programs whose scope is beyond the user in which there is no clear guide to walk the user through the thought process without just giving them the answers. Here, without proper support and guidance, the user just defaults to letting someone else unfold the solution for them. There is little engagement in watching someone else work and rarely a thought generated on one's own. It is a waste of time.
Yes, I will admit that some learning does take place in doing simple tasks or watching others complete complicated tasks. In fact, much of how I learned was done this way. However, I'm telling you it pales in comparison to the learning that takes place by DOING meaningful and appropriately challenging work. This is the art of doing.
The art of doing is the art form of transforming oneself from a passive learner who watches, to one who sees the process of learning for what it truly is; a mechanism to better oneself. In "The Art of Doing", I have worked very hard to put together 40 meaningful, engaging, and purposeful "Challenge Problems" for you to solve.
Each challenge problem is differentiated for 3 levels of learning.
First, you are given a description of the program you are to create and example output. This allows users an opportunity to solve well defined problems that are meaningful and appropriate in scope. Here, all of the solution is user generated. It is engaged learning.
Second, you are given a comprehensive guide that will assist you in thought process needed to successfully code your program. This allows users appropriate assistance that tests their knowledge and forces them to generate the thoughts needed to solve the given problem. It is meaningful learning.
Third, you are given completed code, with comments, to highlight how to accomplish the end goal. This allows users to reference a working version of the program if they are stuck and cannot solve a portion of the problem without assistance. Rather than grow frustrated, the user can quickly reference this code to gain intellectual footing, and work back to solving the problem on their own. It is purposeful learning.
Engaging, meaningful, and with purpose. These challenge problems are vehicles that not only teach computer science, but teach you the art of doing. I guarantee that after completing them all you will consider yourself a life long learner and be proud to call yourself a self-taught programmer.
Instructor Details
- 4.7 Rating
1,072 Reviews
Michael Eramo
Hello, my name is Michael Eramo. I am a life long learner, a self-taught programmer, and an experienced educator. I hold official Bachelor's degrees in Music, Education, and Physics, as well as a Masters degree in Mathematics. I also hold a certificate in Software Development from Microsoft.
I have years of experience as a high school Physics teacher, Computer Science Teacher, and college Mathematics teacher. I am part of the New York State Master Teacher Program a network of more than 800 outstanding public school teachers throughout the state who share a passion for their own STEM learning and for collaborating with colleagues to inspire the next generation of STEM leaders.
I am passionate about learning new things and teaching what I know to those around me in a way that is engaging, meaningful, and with purpose.
More courses by Michael Eramo
The Art of Doing: Video Game Creation With Python and Pygame (2021)
4.6 (837 Reviews)
Provider: Udemy
Time: 17.3h
$74.99
The Art of Doing: Electronics for Everyone (2022)
4.8 (343 Reviews)
Provider: Udemy
Time: 11.6h
$10.99
The Art of Doing: Dive Into Android Development with Kotlin (2022)
4.7 (191 Reviews)
Provider: Udemy
Time: 17.2h
$64.99
The Art of Doing: Python Network Applications with Sockets! (2022)
4.8 (139 Reviews)
Provider: Udemy
Time: 14.5h
$64.99
More Python courses
Python 3: Deep Dive (Part 1 - Functional) (2024)
4.9 (13,534 Reviews)
Provider: Udemy
Time: 45.8h
$22.99
Python 3: Deep Dive (Part 3 - Dictionaries, Sets, JSON) (2023)
4.9 (1,996 Reviews)
Provider: Udemy
Time: 21.9h
$17.99
Programming for Everybody (Getting Started with Python)
4.9 (717 Reviews)
Provider: Coursera
Time: 12h
Free
An Introduction to Interactive Programming in Python (2013)
4.9 (554 Reviews)
Provider: Coursera
Time: 6h 40m
Free
Python: Python Programming Language | Tutorial | Beginner (2023)
4.9 (239 Reviews)
Provider: Udemy
Time: 5.1h
$19.99
An Introduction to Interactive Programming in Python (Part 2)
4.9 (225 Reviews)
Provider: Coursera
Time: 25h
Free
Reviews
By Aduragbemi Kinoshi on 10/27/2021
The Art of Doing is quite an interesting course for beginners and intermediate python developers. The course challenges you at the end of every section, it engages your mind and your thinking faculty which is what a programmer needs to do when working on any problem. Thanks mike, keep up the good work
By Joseph Bowles on 7/27/2021
I have been able to go from essentially nothing to being able to create programs I had no idea how to create. The structure of this course and resources given were really helpful to help me along while still making me learn and push myself. Towards the end of the course it starts to become a bit freer as you aren't necessarily going to have a program identical to the courses. But you can use the instructions to help you along with ideas when you get stuck. Great course
By Rajiv Boolell on 2/16/2021
Excellent delivery bad coding. If you already code , I would highly suggest you do not take that course. Not because the explanations are bad(far from it). It's just that the solutions he proposes to his projects are inefficient and frustrating. In my honest opinion,this course is really geared toward complete beginners who do not know any programming languages. [Edit : I reviewed my rating of this course after my colleague who is taking it along with me pointed out the instructor was a self learner - however I stand by my above criticism. This course has so much potential but it falls short due to the coding. I hope the instructor will take the time to review his course at one point or the other. Perhaps collaborate with software dev with more experience in coding with python for a living]
By Facundo Baez on 10/27/2020
Excelente de principio a fin. No puedo hacer mas enfasis en lo BIEN que explica este señor, lo detallado que es a la hora escribir un codigo y lo satisfactorio que es aprender este lenguaje gracias a sus lecciones. Si tenes dudas? no las tengas, compralo. From top to bottom, top notch contents. You cannot go wrong buying this. You will learn in such a good way, that knowledge, really gets into you. If you're hesitating, please don't... worth every penny.
By Martín Vilanoba on 8/22/2020
Michael's explanations are really easy to follow and the exercises help you to understand the different concepts seen in class. The step by step guide and the final code for each challenge are a lifeguard when you don't know why your code isn't working. I learned a lot of Python and programming in general with this course, I totally recommend it!
By Agni Noor Muhammad on 8/2/2020
thank you very much for this course, I have a lot of fun doing all the course. Hope you well and safe, Mike! It is a very coincidence that in the last challenge we make a GUI of Epidemic Outbreak which is happening in the world right now!
By Philip Dunn on 6/10/2020
I've just finished this course and I must say it was very enjoyable, the pacing is fantastic and the amount of work done on each module really drills home the fundamental theory required. The challenge problems really can be challenging and I urge anyone who is looking to get this course to try them and try them on your own before watching the videos, give yourself some time and have a think of how you can conquer the challenge at hand. The PDF is also a great tool to help guide you before you complete a challenge. This is my 1st Udemy course, and it was great. My first experience with Python was working through a book but by the end of it it just seems to be feeding dribs and drabs of code and not really giving me a good understanding of what I was doing. If anyone is looking to learn Python from a beginner level I'd urge them to take this course!
By Sarvesh Joshi on 5/31/2020
This was probably the best python course I ever took. It had everything in it like the example problems, the explanation and the e-book "The Art of Doing" which was there in the course was very informative. The instructor Michael Eramo explains everything in the best possible way.
By Muhammad Zeeshan on 5/5/2020
Personally It is an amazing course.I have been trying to learn Python for couple of months but all those tutorial videos were just not enough to truly understand the concept but Micheal has done an outstanding job by bringing those real Apps in the course.Thank you Micheal very much for this amazing course
By Matthew on 4/24/2020
really solid course. mr. eramo is fantastic. I ran across some real-life application errors in the answer key's code so I would make amends to that ie I don't believe the heal function will work on the gui app when the infection duration is 1 ie the blackjack app should count ties as wins for the dealer
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 94 / 100







