New to Python? Or are you already a seasoned developer looking to boost and advance your Python knowledge? We have compiled a bull-pack of recommended resources for anyone looking to learn Python Programming. We have tailored these resources to be suitable for Python developers of all levels but the resources listed will be most-applicable to those still early on the learning curve or already familiar with the basics but not really advanced.
The Learning Pathway
First, let us explore the ideal Python Pathway — what is your path from beginner to advanced and what career focus areas are available with Python.
- Learn Python Fundamentals: As with any language, first, you need to grasp the basics, from Python syntax to the Python PEP-8 conventions and know how to use the language. Here you will explore variables, expressions, operators, conditionals, loops, and Python data structures. After learning Python fundamentals, you should be set to start practicing with mini scripting projects.
- Become Advanced with Python: Here you will now seek to add utility to your Python knowledge by learning how Python interacts with Web Data (Web Scraping ability is one of the biggest outcomes here), how to use Python for Object-Oriented Programming, and finally how to integrate Python with Databases (SQL Databases, NoSQL Databases, and APIs)
- Focus on a Career Pathway: Now, you are already advanced in the language and it is time to explore and focus on a career pathway. This will involve delving into Python libraries and frameworks that are specific to a particular career path. Here are some of the common pathways for Python Developers and some of their corresponding libraries/frameworks:
- Web Development — Django and Flask Frameworks are the most popular for web development tasks and projects with Python
- Data Science — Learn how to conduct Data Sourcing, Data Analysis and Machine Learning (ML) with Python. Libraries to learn include: Numpy, Matplotlib, Pandas, SciPy and SciKit Learn for ML among others.
- Machine Learning and Artificial Intelligence — A popular career pathway as Artificial Intelligence keep gaining ground in our day-to-day lives. Some top libraries to learn are SciKit Learn, Tensorflow, Keras, Natural Language Toolkit (NLTK), PyTorch, Theano, etc.
- Graphical User Interface (GUI) Programming — With GUI libraries such as Tkinter, wxPython, PyQT, and Kivy you can create graphical applications with Python.
- Game Development — While not so many developers end up in Game Development, it is probably one of the most interesting pathways to explore. To build games, PyGame is the library to learn.
Additionally, it is recommended that you explore Version Control (Github is a perfect choice), Python Data Structure Algorithms (efficiency matters always) and DevOps (practices combining software development with IT operations in companies).
There are also tons of pre-installed Python Libraries and community-developed Packages, not necessarily pegged to a career pathway, worth learning to fulfil certain tasks or just for fun (cause why not?). My personal favorite — Selenium for browser automation.
Step 1: LEARN
In this section, I have detailed all resources that you need to learn Python. You could use these resources to teach yourself Python from scratch or supplement any Python Course:
Tools for Python Development
Integrated Development Environment (IDEs)
Your first step before even learning the language should be choosing an IDE and setting it up. This is where you’ll be writing and executing your Python code. Here are the top IDEs to consider:
- Visual Studio Code — The most popular IDE not only for Python but for numerous programming languages. It goes without saying, VS Code is what I use from day-to-day
- Jupyter Notebooks — If your target is taking up a Data Science pathway, then look no further than Jupyter. This has become an industry-standard tool for Data Scientists
- Other top options worth considering are: PyCharm, Atom, and Spyder
You can download and install your chosen IDE independently, however, I recommend using Anaconda which comes packaged with VSCode, Jupyter, and Spyder, even Rstudio for Data Science targets.
As a beginner, you probably want to delve into learning the basics before getting into testing. Nevertheless, test running is quite important in making sure all elements of your program are working as designed. In Python, we use the following libraries/frameworks to conduct tests:
- Unit Test — Built into Python, this is extremely popular across the Python community
- Nose — This framework is wrapped around unittest to add more functionality for tests
- Pytest — A lot of Pythonistas are now using py.test over unittest given its simple syntax
As you learn Python and start practicing, bugs will be quite common and identifying them fast is an issue for many. Not any more! Today, all you have to do is copy-paste your code on Python Tutor to visualize its execution and help you pinpoint the bug or issue. Some alternative debuggers are The Python Debugger/PDB (A Python Module) and Online GDB.
Recommended Python Learning Guides
Learn Python from well-structured websites covering at least all fundamentals:
- Official Python Documentation by Python.org — The Ultimate Python Resource
- The W3 Schools Python Guide — My Personal Favorite for Beginners
- The HitchHiker’s Python Guide — Best Practice Handbook
Learn by reading detailed Python Books or PDF Publications:
Finally, to learn the Python Code Style Guide — PEP-8 Conventions — and start writing Pythonic Code. Visit the official style guide documentation at Python.org
- Python for Everybody by Charles R. Severance [Download Free PDF] [Access as HTML Site]
- Think Python — How to Think Like a Computer Scientist by Allen B. Downey [Buy on Amazon]
- Learn Python the Hard Way by Zed Shaw [Buy on Amazon]
- Python Crash Course — A Hands-On Project-based Introduction to Programming by Eric Matthes [Buy on Amazon]
- Python Cookbook by David Beazley and Brian K.Jones [Buy on Amazon]
- Python Tricks — A Buffet of Awesome Python Features by Dan Bader [Buy on Amazon]
- Effective Python — 90 Specific Ways to Write Better Python by Brett Slatkin [Buy on Amazon]
Gauge Your Python Knowledge
Already versed with Python and would like to test your knowledge? We recommend using common interview questions to gauge your knowledge. After all, these questions give you an overview of what the industry needs you to know:
- Guru99 — Top 40 Python Interview Questions & Answers
- EduReka — Top 100 Python Interview Questions You Must Prepare In 2020
- DataFlair — 150+ Python Interview Questions and Answers for Freshers
Step 2: PRACTICE
It goes without saying — Do Not Learn Coding Without Practice! But, the big problem is actually finding projects suited for your level that would best test and let you put your skill into practice. We’ve therefore split these projects into beginner, intermediate, and advanced levels:
Most of these projects were inspired by Data Flair — Python Project Ideas for 2020. To understand the project deliverable, you can simply make a Google Search or visit the Data Flair link to get a short description.
The starred projects require a Graphical User Interface to be fulfilled while the projects with “Rec.” are those that I recommend trying out for ultimate practice and fun engagement. I have also sought to attempt all these projects and make them available on the Chaptr Github Account. 3 project repositories will be added each week for the next 10 weeks. Contributions are open!
Step 3: ENGAGE
Alas! You are no random beginner anymore, you are pretty confident with your skills, and you have probably started populating your Github portfolio with some inspiring Python projects. You have also started mastering additional libraries to shape your career pathway. It is time to continue your Python engagement and keep developing your competencies. Here are some ways to achieve this:
Get Certified — Python Certifications
I am not usually a fan of certifications, but in most countries, employers are still blinded by these traditional standards of proving competence. However, on a positive note, credible certifications do test your competence well and best help you know whether you are set for a job in the industry. Below are the two organizations best suited for Python competence certification:
The Python Institute (by the Open Education Development Group) offers 4 certification exams at 3 competency levels:
- Entry — Certified Entry-Level Python Programmer Certification
- Associate — Certified Associate in Python Programming Certification
- Professional — Certified Professional in Python Programming 1 Certification and Certified Professional in Python Programming 2 Certification
Microsoft Inc. (The company needs no introduction) offers mostly online exams for certification across all continents. You could explore the following certifications:
- MTA — Microsoft Technology Associate
- MCSA — Microsoft Certified Solutions Associate
- MCSD — Microsoft Certified Solutions Developer
Beware that Microsoft is undertaking a major “certpocalypse” (Certificate Apocalypse), and some of these certification exams will no longer be on offer next year, but once certified, whether or not a program is retired, the certification will be valid and active for 2 years as usual.
Keep Learning — Top Python Blog
One of the best ways to keep up your engagement with Python will be through Python Blogs and Vlogs. Below are blogs you should definitely look at. They are all pretty consistent on posting and have tons of Python content at everyone’s disposal:
- Love Python — http://love-python.blogspot.com/
- Planet Python — https://planetpython.org/
- The Mouse Vs. The Python — https://www.blog.pythonlibrary.org/
- Real Python — https://www.fullstackpython.com/blog.html
- Full Stack Python — https://realpython.com/
Stay Connected — Popular Python Communities
Finally, it time for you to engage further with the global Python community and even start contributing. Some of the popular communities for Pythonistas are:
- r/Python — the official Reddit for Python News, Content, and Resources
- Python Weekly- Free weekly Python Newsletter to subscribe to
- PySlackers — An open Slack Channel for Python Enthusiasts
(Article taken from: https://hackernoon.com/top-python-resources-for-beginners-yi6h3yh0)