Python is an interpreted, high-level, general-purpose programming language. It is continuously gaining popularity over the last many years making it the most popular programming language.
What makes Python so popular?
There are hundreds of reasons why people love Python. The most common reasons seem to be — readability, simplicity, ease of use, vast community (growing rapidly), 3rd party libraries (such as Pandas, Numpy, Scikit-learn, etc.). You can do system programming, GUI, Numerical & Scientific programming. It can be used for Natural language analysis, visualization, image processing, machine learning. Sigh!! The list is endless.
How to become proficient in Python (or any programming language)?
- You may be learning Python for Machine Learning or Web Development or Visualization or System Programming, etc. but one needs to have sound knowledge of the fundamentals. I am not referring to Numpy, Pandas, Scikit-learn, etc. packages but the core concepts of the programming language such as data types, functions, loops, OOP (classes & objects), generators, modules & packages, etc. It is important that you learn not just how to use it but also understand how it works. This knowledge will make you proficient in any programming language.
- Other than studying or taking a course, it’s important to also Practice coding, develop personal projects, learn from passionate programmers (read blogs/discuss/ask questions/build network), write blogs about the concepts you learn.
This will help you become proficient in Python or any programming language you are interested in. Depending on one’s studying style, time availability, and other factors, it may take a few weeks to a few months to master the fundamentals of Python. However, you can learn very basic Python on a high level in just a few days and start using it.
I tried several courses and books to learn Python and personally below is a list of top resources that helped me gain a thorough understanding of Python’s core concepts. Trust me once you complete these recommended courses/books your knowledge of Python will reach a different level and you will feel confident in solving any problem.
Here go the recommendations
1. Python Deep Dive (Udemy) by Fred Baptiste
This is the best Python course on Udemy that teaches Python Deep Dive so that everybody can understand. The instructor Fred Baptiste has a Ph.D. in mathematics. He has been programming for 25 years and into Python from 2011. Fred’s teaching style and his attention to details are mind-blowing. You would gain crystal clear clarity of how things exactly work at the level of memory. I recommend this to all Python enthusiasts out there.
a) Python 3: Deep Dive (Part 1 — Functional)
Part 1 covers data types, functions, decorators, modules and packages, memory management, etc.
b) Python 3: Deep Dive (Part 2— Iteration, Generators)
Part 2 covers sequence types (such as lists, tuples), iterables and iterators, generators, context managers, co-routines, etc.
c) Python 3: Deep Dive (Part 3— Hash Maps)
Part 3 covers hash maps, dictionary & sets, ordered dictionary, 3rd party packages JSON Schema, Marshmallow, PyYaml, and Serpy 3rd party libraries, etc.
d) Python 4: Deep Dive (Part 4— OOP)
Part 4 covers OOP concepts — classes, objects, methods, bindings, inheritance, metaprogramming, etc.
2. Books by Mark Lutz
Mark Lutz is the author of the three popular books on Python — Learning Python, Programming Python, and Python Pocket Reference. Mark is in the Python community since 1992. So, it makes sense to learn from this great author who is with Python for the last 28 years.
a) Learning Python
b) Programming Python
Once you mastered the fundamentals from Learning Python this is your next book on how to use Python for building real-world applications. This book builds on the knowledge gained in Learning Python. So, my suggestion is to go through this book once you complete Learning Python or if you have intermediate skills in Python.
3. Fluent Python
This book is targeted at people who have basic/intermediate knowledge of Python. In this book, author Luciano Ramalho explains core concepts in greater detail and takes your ‘fluency’ in Python to the next level.
Thanks for reading this article so far. If you like these Python courses/books then please do share with your friends and colleagues. If you have any questions or feedback, then please drop a note.