My intention with publishing this collection
Last year I only used Medium for consuming content, and I checked out a ton of Python-related articles. Recently I’ve started to use the community features of the platform, for instance following fellow developers. I also developed the practice of clapping and highlighting the most interesting parts of their articles. My goal is to be an active member of the developer community gathered on Medium.
I also realized that I would like to give back to the community after reading so many great resources. This was one of my main motivations for writing my first article “Why you need Python environments and how to manage them with Conda”.
In this article, I’d like to share with you the articles I found most interesting and insightful (inspiring) last year and this year (so far). My other goal was to create a comprehensive list of the most valuable pieces for my Python students.
How to navigate this article
I bookmarked so many great resources that it was not easy to select the best ones. So I divided the article into 10 categories — this, by the way, resonates well with the versatile and multipurpose nature of Python.
The categories are:
Just one more thing before you dive in: how should you use this article? It doesn’t need to be read all at once. Bookmark it, and use it as a starting point or a reference point. With the category list above, you can navigate to the sections that you are interested in most.
And please let me know in a comment if you feel that I left out an awesome resource so I can update my collection. Thanks in advance!
1. General Python programming
1.1 Learning Python: From Zero to Hero, by TK
A comprehensive introduction to Python, this is a must-read if you are new to this world. It explains the basics: variables, control flow, looping and iteration, collections, arrays, structures and dictionaries. It covers the foundations of object oriented programming, too. So if you’ve just started your Python developer journey, this is a great starting point.
1.2 Understanding the underscore( _ ) of Python, by mingrammer
Did you know that the underscore (_) in Python has special meanings? It has five different use cases. Check them out in this article!
1.3 A brief tour of Python 3.7 data classes, by Anthony Shaw
Data classes is a brand new feature of Python 3.7. It reduces the boilerplate in case of creating a class with typed data fields. The article provides an easy-to-follow explanation and several examples of this feature.
1.4 How to Use Static Type Checking in Python 3.6, by Adam Geitgey
As of Python 3.6, there is a syntax for declaring types. However, you need an external tool like mypy or PyCharm to enforce type checking. This article is a good starting point to learn how to implement static types in your code.
1.5 How — and why — you should use Python Generators, by Radu Raicea
This tutorial showcases examples of an iterator class and different types of generator functions.
“Generator functions allow you to declare a function that behaves like an iterator. They allow programmers to make an iterator in a fast, easy, and clean way.”
“An iterator is an object that can be iterated (looped) upon. It is used to abstract a container of data to make it behave like an iterable object. You probably already use a few iterable objects every day: strings, lists, and dictionaries to name a few.”
1.6 Intro to Threads and Processes in Python, by Brendan Fortuner
This and the following article (1.7) are about threading and parallel processing in Python. This piece is an introduction to Python’s parallel processing features with processes and threads, and the second article covers more advanced stuff.
1.7 Let’s Synchronize Threads in Python, by Saurabh Chaturvedi
A great overview of multi threading and its most challenging aspect: thread synchronization and communication.
1.8 How to write a production-level code in Data Science? by Venkatesh Pappakrishnan, Ph.D.
This article contains suggestions on creating production ready code for data science purposes. It helps you organize and optimize your code, covers the topics of logging, instrumentation and testing, describes the basics of version controlling, and gives directives on code readability. Great advice and best practices!
1.9 How to rewrite your SQL queries in Pandas, and more, by Irina Truong
If you are new to Pandas and DataFrames, and you have a good understanding of SQL, I highly recommend reading this article. It contains a valuable phrasebook with examples. It helps you to translate your SQL query ideas to Pandas’s syntax and to learn this new syntax.
2. Python performance optimization
2.1 Yes, Python is Slow, and I Don’t Care, by Nick Humrich
Python developers achieve high productivity, but we’ve all heard the myth before: Python is slow. I find this article important since it explains Python’s performance optimization features.
“Run time is no longer your most expensive resource. A company’s most expensive resource is now its employee’s time.”
2.2 A Beginner’s Guide to Optimizing Pandas Code for Speed, by Sofia Heisler
In case of larger volumes of data processed by Pandas, you should use carefully-chosen coding solutions in order to improve the performance.
This and the following article review several methodologies for applying a function to a Pandas DataFrame and compare their running speeds.
2.3 Data Pre-Processing in Python: How I learned to love parallelized applies with Dask and Numba, by Ernest Kim
Some more methodologies for applying a function to a Pandas DataFrame. These methods use parallelization to gain more speed.
2.4 Memory efficiency of parallel IO operations in Python, by Jakub Wolf
This article compares the memory efficiency of three methods for parallelizing IO-bound operations. The newest method is the asyncio module. It is a part of the standard Python library since Python 3.5. It is a good choice if your goal is to have high performance with low memory footprint.
2.5 Regex was taking 5 days to run. So I built a tool that did it in 15 minutes, by Vikash Singh
2.6 Dismissing Python Garbage Collection at Instagram, by Instagram Engineering
This article shows an advanced optimization technique for multi-process Python applications.
2.7 A million requests per second with Python, by Paweł Piotr Przeradowski
Introductory article to an amazingly fast, new framework for micro-services: Japronto.
3. Python development environments and DevOps
3.1 Install PyCharm and Anaconda (Windows /Mac/Ubuntu), by Michael Galarnyk
This tutorial is a great starting point for beginners. It summarizes the installation process and also contains a ten-minute-long video, that walks you through each step.
3.2 Docker Tutorial — Getting Started with Python, Redis, and Nginx, by Roman Gaponov
This article explains how you can benefit from Docker in your software development process. Great piece for beginners!
Docker is an open source tool that automates the deployment of the application inside software container.
3.3 How to write Dockerfiles for Python Web Apps, by Praveen Durairaj
An excellent guide with sample Dockerfiles — check it out if you are building Python web apps using Docker!
3.4 Get Started with PySpark and Jupyter Notebook in 3 Minutes, by Charles Bochet
Apache Spark is a big data processing engine that can be used from Python with the PySpark library. This library is great for creating prototypes on the big data and machine learning field. This guide kickstarts you on the path of using Spark from Python.
3.5 JupyterLab first impressions, by Brian Ray
Jupyter is such an essential tool for Python programmers. Here is a nice article about its newest version.
4. Machine learning
4.1 The Hitchhiker’s Guide to Machine Learning in Python, by Conor Dewey
This article showcases sample codes and explanatory videos for eight machine learning algorithms: Linear Regression, Logistic Regression, Decision Trees, Support Vector Machines, K-Nearest Neighbors, Random Forests, K-Means Clustering, and Principal Components Analysis. One of my favorite articles, a must-read for beginners.
4.2 Learning AI if You Suck at Math series, by Daniel Jeffries
An excellent series of 7 articles (thanks Daniel Jeffries for your effort!). The title is quite self-evident: not being great at math does not mean that you can’t understand how artificial intelligence works! Give it a go — it’s really worth it!
You suck at math.
That’s all right! I share your dirty little secret and I have some books and websites that will really help you get rolling fast.
Learning AI if You Suck at Math — Part 1
This article guides you through the essential books to read if you were never a math fan but you’re learning it as adult.hackernoon.comLearning AI if You Suck at Math — Part 2 — Practical Projects
This article guides you through getting started with your first projects.hackernoon.comLearning AI if You Suck at Math — Part 3 — Building an AI Dream Machine or Budget Friendly Special
This article guides you through getting a powerful deep learning machine setup and installed with all the latest and greatest frameworks.hackernoon.comLearning AI if You Suck at Math — Part 4 — Tensors Illustrated (with Cats!)
This one answers the ancient mystery: What the hell is a tensor?hackernoon.comLearning AI if You Suck at Math — Part 5— Deep Learning and Convolutional Neural Nets in Plain…
Here we create our first Python program and explore the inner workings of neural networks!hackernoon.comLearning AI If You Suck at Math — Part 6 — Math Notation Made Easy!
Still struggling to understand those funny little symbols? Let’s change that now!hackernoon.comLearning AI if You Suck at Math — Part 7 — The Magic of Natural Language Processing
Understand how Google and Siri understand what you’re mumbling.hackernoon.com
4.3 Machine Learning Zero-to-Hero: Everything you need in order to compete on Kaggle for the first time, step-by-step! by Oren Dar
Participating in Kaggle competitions is a great way to improve your machine learning skills. This guide shows you how to solve one of Kaggle’s machine learning problems and submit your results to the competition.
Machine Learning Zero-to-Hero: Everything you need in order to compete on Kaggle for the first…
If you’ve always wanted to learn more about Machine Learning and see how easy it is to compete on Kaggle, then this…towardsdatascience.com
4.4 Higher-Level APIs in TensorFlow, by Peter Roelants
TensorFlow 1.3 introduces three new higher-level frameworks: Estimator, Experiment, and Dataset. This post explains them and shows an example usage.
4.5 Deploy TensorFlow models, by Francesco Zuppichini
This tutorial shows you how to make your TensorFlow models accessible from the web with Flask and TensorFlow serving.
Okay, you have a model and you want to make it accessible from the web. There are several ways you can do that, but the faster and the most robust is TensorFlow serving.
4.6 Simple and Multiple Linear Regression in Python, by Adi Bronshtein
Linear regression is an approach for modelling the linear relationship between a dependent variable and one or more independent variables. It is one of the most widely used algorithms of machine learning.
This article explains the mathematical basics of linear regression, then provides examples using Python’s Statsmodels and Scikit-Learn libraries. If you consider yourself a beginner, I highly recommend reading this article.
4.7 Reducing Dimensionality from Dimensionality Reduction Techniques, by Elior Cohen
In this post, Elior demystifies three dimensionality reduction techniques: PCA, t-SNE, and Auto Encoders.
“The need to reduce dimensionality is often associated with visualizations (reducing to 2–3 dimensions so we can plot it) but that is not always the case. Sometimes we might value performance over precision so we could reduce 1,000 dimensional data to 10 dimensions so we can manipulate it faster (eg. calculate distances).”
4.8 Random Forest in Python, by William Koehrsen
This step by step guide shows how to solve a machine learning problem with random forests. It is very detailed, explains how to prepare and clean the data, then creates and improves a model, finally visualizes the results. Awesome stuff.
4.9 Building A Logistic Regression in Python, Step by Step, by Susan Li
There are many concepts in the field of machine learning to master. One of these is logistic regression. This article provides a great starting point, and I’ve recommended it several times to my students.
“Logistic Regression is a Machine Learning classification algorithm that is used to predict the probability of a categorical dependent variable. In logistic regression, the dependent variable is a binary variable that contains data coded as 1 (yes, success, etc.) or 0 (no, failure, etc.).”
4.10 Understanding Feature Engineering, by Dipanjan Sarkar
This series introduces you to feature engineering, one of the most important tasks of a data scientist. What is the essence of feature engineering? Here is a great quote:
“Coming up with features is difficult, time-consuming, requires expert knowledge. ‘Applied machine learning’ is basically feature engineering.”
— Prof. Andrew Ng.
Understanding Feature Engineering (Part 1) — Continuous Numeric Data
Strategies for working with continuous, numerical datatowardsdatascience.comUnderstanding Feature Engineering (Part 2) — Categorical Data
Strategies for working with discrete, categorical datatowardsdatascience.comUnderstanding Feature Engineering (Part 3) — Traditional Methods for Text Data
Traditional strategies for taming unstructured, textual datatowardsdatascience.comUnderstanding Feature Engineering (Part 4) — Deep Learning Methods for Text Data
Newer, advanced strategies for taming unstructured, textual datatowardsdatascience.com
4.11 Ten Machine Learning Algorithms You Should Know to Become a Data Scientist, by Shashank Gupta
This article showcases ten useful machine learning algorithms, explains the basic concepts of them, and suggests Python libraries and introductory tutorials to start with.
Ten Machine Learning Algorithms You Should Know to Become a Data Scientist
Machine Learning Practitioners have different personalities. While some of them are “I am an expert in X and X can…towardsdatascience.com
4.12 Open Machine Learning Course. Topic 1. Exploratory Data Analysis with Pandas, by Yury Kashnitskiy
I believe in knowledge sharing, and The Machine Learning Course by OpenDataScience is an awesome resource. If you are interested in the series, you can find the topics at the beginning of this article.
Open Machine Learning Course. Topic 1. Exploratory Data Analysis with Pandas
With this article, we, OpenDataScience, launch an open Machine Learning course. This is not aimed at developing another…medium.com
4.13 Time Series Analysis in Python: An Introduction, by William Koehrsen
This article is a good introduction to time series analysis. It contains an example evaluation of the Tesla and GM stock prices, and builds a forecast model with the Facebook Prophet package.
5. Image and video processing
5.1 How I implemented iPhone X’s FaceID using Deep Learning in Python, by Norman Di Palo
The algorithm behind Apple’s FaceID is proprietary. This article analyzes how this feature might work and shows a proof-of-concept implementation of FaceID using siamese convolutional networks.
5.2 Tracking the Millennium Falcon with TensorFlow, by Nick Bourdakos
By following this tutorial, you’ll be able to learn how to build you own TensorFlow-based custom object detector building on the COCO dataset.
5.3 Using Deep Learning to improve FIFA 18 graphics, by Chintan Trivedi
The concept of face-swapping done by deep neural networks has been developed recently. One of the most well-known algorithms is Deepfakes, and its results has even been featured in the mainstream media.
This article shows how it could be used in the game industry, and explains the basics of the algorithm. I believe that the key takeaway is that deep learning can be applied in almost any industry / in any field.
5.4 Deep Learning with Keras on Google Compute Engine, by Cole Murray
I’m fascinated by the idea of image recognition. This article takes the learning-by-doing approach, since it explains setting up
- a Flask-based web application connected to a Keras-supported image recognition and
- an image store using Google Cloud Storage
in a step-by-step manner.
5.5 How to use transfer learning and fine-tuning in Keras and Tensorflow to build an image recognition system and classify (almost) any object, by Greg Chu
By using a pre-trained network built for a similar task, you can make your convolutional neural network’s training speed faster.
“It’s well known that convolutional networks require significant amounts of data and resources to train. For example, the ImageNet ILSVRC model was trained on 1.2 million images over the period of 2–3 weeks across multiple GPUs.”
6. Chatbots and Natural language processing (NLP)
6.1 Machine Learning, NLP: Text Classification using scikit-learn, python and NLTK, by Javed Shaikh
Text classification is one of the basic concepts of natural language processing. The tutorial follows these steps:
1. Prerequisite and setting up the environment.
2. Loading the data set in jupyter.
3. Extracting features from text files.
4. Running ML algorithms.
5. Grid Search for parameter tuning.
6. Useful tips and a touch of NLTK.
6.2 Text Classification using Neural Networks, by gk_
This article helps you understand how text classification works and demonstrates it using a two layer neural network.
6.3 Contextual Chatbots with Tensorflow, by gk_
This post shows how to transform conversational intent definitions to a TensorFlow model and how to build a chatbot framework around it.
6.4 How to Create and Deploy a Telegram Bot? by Roman Gaponov
By following this tutorial, you’ll be able to build a simple Telegram-based chatbot and deploy it on Heroku.
6.5 I built a serverless Telegram bot over the weekend. Here’s what I learned, by Moses Soh
Another Telegram-based chatbot example, it shows how to deploy the bot on AWS Lambda with the help of a tool called Zappa. Building something over a weekend sounds fun, doesn’t it? :)
I built a serverless Telegram bot over the weekend. Here’s what I learned.
It sends out a SOS to rescuers when someone is stranded in the rain ☔ It’s written in Python using AWS Lambda…medium.freecodecamp.org
7.1 Let’s Build the Tiniest Blockchain, by Gerald Nash ⚡️
This series and the following article(6.2) help you understand how a blockchain works by building one! I always prefer learning by doing, and that’s why I like these articles so much.
Second part of the article:
7.2 Learn Blockchains by Building One, by Daniel van Flymen
8. Web and backend development
8.1 How to use Python and Flask to build a web app — an in-depth tutorial, by Abhinav Suri
A great tutorial for creating a full-stack Python application based on Flask, a Python microframework.
How to use Python and Flask to build a web app — an in-depth tutorial
Python is an incredibly versatile language. It’s considered to be a staple of modern development. It’s used for the…medium.freecodecamp.org
8.2 Building Microservices with Python, by Sergio Sola
This piece is divided into 3 parts. The author is a Software Engineer building microservices for a personal project. Sidenote: having personal projects is a great way of developing your skills! This is what the tutorial is about:
- Building the skeleton of the microservice:
2. Creating the microservice’s infrastructure in Docker:
3. Last, but not least, building the microservice’s business logic:
8.3 ElasticSearch with Django the easy way, by Adam Wattis
ElasticSearch is a great tool for implementing free text search. By following this tutorial, you’ll set up an ElasticSearch server, load data into it, and connect it with a Django-based application.
9. Web scraping
9.1 How to scrape websites with Python and BeautifulSoup, by Justin Yek
BeautifoulSoup is a helpful utility for extracting data from a HTML page. This article shows how it works.
9.2 Using Scrapy to Build your Own Dataset, by Michael Galarnyk
By utilizing Scrapy, you can download websites and extract data from the HTML pages using CSS selectors. It is a fully-fledged solution for web scraping. This article demonstrates how it works by showing an example of scraping data from a real website.
9.3 30-minute Python Web Scraper, by Angelos Chalaris
This post explains how to use Selenium webdriver with Geckodriver to open a browser window and control it from Python.
9.4 How I used Python to find interesting people to follow on Medium, by Radu Raicea
This article provides a great example for using APIs from Python. I believe that the author addresses an important issue here: it is hard to select the most relevant and useful content from the overwhelming information tsunami — this is, by the way, one of the reasons why I created this article collection.
Medium has a large amount of content, a large number of users, and an almost overwhelming number of posts. When you try to find interesting users to interact with, you’re flooded with visual noise.
How I used Python to find interesting people to follow on Medium
Medium has a large amount of content, a large number of users, and an almost overwhelming number of posts. When you try…medium.freecodecamp.org
10. Data visualization
10.1 - 5 Quick and Easy Data Visualizations in Python with Code, by George Seif
This article contains a great chart that helps you select the proper data visualization technique for a given situation. Then it takes a closer look at six data visualization types and shows examples of using Python’s Matplotlib for creating these assets: two kinds of scatter plots, line plots, histograms, bar plots and box plots.
10.2 Data Visualization with Bokeh in Python, by William Koehrsen
The series answers the following question: “How can we add more interactivity to our visualizations?” This tutorial walks you through fully-interactive examples using Python, the Bokeh interactive visualization library, and publicly available datasets.
Data Visualization with Bokeh in Python, Part I: Getting Started
Elevate your visualization gametowardsdatascience.comData Visualization with Bokeh in Python, Part II: Interactions
Moving beyond static plotstowardsdatascience.comData Visualization with Bokeh in Python, Part III: Making a Complete Dashboard
Creating an interactive visualization application in Bokehtowardsdatascience.com
So that is my collection. I’m really grateful for these excellent resources, and many of them have already helped my Python students. I’ve also learned a lot of new tricks along the way.
Respond 💬 — please let me know in the response section if you have any suggestions or questions!
Thanks for reading! 🙏
And thanks to my wife, Krisztina Szerovay, for creating the cover!