This document will highlight the wonderful Python resources available everywhere, from the web to good old-school books.
Following these resources will keep you up to date with all things Python and will help you advance rapidly on your way to becoming a Pythonista. Of course, it's not mandatory for you to follow each and every one of the sources, since there are going to be a lot of them; following one or two from each category will suffice.
But, always aim to have an idea about all of these sources and keep them at the back of your mind. You never know what will prove to be useful in the future!
Let's get started.
Let's get the obvious ones out of the way. By 'obvious,' I mean resources that are not just limited to Python but can be used in all things programming, extending them to any programming language of your choice. These are obvious since you'll run into them regularly because of their generality. Have a look:
-
Stack Overflow: This is quite a no-brainer. If you're developing, you'll use Stack Overflow. There's no way around it. This website is the number one place for getting your programming questions answered by experts with tonnes of experience. Ask any programming question and Stack Overflow is most likely to have an answer. This resource is particularly useful for Python development since, for some reason, the number of Python developers using the service has been increasing. Keep this bookmarked.
-
GitHub - Yes, this is a learning resource. You'll find repositories which will show you wonderful Python projects. There are repositories which accumulate a lot of Python learning resources together for you to reference and use. There are repositories listing many of the amazing modules in Python. There are just fun repositoreies that show something fun in Python. You'll learn a lot, especially about good code practices. Keep this bookmarked, as well. Check the following out, too: vinta/awesome-python, faif/python-patterns, kennethreitz/pep8.org.
-
Google - I don't need to explain this, do I?
These are resources hosted directly by the Python Software Foundation (PSF), hence the name 'official'. Have a look:
-
The Python Documentation - This is the de facto resource for Python. Most of the programming languages have an online documentation, which is just a fancy name for a document which lists and explains all of the features of the language. But, personally, I haven't found a documentation as comprehensive as Python's. Whenever you're stuck, you can be sure that the documentation will lead you to the right place. It's easy to read and understand, and has examples accompanying most of the features. Keep this bookmarked.
-
Python Enchancement Proposals - The Python Enchancement Proposals, abbreviated to PEP (and pronounced as PEP, not PIP), are documents written by Python developers to propose and include new features in the language. Through PEPs, you can essentially find the origin of all the features the language has. They will prove to be useful if you want to learn about the motivation behind some feature and some of the compromises that were made when writing the feature. Reading these will help you gain a deeper insight into features of the language.
-
PyPI - Pronounced as 'pie pee eye', this is the cheese shop. This is the holy grail of Python. Why? Because this is where all of the Python packages in the world are hosted. Whenever you're downloading a Python package, it is PyPI that's handling the download for you. You can browse the website to discover a tonne of packages that would otherwise go unnoticed. Go crazy (but be safe).
-
Python FAQs - These are frequently asked questions, curated by the PSF. They'll help you in starting out. Take a look.
This section will list some of the most profilic blogs centered around Python. Following them and reading them regularly will keep you ahead of the curve and you'll constantly learn new skills in Python. Have a look:
-
Real Python - This is my favorite Python blog, simply because its articles have a simple way of relaying their ideas and it employs some really talented authors in the field of Python development. The team works actively to improve its contents and they have a pretty high standard of Python code on their site. Always remember, you need to acquire the skill of writing Pythonic code. This website is, arguably, the most Pythonic blog on the Internet.
-
Python on Reddit - Reddit is a really great place for community blogging. There's a thriving community of Python developers and learners. Check it out.
-
Medium - Medium has some really great content on Python. You can find articles ranging from beginner to advanced stuff, from simple Python programming to designing complex Machine Learning models using Python. It's also very easy on the eyes. Also, make sure to check this out if you're into data science as well as Python: Towards Data Science.
-
Planet Python - Planet Python is a website which curates articles from various other Python blogs every day and presents them for you to read. If you don't want to follow individual blogs, follow this. It will give you articles from various blogs, all at one place.
-
Stack Abuse - This is another blog which is somewhat popular. Personally, I am not a big fan of their work since they usually write articles in poor English, but if you learn to put up with the bad English, they do tend to have some good content now and then.
-
Python Tips - This blog is run by a young guy, named Yasoob. He shares small, bite-sized tips about Python, which you'll really like and find relevant. Give it a look.
-
Dan Bader's Blog - Dan Bader is the same guy who is running Real Python now and he has some great insight on what it means to write Pythonic code. You'll find a tonne of good quality, highly relevant, Pythonic tutorials on this blog, though you should head over to Real Python for more updated content.
Let's talk about Massive Open Online Courses. There are so many of them available on Python, you'll be quite astonished by the sheer quantity. Here are some that are of high quality. Have a look:
-
The Complete Python Bootcamp - This is a course hosted by Udemy and created by Jose Portilla, who is a data scientist and a teacher. You'll find that the course covers all of the relevant areas of Python development, starting from the very basics and building its way up to the more advanced stuff. You don't need to have any experience with any programming language before taking this course and will definitely love it.
-
Complete Python Masterclass - This is another course hosted by Udemy and is created mainly by Tim Buchalka, who has experience teaching a lot of students a lot of languages. This course dives a little deeper than the above course and covers a few more extra topics, such as managing databases and some interesting modules. Both this and the above courses are paid courses, but Udemy always has courses on sale.
-
Introduction to Computer Science and Programming Using Python - This course is hosted by edX and created by none other than MIT, using its online counterpart for edX, MITx. The professor teaching this course is very experienced and is highly regarded in MIT as one of the best teachers in the institute. The one thing is that this course is focused more on teaching programming than Python in itself. It's still a great resource.
-
Python for Everybody Specialization - This is a specialization consisting of five courses hosted by Coursera and created by the University of Michigan. If you want to learn Python completely (or as completely as possible), take this course. It will teach you everything you need to know about Python and a bit more. Both this course and the one above it are free as long as you don't require a certificate. If you do, you'll have to pay out.
A newsletter is a collection of various news pieces off the internet on one or more topics, delievered to you in your mail. They are a great way of staying up to date without having to follow many sources. Here a few of the iconic ones. Have a look:
-
Python Weekly - This is the de facto Python newsletter, curated by Rahul Chaudhary and delivered to you every Thursday. It is actively featured on the Python website. If you find an article in this newsletter, it is almost certainly bound to be good and enlightening. Head over to the website and just submit your mail.
-
PyCoder's Weekly - This is another famous Python newsletter, delivering quality Python content, ranging from articles to new and interesting modules, to your inbox every Friday. If you plan to subscribe to two newsletters and not one more, these two are the ones to go for. I don't follow anything else.
Personally, I prefer books over other forms of consuming knowledge. But, programming books can be costly and books, in general, require a greater amount of time investment from the student. Consequently, I am listing them at the end. Have a look:
-
Python Crash Course by Eric Matthes - This is a really comprehensive book. You'll learn the basics and in the end, build three full-scale Python projects: A game, a web application and data visualiation. You'll learn the necessary skills and then, apply them to create relevant projects. This is a great resource for anyone starting out with Python.
-
Learn Python the Hard Way by Zed A. Shaw - This is one of those books which believes in first making you build something and then, explaining the steps in building that thing. Hence, the name. You'll really enjoy this book if you're one of those resilient and stubborn kinds who want to get their work done, even if they don't know why they are doing the work in the first place.
-
Think Python: How to Think Like a Computer Scientist by Allen B. Downey - This book takes a more technical approach towards teaching Python and more specifically, towards teaching beginner and intermediate developers to think like a computer scientist, to think like a programmer. It is a fun read.
-
Automate the Boring Stuff With Python by Al Sweigart - This is a book which presents wonderful, interesting recipes to automate some of your most basic tasks on your PC using Python. It is available in three forms: A free-to-use website, an ebook and an online course on Udemy. I've linked the free website here. Proceed with this once you've covered the basics of Python.
Well, guys, that's all for the resources. Of course, there are many, many more resources out there, but having too many resources isn't a good idea either. Pick your favorites, stick to them and you're bound to be benefitted.
Malay Agarwal.