## PyBites Learning Paths

Our Learning Paths train you for particular Python knowledge areas, ideal for job interviewing and becoming a domain expert!

## Algorithms

Challenge yourself with these algorithm Bites, useful when preparing for a coding interview or just in general to cement your problem solving skills.

### Bites of Py

 ☐ 1.1 - Rewrite a for loop using recursion ☐ 1.2 - Most frequent digit in number ☐ 1.3 - Armstrong numbers
 ☐ 2.1 - Palindromes ☐ 2.2 - Count the number of islands in a grid ☐ 2.3 - Optimal fund raising ☐ 2.4 - Measure the size of an island ☐ 2.5 - Find common words ☐ 2.6 - Number conversion problem ☐ 2.7 - Pascal triangle ☐ 2.8 - Searching for an apartment
 ☐ 3.1 - Write a binary search algorithm ☐ 3.2 - Code your way out of a grid ☐ 3.3 - Number Transformers ☐ 3.4 - Shortest path (Graph Bite) ☐ 3.5 - Number of coin changes ☐ 3.6 - Convert dict keys to snake case ☐ 3.7 - Simple Math Equation Solver ☐ 3.8 - Metropolis–Hastings Algorithm

## Bioinformatics

Python is a great tool for biologists. Learn how to make use of Python to analyze DNA sequences and solve bioinformatic problems.

### Bites of Py

 ☐ 1.1 - GC content
 ☐ 2.1 - Codon Usage ☐ 2.2 - Reverse complement ☐ 2.3 - Fasta to 2-Line Fasta ☐ 2.4 - Translate coding sequences to proteins
 ☐ 3.1 - Scoring matrices ☐ 3.2 - Unique genes ☐ 3.3 - Create file pairs

## Collections Module

The collections module offers some very powerful data structures you want to incorporate in your daily Python use. Throughout the following Bites you will learn more than enough to be dangerous!

### Bites of Py

 ☐ 1.1 - Loop over a dict of namedtuples calculating a total score
 ☐ 2.1 - Keep a queue of last n items ☐ 2.2 - Group names by country
 ☐ 3.1 - Top 10 PyBites tags ☐ 3.2 - PyBites Die Hard ☐ 3.3 - Convert dict to namedtuple/json ☐ 3.4 - Find the most common word ☐ 3.5 - Movie data analysis ☐ 3.6 - What South Park characters talk most? ☐ 3.7 - BeautifulSoup II - scrape US holidays ☐ 3.8 - Make an index of story characters

## Data Analysis

This path will train you to do common data analysis tasks in Python.

### Bites of Py

 ☐ 1.1 - Analyze some basic Car Data ☐ 1.2 - Get statistics from PyBites test code
 ☐ 2.1 - Top 10 PyBites tags ☐ 2.2 - Find the most common word ☐ 2.3 - Parse omdb movie json data ☐ 2.4 - Movie data analysis ☐ 2.5 - Make a bar chart of new Safari books ☐ 2.6 - What South Park characters talk most? ☐ 2.7 - Analyze Stock Data ☐ 2.8 - Parse PyBites blog git commit log ☐ 2.9 - Analyze some Bite stats data ☐ 2.10 - Analyze NBA Data with sqlite3 ☐ 2.11 - Analyze some Bite stats data - part II ☐ 2.12 - To rent or to stream movies?
 ☐ 3.1 - Marvel data analysis ☐ 3.2 - Record Breakers ☐ 3.3 - Analyze McDonald's food data ☐ 3.4 - Analyze sales data with pandas ☐ 3.5 - Generating sales reports from Github data

## Data Formats

How to parse common data formats is an essential skill for any Pythonista. In this learning path you learn how to handle XML, JSON, CSV and SQLite.

### Bites of Py

 ☐ 1.1 - Using ElementTree to parse XML ☐ 1.2 - Analyze some basic Car Data ☐ 1.3 - Pickling objects
 ☐ 2.1 - Convert dict to namedtuple/json ☐ 2.2 - Parse omdb movie json data ☐ 2.3 - Movie data analysis ☐ 2.4 - Parse a csv file and create a bar chart ☐ 2.5 - What South Park characters talk most? ☐ 2.6 - Use the ipinfo API to lookup IP country ☐ 2.7 - Analyze Stock Data ☐ 2.8 - Turn messy CSV into JSON ☐ 2.9 - Analyze some Bite stats data ☐ 2.10 - Parse income distribution from Latin America XML ☐ 2.11 - Analyze NBA Data with sqlite3 ☐ 2.12 - Analyze some Bite stats data - part II
 ☐ 3.1 - Marvel data analysis ☐ 3.2 - 15-way Rock Paper Scissors

## Datetimes and Timezones

Datetimes and timezones can be extremely confusing, but don't worry, we got your back. In this collection of Bites you get plenty of practice to grasp them once and for all. Go from frustration to mastery, just keep calm and code in Python!

### Bites of Py

 ☐ 1.1 - PyBites date generator ☐ 1.2 - Write a property ☐ 1.3 - Working with datetimes ☐ 1.4 - Work with datetime's strptime and strftime ☐ 1.5 - Like there's no tomorrow?
 ☐ 2.1 - Parsing dates from logs ☐ 2.2 - Converting date strings to datetimes ☐ 2.3 - Calculate the total duration of a course ☐ 2.4 - When does Python 2 die on Planet Miller? ☐ 2.5 - Organize a meeting between timezones (pytz) ☐ 2.6 - Humanize a datetime ☐ 2.7 - Primitive date format inferrer ☐ 2.8 - Calculate the Number of Months Passed ☐ 2.9 - 100 WEEKDays of Code Date Range ☐ 2.10 - Contemporary Composers ☐ 2.11 - Set up future notifications ☐ 2.12 - Find missing dates ☐ 2.13 - Parse PyBites blog git commit log ☐ 2.14 - Calculate number of books to have read at date ... ☐ 2.15 - Actor/actress age at movie release ☐ 2.16 - What date is Mother's Day celebrated? ☐ 2.17 - Find the fastest speech
 ☐ 3.1 - Calculate a coding streak in days ☐ 3.2 - Calculate my Mac's longest uptime

## Decorators and Context Managers

Your Python toolkit won't be the same again after learning about two important patterns: decorators and context managers. Ready to become a Ninja? For decorators you can check out our Learning Python Decorators by Example article but most important is to get coding!

### Bites of Py

 ☐ 1.1 - Create a sandwich decorator
 ☐ 2.1 - Write a decorator with argument ☐ 2.2 - Write a login_required decorator ☐ 2.3 - Write a numbers validation decorator ☐ 2.4 - Suppressing exceptions ☐ 2.5 - Capture stdout
 ☐ 3.1 - Write a context manager ☐ 3.2 - The singledispatch countdown challenge ☐ 3.3 - Write a performance monitoring context manager ☐ 3.4 - Manipulate string decorator ☐ 3.5 - Cached property decorator ☐ 3.6 - Write a retry decorator

## FastAPI

In this learning path you will write a simple API to track food / calories using the awesome FastAPI framework. This takes you from complete beginner to building your first CRUD (create-read-update-delete) API.

If you are new to typing / type annotations, maybe you want to complete the first 3 Bites of this learning path first, and/or read our article series.

### Bites of Py

 ☐ 1.1 - FastAPI Hello World ☐ 1.2 - A little detour: Pydantic
 ☐ 2.1 - Create food objects ☐ 2.2 - Retrieve food objects ☐ 2.3 - Update and delete food objects ☐ 2.4 - Pydantic part II ☐ 2.5 - Food logging CRUD ☐ 2.6 - FastAPI Exception handling ☐ 2.7 - Return an HTML response
 ☐ 3.1 - FastAPI Authentication with JWT (JSON Web Tokens)

## Itertools

### Bites of Py

 ☐ 1.1 - Fix a truncating zip function ☐ 1.2 - Calculate the running average of a sequence ☐ 1.3 - Find the number pairs summing up N
 ☐ 2.1 - Form teams from a group of friends ☐ 2.2 - Get all valid dictionary words for a draw of letters ☐ 2.3 - Retrieve the right Ninja Belt based on score ☐ 2.4 - Write an infinite sequence generator ☐ 2.5 - Print Car Data Grouped by Manufacturer
 ☐ 3.1 - Use an infinite iterator to simulate a traffic light ☐ 3.2 - Make a terminal spinner animation

## Object Oriented Programming

Everything in Python is an object - learn OOP techniques that will enrich your Python skills

### Bites of Py

 ☐ 1.1 - Write a property ☐ 1.2 - Complete a User class: properties and representation dunder methods
 ☐ 2.1 - No promo twice, keep state in a class ☐ 2.2 - Keep state in a class + make its instance callable ☐ 2.3 - Subclass the dict built-in ☐ 2.4 - Implement a Color class with staticmethod ☐ 2.5 - OOP fun at the Zoo ☐ 2.6 - Write your own Data Class ☐ 2.7 - Complete a tox ini file parser class ☐ 2.8 - Multiple inheritance (__mro__) ☐ 2.9 - Alternative constructors
 ☐ 3.1 - Enrich a class with dunder methods ☐ 3.2 - Write a context manager ☐ 3.3 - ABC's and class inheritance ☐ 3.4 - Matrix multiplication / @ operator ☐ 3.5 - Building a Karma app - implement the User class ☐ 3.6 - Write a score property ☐ 3.7 - Subclass the list built-in ☐ 3.8 - Ninja Rankings ☐ 3.9 - Composition, Inheritance, Abstract Base Class, what? ☐ 3.10 - Evaluate a Bridge hand

## Pytest

Writing test code is an essential skill. We use pytest-cov and MutPy to evaluate your test code. Bookmark this learning path to hone your test coding skills. For more information check out our article: You can now hone your testing / pytest skills on our platform ...

### Bites of Py

 ☐ 1.1 - Write tests for Fibonacci ☐ 1.2 - Write tests for list_to_decimal ☐ 1.3 - Test print / standard output
 ☐ 2.1 - Test FizzBuzz ☐ 2.2 - Test code that parses JSON and IP ranges ☐ 2.3 - Mocking a standard library function
 ☐ 3.1 - Write tests for an Account class ☐ 3.2 - Zodiacal data parsing ☐ 3.3 - Test a number guessing game ☐ 3.4 - Test a movie DB class

## Python Beginner

This learning path solidifies your understanding of Python fundamentals by completing the following 20 Beginner Bites (recommended: Intro Bites completed / target belt: Yellow / Need help? Check out our Pybites Developer Init (PDI) Coaching Program)

### Bites of Py

 ☐ 1.1 - Sum n numbers ☐ 1.2 - Parse a list of names ☐ 1.3 - Enumerate 2 sequences ☐ 1.4 - Query a nested data structure ☐ 1.5 - Dictionary comprehensions are awesome ☐ 1.6 - License key generator ☐ 1.7 - You are a programmer! Code Fizz Buzz ☐ 1.8 - Working with datetimes ☐ 1.9 - Remove punctuation characters from a string ☐ 1.10 - Matching multiple strings ☐ 1.11 - Build Unix' wc program in Python ☐ 1.12 - Display the last part of a file (Unix tail) ☐ 1.13 - Count leading spaces ☐ 1.14 - Convert an Amazon URL into an affiliation link ☐ 1.15 - Look up a value in 3 dictionaries ☐ 1.16 - Sorting words with constraint ☐ 1.17 - Create a variable length chessboard ☐ 1.18 - Group names by country ☐ 1.19 - Filter a list of names ☐ 1.20 - Most frequent digit in number

## Python Coding Interview

From a certain perspective, often shared by candidates themselves, the interview process for software jobs can appear unnecessarily nerve-wracking. It seems to be narrowly focused on algorithms, disregarding the practical aptitude of candidates and exhibiting bias towards specific backgrounds.

The Bites in this Learning Path represent a selection, although not an exhaustive one, of the types of DSA challenges commonly encountered in coding interviews. They are arranged in increasing order of difficulty.

We just added the first 4, more to come soon ...

### Bites of Py

 ☐ 1.1 - Validate Pangram ☐ 1.2 - Reverse only Letters
 ☐ 2.1 - Group Anagrams ☐ 2.2 - Find All Letter Combinations of a Phone Number
 ☐ 3.1 - Art Thief ☐ 3.2 - Organizational Chart ☐ 3.3 - Hedge Maze

## Regular Expressions

Some people, when confronted with a problem, think, "I know, I'll use regular expressions." Now they have two problems. (Jamie Zawinski) - although it doesn't have to be that way in Python. Check out our 10 Tips to Get More out of Your Regexes article and follow up with one or more exercises below. You text manipulation skills will reach new (Ninja) heights. Note that some of the exercises don't require regexes, but you might find them convenient.

### Bites of Py

 ☐ 1.1 - Strip out vowels and count the number of replacements
 ☐ 2.1 - Validate a license key
 ☐ 3.1 - Parse a bunch of quotes from HTML
 ☐ 4.1 - Regex Fun ☐ 4.2 - Regex Fun - part II ☐ 4.3 - Social Media Username Validator ☐ 4.4 - Strip comments from Python code ☐ 4.5 - Code a translation fixer ☐ 4.6 - Parse an email header ☐ 4.7 - Get sentences from a text ☐ 4.8 - Regular Expression Lookahead/Lookbehind

## String Manipulation

String manipulation is a fundamental skill for the effective Pythonista. In this learning paths we offer you a bunch of exercises so this becomes second nature for you!

### Bites of Py

 ☐ 1.1 - Slice and dice ☐ 1.2 - Strip out vowels and count the number of replacements
 ☐ 2.1 - Rotate string characters ☐ 2.2 - Nicer formatting of a poem or text ☐ 2.3 - Remove punctuation characters from a string ☐ 2.4 - Convert an Amazon URL into an affiliation link ☐ 2.5 - Parse an /etc/passwd file output
 ☐ 3.1 - Create a RGB-to-Hex converter ☐ 3.2 - Check if two words are anagrams ☐ 3.3 - Analyze Stock Data ☐ 3.4 - Turn messy CSV into JSON ☐ 3.5 - Split a string by spaces or quoted text ☐ 3.6 - Filter out accented characters ☐ 3.7 - Complete a tox ini file parser class ☐ 3.8 - Parse PyBites blog git commit log ☐ 3.9 - Parse a bunch of quotes from HTML
 ☐ 4.1 - Convert text into multiple columns ☐ 4.2 - Parse Unix cal to a weekday mapping ☐ 4.3 - Screen scraper ☐ 4.4 - Calculate a coding streak in days ☐ 4.5 - String manipulation and metrics ☐ 4.6 - Strip comments from Python code

## Typer

Typer is an amazing library for building Command Line Interfaces (CLIs). Leveraging Python type hints you can build great command line apps with relatively little code. In this learning path we'll have you practice the main features of the library.

### Bites of Py

 ☐ 1.1 - Transform a Script Into a Command Line Interface (CLI) ☐ 1.2 - Create Your First Typer Command Line Interface (CLI) Application ☐ 1.3 - Implement your First Subcommands and Command Groups ☐ 1.4 - Add a progress bar to Your Command Line Interface (CLI)
 ☐ 2.1 - When to Use Command Line Option (CLI) Options and When CLI Arguments? ☐ 2.2 - Using Typer Callbacks to Create Command Line Interface (CLI) Parameters ☐ 2.3 - Implementation of a Simple Typer Test ☐ 2.4 - Rich Excursion - Create Beautiful Tables ☐ 2.5 - Add a Password Prompt to Your Command Line Interface (CLI)
 ☐ 3.1 - Implementation of a More Sophisticated Typer Tests

## Typing

In this learning path you will learn how to increase the quality of your code by adding type hints. Intro article / why bother?

### Bites of Py

 ☐ 1.1 - Hello Types ☐ 1.2 - Advanced Type Hints ☐ 1.3 - Getting started with vectors

## Web Scraping

Web scraping is a super useful skill to possess and Python and libraries like `bs4` and `requests` make it relatively easy. Ever since our Create a Simple Web Scraper with BeautifulSoup4 article we're hooked! In this learning path you will become a Ninja at scraping sites!

### Bites of Py

 ☐ 1.1 - Get the latest game releases from Steam's RSS feed
 ☐ 2.1 - Top 10 PyBites tags ☐ 2.2 - Scrape Packt's html with BeautifulSoup ☐ 2.3 - BeautifulSoup II - scrape US holidays ☐ 2.4 - Get the most recommended books ☐ 2.5 - Parse income distribution from Latin America XML ☐ 2.6 - Most upvoted StackOverflow Python questions ☐ 2.7 - Female speakers @ Pycon US ☐ 2.8 - Get top titles from news.python.sc ☐ 2.9 - Scrape PyCon events ☐ 2.10 - Create Wikipedia Lorem Ipsum text
 ☐ 3.1 - Make a little PyBites search engine (feedparser) ☐ 3.2 - Parse PyCon talk data from YouTube ☐ 3.3 - 🥳 Minecraft Enchantable Items ☐ 3.4 - Scrape best programming books ☐ 3.5 - Composition, Inheritance, Abstract Base Class, what?