The Python programming language has been around for a long time now and given the powerful language that it is, it shouldn't be a surprise for it to continue having a strong foothold for years to come. Python's extensibile frameworks and rich set of libraries make it a top language across various fields such as data science, machine learning, and web development, to name a few.
Students and professionals are using it alike to tackle day-to-day problems as well as implement large-scale solutions. Due to the language's industry-wide reach, Python is a must-have skill on any developer's portfolio. Those who are already using Python need to keep up with the new trends and beginners too would like to enter the world of Python sooner or later. And the easiest way to start learning Python is to refer to the plethora of reference material available online.
Once you've familiarized yourself with the basics of Python, you may want to go through some of the online courses to learn the nooks and corners of the language. I personally suggest online courses for beginners as they provide the flexibility to learn things at their own pace and can focus more on the areas of their interest. While there are hundreds of Python courses out there, very few of them cover the vastness of language from beginner level to advanced. If you're looking for one such course, Complete Python Bootcamp: Go from zero to hero in Python 3 on Udemy could be a good fit. In this article I am going to put together my thoughts about this course including its positive aspects and certain areas where the course could be improved further.
It's always a good idea to have a look at the instructor's profile before deciding upon a course. The course instructor Jose Portilla has a solid engineering background with BS and MS in degrees Mechanical Engineering. Working as an analyst currently, he has tons of experience as an instructor in the fields of Data Science and programming. A researcher at heart, Jose has multiple patents in the core areas and heading the Data Science division at Pierian Data Inc. as of now. Having tutored more than 500K students to date, he has published 15 courses so far and gathered 134K reviews on a reputable online tutoring platform Udemy.
He also has other courses on Udemy such as:
- Data Science Career Guide - Interview Preparation
- Python for Data Structures, Algorithms, and Interviews
- Scala and Spark for Big Data and Machine Learning
The overall duration of course lectures is approximately 24 hours, comprising of 185 lectures. More than 307K students (at the time of this writing) have already taken the course which speaks volumes about the credibility of the instructor and the course contents. The course assumes the target audience at a beginner level and covers concepts right from the basics. Advanced learners can either brush up their basics or skip through to jump to the area of their interest.
And as the continuous learning can get a bit boring, there are tests which keep a check on your progress from time to time. Also, at each milestone of the course, you get to implement your own Python project!
To keep the learning interactive, the instructor tries to keep the course as practical as possible to get a detailed idea about the concept being covered. Moreover, the learners have a choice of going with the environment they're comfortable with. The course covers most of the major platforms, including Windows, Linux and MacOS.
Being a technical person myself, the thing I liked about the course is that it doesn't just focus on the features of the Python programming language. The instructor dives in to object-oriented programming and advanced concepts like collection modules and decorators. So, while the beginners are having fun creating games like Blackjack and Tic-Tac-Toe, the advanced learners get to learn more about how powerful the language is and how to use it optimally.
The course notebooks are maintained in the Jupyter notebook format in the GitHub project, hence getting to know the Jupyter system is an additional learning from the course.
In this section, we'll take a look at some of the topics being covered as a part of this course:
The course begins with a general introduction to Python and its features. The instructor lists advantages and some of the drawbacks of the language to emphasize its growing importance across various fields. The lecture also compares Python version 2 with version 3, as the course focuses on the latter. For those who are interested, Python version 2 notes are also available with the course material for reference.
The instructor takes his time to lay the foundation for the learners to prepare themselves up for the upcoming sessions. He walks through various development environments and text editors and lets the users decide upon their preferred choice. The lecture then helps the learners install Python, step-by-step, onto their systems. The instructor explains the environment in detail to make users as comfortable as possible. Due to its widespread nature and ease of use, the instructor has chosen the Anaconda Python framework and Sublime text editor for this course.
To start using a language, you ought to know its basic building blocks i.e. data types. The course covers Python data types in a fair amount of detail to let the learners get going with hands-on Python programming experience.
Operators, Statements, and Functions
Programming is about data and the operations that are performed on the same. So, once learners can understand the data types, they need to learn about Python constructs to perform various operations on the data being stored. These operations could be arithmetic, logical, or relational, depending upon the programmer's requirement.
OOP and Exceptions
Python is an object-oriented language, and in order to understand the way it implements the programming paradigm the learners need to understand some concepts first. Which is exactly what's done in this section of the course. Classes, objects, exception handling, and other OOP concepts are explained in a fair amount of detail, with their usage in the context of Python programming.
A programmer hasn't mastered the art of programming until a confidence level is achieved in debugging the code written! Jose, being a hardcore programmer, knows this well and gives debugging a due importance as a part of this course. From basic code steps through complex troubleshooting, he leaves no stones unturned. An important lecture for beginners and advanced learners alike.
Modules and Packages
The power of Python lies in the tons of libraries it supports for various real-world problems a user may want to solve. To make use of these libraries, the course covers Python modules as well as packages in a fair amount of detail.
Decorators and Generators
These advanced concepts are targeted more towards intermediate and expert learners. Beginners too can learn these concepts to make most of their learning of the Python language.
Throughout the course, the instructors keep the learners engaged with quizzes and tests to periodically gauge their understanding. After each milestone, a project is to be implemented by the students, which will help them use the concepts they've learned practically.
As the target audience includes advanced users as well, the course offers advanced data structures as well as modules in the course content. Along with these concepts, the course also highlights the best practices to make optimal usage of Python constructs.
All in all, a fair attempt to cover most of the Python concepts given the duration of course. Jose knows his stuff and explains in detail how each line of code works, what could be the possible failures, and so on. I appreciate the way he does justice to the language as well as catering to the various levels of expertise to introduce them to the fascinating world of Python!
Having looked at the course contents, I would like to take a moment to highlight some more features of the course here.
- The length of the course is adequate to touch upon most of the Python constructs.
- This course has a 4.7 star weighted average rating, which is terrific considering over 65,000 people have rated this course.
- The cost of the course varies depending on Udemy discounts, which are quite frequent. Once the course is completed, bonus coupons are available for other courses offered by same instructor.
- Jupyter notebook framework enables learners to maintain their own set of notes during the course for easy understanding. There also exists a built-in exercise editor for in place editing of the course contents as per learner's understanding.
- The course offers a certificate after successful completion which would indicate successful completion of the course along with the required quizzes and milestone projects. This would certainly add value to any job seeker's resume!
- The course is among the bestsellers of Udemy courses with a very impressive rating.
- FAQ section at the end of each topic covers queries typically encountered, hence avoiding the hassle for learners to look for the answers elsewhere.
- Bookmarks created by earlier learners throughout the duration of the course are quite useful for advanced learners to skip through the basics and jump to the points of their interest directly.
Suffice to say, the course not only helps learners with the understanding of Python, but also boosts their confidence to successfully use the language to solve real world problems.
Let's have a look at some of the positives of the course which stood out:
- When 300K+ students have already taken the course, there's plenty of interaction history in the chatrooms already. What's even more useful is students can chat across courses, which enables the enthusiasts to interact and share their knowledge. So, the course along with its contents offers a healthy environment where people from different backgrounds can collaborate to propagate their ideas!
- The course material is frequently reviewed by creators for upcoming versions or error corrections. A slight error in one of the multiply questions was recently fixed in the notebooks and learners were notified accordingly!
- There are optional bonus courses for curious folks to enhance their understanding about additional utilities not directly related to the course but may help in other aspects. These topics include git version control management system and certain Python GUI concepts.
As for everything, there are certain areas of the course which, if improved, would make the course even better:
- The course tries to cover most of the Python features, hence covering the breadth of the language. However, due to the length of the course, some of the concepts like strings are not covered in as much depth as they could have been. Some beginners also put up in their reviews that initially, it was a bit difficult for them to catch up with the pace of the course or to try to handle the difficulty level of the milestone projects.
- As the course tries to ramp up the students from the basics of the language, the title 'zero to hero' makes more sense to the beginner/intermediate level learners. Topics offered to advanced folks are limited in number (like decorators, generators, and GUI). Hence, they might not be able to deep dive into the topics of their interests. To be fair to the instructor, that's a tradeoff which must be made to keep duration of the course in check.
- The quizzes, though helpful to gauge the learner's understanding of the course material, are quite straight forward. While I understand that the course was designed keeping in mind the target audience as beginners, I feel quizzes should be more challenging to push the learner's more about their understanding.
To summarize, the Complete Python Bootcamp: Go from zero to hero in Python 3 provides very good learning for enthusiasts at various levels of Python expertise. And while some improvements are needed, the overall course content is of high quality and tries to cover the Python concepts in a comprehensive manner. I would surely encourage folks willing to learn Python to have a look at this course while deciding upon their path to learn Python!