Change location for data files

This commit is contained in:
Kamran Ahmed
2023-02-21 12:25:58 +00:00
parent b741a0e1ee
commit b6a0255f12
2772 changed files with 30 additions and 30 deletions
@@ -0,0 +1,12 @@
# Basic Syntax
Setup the environment for python and get started with the basics.
Visit the following resources to learn more:
- [W3Schools - Python](https://www.w3schools.com/python/)
- [Python for Beginners - Learn Python in 1 Hour](https://www.youtube.com/watch?v=kqtD5dpn9C8)
- [Python Basics](https://www.tutorialspoint.com/python/python_basic_syntax.htm)
- [Learn X in Y Minutes / Python](https://learnxinyminutes.com/docs/python/)
@@ -0,0 +1,12 @@
## Variables
Variables are used to store information to be referenced and manipulated in a computer program. They also provide a way of labeling data with a descriptive name, so our programs can be understood more clearly by the reader and ourselves. It is helpful to think of variables as containers that hold information. Their sole purpose is to label and store data in memory. This data can then be used throughout your program.
Visit the following resources to learn more:
- [Variables in Python](https://realpython.com/python-variables)
- [W3Schools — Python Variables](https://www.w3schools.com/python/python_variables.asp)
- [Python Variables - Geeks for Geeks](https://www.geeksforgeeks.org/python-variables/)
- [Python Data Types](https://www.w3schools.com/python/python_datatypes.asp)
- [Basic Data Types in Python](https://realpython.com/python-data-types/)
- [Python for Beginners: Data Types](https://thenewstack.io/python-for-beginners-data-types/)
@@ -0,0 +1,11 @@
# Conditionals
Conditional Statements in Python perform different actions depending on whether a specific condition evaluates to true or false. Conditional Statements are handled by IF-ELIF-ELSE statements and MATCH-CASE statements in Python.
Visit the following resources to learn more:
- [Python Conditional Statements: IF…Else, ELIF & Switch Case](https://www.guru99.com/if-loop-python-conditional-structures.html)
- [Conditional Statements in Python](https://realpython.com/python-conditional-statements/)
- [How to use a match statement in Python](https://learnpython.com/blog/python-match-case-statement/)
@@ -0,0 +1,14 @@
## Typecasting
The process of converting the value of one data type (integer, string, float, etc.) to another data type is called type conversion. Python has two types of type conversion: Implicit and Explicit.
Visit the following resources to learn more:
- [Type Conversion and Casting](https://www.programiz.com/python-programming/type-conversion-and-casting)
- [Type Casting in Python with Examples](https://www.geeksforgeeks.org/type-casting-in-python-implicit-and-explicit-with-examples/)
- [Python Exceptions: An Introduction](https://realpython.com/python-exceptions/)
- [Errors and Exceptions](https://docs.python.org/3/tutorial/errors.html)
- [Python Exception Handling](https://www.programiz.com/python-programming/exception-handling)
- [Python Try Except](https://www.w3schools.com/python/python_try_except.asp)
@@ -0,0 +1,12 @@
# Functions
In programming, a function is a reusable block of code that executes a certain functionality when it is called. Functions are integral parts of every programming language because they help make your code more modular and reusable.
In Python, you define a function with the `def` keyword, then write the function identifier (name) followed by parentheses and a colon.
Visit the following resources to learn more:
- [Python Functions – How to Define and Call a Function](https://www.freecodecamp.org/news/python-functions-define-and-call-a-function/)
- [Python Functions - W3Schools](https://www.w3schools.com/python/python_functions.asp)
- [Python Functions](https://www.geeksforgeeks.org/python-functions/)
- [Built-in Functions in Python](https://docs.python.org/3/library/functions.html)
@@ -0,0 +1,17 @@
# Lists, Tuples, Sets, and Dictionaries
**Lists:** are just like dynamic sized arrays, declared in other languages (vector in C++ and ArrayList in Java). Lists need not be homogeneous always which makes it the most powerful tool in Python.
**Tuple:** A Tuple is a collection of Python objects separated by commas. In some ways, a tuple is similar to a list in terms of indexing, nested objects, and repetition but a tuple is immutable, unlike lists that are mutable.
**Set:** A Set is an unordered collection data type that is iterable, mutable, and has no duplicate elements. Python’s set class represents the mathematical notion of a set.
**Dictionary:** In python, Dictionary is an ordered (since Py 3.7) [unordered (Py 3.6 & prior)] collection of data values, used to store data values like a map, which, unlike other Data Types that hold only a single value as an element, Dictionary holds key:value pair. Key-value is provided in the dictionary to make it more optimized.
Visit the following resources to learn more:
- [Difference Between List, Tuple, Set and Dictionary in Python](https://www.youtube.com/watch?v=n0krwG38SHI)
- [Differences and Applications of List, Tuple, Set and Dictionary in Python](https://www.geeksforgeeks.org/differences-and-applications-of-list-tuple-set-and-dictionary-in-python/)
- [Tuples vs. Lists vs. Sets in Python](https://jerrynsh.com/tuples-vs-lists-vs-sets-in-python/)
- [Python for Beginners: Lists](https://thenewstack.io/python-for-beginners-lists/)
- [Python for Beginners: When and How to Use Tuples](https://thenewstack.io/python-for-beginners-when-and-how-to-use-tuples/)
@@ -0,0 +1,11 @@
# String Methods
Python does not have a character data type, a single character is simply a string with a length of 1. Square bracket can be used to access elements of the string.
There are methods which can be used on a string to best utilize it's wide range of functionalities.
Below Given resources can be utilised to learn more about them.
Visit the following resources to learn more:
- [Practical String Methods applications](https://www.youtube.com/watch?v=Ctqi5Y4X-jA&t=11s)
- [Comprehensive Study of String methods](https://www.w3schools.com/python/python_ref_string.asp)
- [String Slicing in Python](https://www.geeksforgeeks.org/string-slicing-in-python/)
@@ -0,0 +1,11 @@
# Python
Python is a high-level, interpreted, general-purpose programming language. Its design philosophy emphasizes code readability with the use of significant indentation. Python is dynamically-typed and garbage-collected.
Visit the following resources to learn more:
- [Official Website: Python](https://www.python.org/)
- [Tutorial Series: How to Code in Python](https://www.digitalocean.com/community/tutorials/how-to-write-your-first-python-3-program)
- [Python Wikipedia](https://en.wikipedia.org/wiki/Python_(programming_language))
- [Googles Python Class](https://developers.google.com/edu/python)
- [W3Schools - Python Tutorial](https://www.w3schools.com/python)
@@ -0,0 +1,4 @@
# Note
This roadmap specifically covers **Python and the ecosystem** around it. You will notice that it is missing things like version control, databases, software design, architecture and other things that are not directly related to Python; this is intentional. Have a look at the [Backend Roadmap](/backend) for a more comprehensive overview of the backend ecosystem.
@@ -0,0 +1,16 @@
# Arrays and Linked lists
Arrays store elements in contiguous memory locations, resulting in easily calculable addresses for the elements stored and this allows faster access to an element at a specific index. Linked lists are less rigid in their storage structure and elements are usually not stored in contiguous locations, hence they need to be stored with additional tags giving a reference to the next element. This difference in the data storage scheme decides which data structure would be more suitable for a given situation.
Visit the following resources to learn more:
- [Linked Lists vs Arrays](https://www.geeksforgeeks.org/linked-list-vs-array/)
- [Python Array Tutorial](https://www.freecodecamp.org/news/python-array-tutorial-define-index-methods/)
- [Python Arrays](https://www.geeksforgeeks.org/python-arrays/)
- [Arrays in Python](https://www.edureka.co/blog/arrays-in-python/)
- [Array Data Structure | Illustrated Data Structures](https://www.youtube.com/watch?v=QJNwK2uJyGs)
- [Linked List Data Structure | Illustrated Data Structures](https://www.youtube.com/watch?v=odW9FU8jPRQ)
@@ -0,0 +1,19 @@
# Heaps Stacks and Queues
**Stacks:** Operations are performed LIFO (last in, first out), which means that the last element added will be the first one removed. A stack can be implemented using an array or a linked list. If the stack runs out of memory, it’s called a stack overflow.
**Queue:** Operations are performed FIFO (first in, first out), which means that the first element added will be the first one removed. A queue can be implemented using an array.
**Heap:** A tree-based data structure in which the value of a parent node is ordered in a certain way with respect to the value of its child node(s). A heap can be either a min heap (the value of a parent node is less than or equal to the value of its children) or a max heap (the value of a parent node is greater than or equal to the value of its children).
Visit the following resources to learn more:
- [Heaps, Stacks, Queues](https://stephanosterburg.gitbook.io/scrapbook/coding/coding-interview/data-structures/heaps-stacks-queues)
- [Stack Data Structure | Illustrated Data Structures](https://www.youtube.com/watch?v=I5lq6sCuABE)
- [Queue Data Structure | Illustrated Data Structures](https://www.youtube.com/watch?v=mDCi1lXd9hc)
- [Stack in Python](https://www.geeksforgeeks.org/stack-in-python/)
- [How to Implement Python Stack?](https://realpython.com/how-to-implement-python-stack/)
- [Queue in Python](https://www.geeksforgeeks.org/queue-in-python/)
- [Python Stacks, Queues, and Priority Queues in Practice](https://realpython.com/queue-in-python/)
- [Heap Implementation in Python](https://www.educative.io/answers/heap-implementation-in-python)
@@ -0,0 +1,10 @@
# Hash Tables
Hash Table, Map, HashMap, Dictionary or Associative are all the names of the same data structure. It is a data structure that implements a set abstract data type, a structure that can map keys to values.
Visit the following resources to learn more:
- [Hash Table Data Structure | Illustrated Data Structures](https://www.youtube.com/watch?v=jalSiaIi8j4)
- [Hash Tables and Hashmaps in Python](https://www.edureka.co/blog/hash-tables-and-hashmaps-in-python/)
- [Build a Hash Table in Python](https://realpython.com/python-hash-table/)
@@ -0,0 +1,11 @@
# Binary Search Trees
A binary search tree, also called an ordered or sorted binary tree, is a rooted binary tree data structure with the key of each internal node being greater than all the keys in the respective node's left subtree and less than the ones in its right subtree
Visit the following resources to learn more:
- [Tree Data Structure | Illustrated Data Structures](https://www.youtube.com/watch?v=S2W3SXGPVyU)
- [How to Implement Binary Search Tree in Python](https://www.section.io/engineering-education/implementing-binary-search-tree-using-python/)
- [Problem Set](https://www.geeksforgeeks.org/binary-search-tree-data-structure/?ref=gcse)
@@ -0,0 +1,9 @@
# Recursion
Recursion is a method of solving a computational problem where the solution depends on solutions to smaller instances of the same problem. Recursion solves such recursive problems by using functions that call themselves from within their own code.
Visit the following resources to learn more:
- [Recursion in Python](https://www.geeksforgeeks.org/recursion/)
- [Recursion in Python: An Introduction](https://realpython.com/python-recursion/)
@@ -0,0 +1,10 @@
# Sorting Algorithms
Sorting refers to arranging data in a particular format. Sorting algorithm specifies the way to arrange data in a particular order. Most common orders are in numerical or lexicographical order.
The importance of sorting lies in the fact that data searching can be optimized to a very high level, if data is stored in a sorted manner.
Visit the following resources to learn more:
- [Sorting Algorithms in Python](https://realpython.com/sorting-algorithms-python/)
- [Python - Sorting Algorithms](https://www.tutorialspoint.com/python_data_structure/python_sorting_algorithms.htm)
@@ -0,0 +1,8 @@
# Data Structures and Algorithms
A data structure is a named location that can be used to store and organize data. And, an algorithm is a collection of steps to solve a particular problem. Learning data structures and algorithms allow us to write efficient and optimized computer programs.
Visit the following resources to learn more:
- [Learn DS & Algorithms](https://www.programiz.com/dsa)
- [Data Structures Illustrated](https://www.youtube.com/playlist?list=PLkZYeFmDuaN2-KUIv-mvbjfKszIGJ4FaY)
@@ -0,0 +1,15 @@
# Methods and Dunder
A method in python is somewhat similar to a function, except it is associated with object/classes. Methods in python are very similar to functions except for two major differences.
* The method is implicitly used for an object for which it is called.
* The method is accessible to data that is contained within the class.
Dunder or magic methods in Python are the methods having two prefix and suffix underscores in the method name. Dunder here means “Double Under (Underscores)”. These are commonly used for operator overloading. Few examples for magic methods are: __init__, __add__, __len__, __repr__ etc.
Visit the following resources to learn more:
- [Method vs Function in Python](https://www.tutorialspoint.com/difference-between-method-and-function-in-python)
- [Dunder or magic methods in Python](https://www.geeksforgeeks.org/dunder-magic-methods-python/)
- [Python - Magic or Dunder Methods](https://www.tutorialsteacher.com/python/magic-methods-in-python)
@@ -0,0 +1,9 @@
# Inheritance
Inheritance allows us to define a class that inherits all the methods and properties from another class.
Visit the following resources to learn more:
- [Python Inheritance](https://www.w3schools.com/python/python_inheritance.asp)
- [Inheritance in Python](https://www.javatpoint.com/inheritance-in-python)
@@ -0,0 +1,10 @@
# Classes
A class is a user-defined blueprint or prototype from which objects are created. Classes provide a means of bundling data and functionality together. Creating a new class creates a new type of object, allowing new instances of that type to be made. Each class instance can have attributes attached to it for maintaining its state. Class instances can also have methods (defined by their class) for modifying their state.
Visit the following resources to learn more:
- [Classes in Python](https://docs.python.org/3/tutorial/classes.html)
- [Python Classes and Objects](https://www.geeksforgeeks.org/python-classes-and-objects/)
- [Python Classes and Objects](https://www.w3schools.com/python/python_classes.asp)
@@ -0,0 +1,10 @@
# OOP
In Python, object-oriented Programming (OOPs) is a programming paradigm that uses objects and classes in programming. It aims to implement real-world entities like inheritance, polymorphisms, encapsulation, etc. in the programming. The main concept of OOPs is to bind the data and the functions that work on that together as a single unit so that no other part of the code can access this data.
Visit the following resources to learn more:
- [Object Oriented Programming in Python](https://realpython.com/python3-object-oriented-programming/)
- [Python OOP Concepts](https://www.geeksforgeeks.org/python-oops-concepts/)
- [Object Oriented Programming (OOP) In Python - Beginner Crash Course](https://www.youtube.com/watch?v=-pEs-Bss8Wc/)
- [OOP in Python One Shot](https://www.youtube.com/watch?v=Ej_02ICOIgs)
@@ -0,0 +1,10 @@
# Regular Expressions
A regular expression is a sequence of characters that specifies a search pattern in text. Usually such patterns are used by string-searching algorithms for "find" or "find and replace" operations on strings, or for input validation.
Visit the following resources to learn more:
- [Regular Expressions in Python](https://docs.python.org/3/library/re.html)
- [Python Regular Expressions](https://developers.google.com/edu/python/regular-expressions)
- [Python - Regular Expressions](https://www.tutorialspoint.com/python/python_reg_expressions.htm)
@@ -0,0 +1,9 @@
# Decorators
decorator is a design pattern in Python that allows a user to add new functionality to an existing object without modifying its structure. Decorators are usually called before the definition of a function you want to decorate.
Visit the following resources to learn more:
- [Python Decorators](https://www.datacamp.com/tutorial/decorators-python)
- [Decorators in Python](https://www.geeksforgeeks.org/decorators-in-python/)
- [Decorators in Python](https://www.youtube.com/watch?v=FXUUSfJO_J4)
@@ -0,0 +1,9 @@
# Lambdas
Python Lambda Functions are anonymous function means that the function is without a name. As we already know that the def keyword is used to define a normal function in Python. Similarly, the lambda keyword is used to define an anonymous function in Python.
Visit the following resources to learn more:
- [Python Lambda Functions](https://www.geeksforgeeks.org/python-lambda-anonymous-functions-filter-map-reduce/)
- [Lambdas in Python](https://www.w3schools.com/python/python_lambda.asp)
@@ -0,0 +1,8 @@
# Iterators
An iterator is an object that contains a countable number of values. An iterator is an object that can be iterated upon, meaning that you can traverse through all the values. Technically, in Python, an iterator is an object which implements the iterator protocol, which consist of the methods __iter__() and __next__() .
Visit the following resources to learn more:
- [Iterators in Python](https://www.w3schools.com/python/python_iterators.asp)
- [Python Iterators](https://www.geeksforgeeks.org/iterators-in-python/)
@@ -0,0 +1,9 @@
# Builtin Modules
Python interpreter has a number of built-in functions. They are always available for use in every interpreter session. Many of them have been discussed in previously. For example `print()` and `input()` for I/O, number conversion functions (`int()`, `float()`, `complex()`), data type conversions (`list()`, `tuple()`, `set()`) etc.
Visit the following resources to learn more:
- [Python Modules](https://www.digitalocean.com/community/tutorials/python-modules)
- [Python - Built-In Modules](https://www.knowledgehut.com/tutorials/python-tutorial/python-built-in-modules)
@@ -0,0 +1,9 @@
# Custom Modules
Modules refer to a file containing Python statements and definitions. A file containing Python code, for example: `example.py`, is called a module, and its module name would be example. We use modules to break down large programs into small manageable and organized files. Furthermore, modules provide reusability of code.
Visit the following resources to learn more:
- [Python Modules](https://docs.python.org/3/tutorial/modules.html)
- [Python Modules - Geeks for Geeks](https://www.geeksforgeeks.org/python-modules/)
- [Modules in Python](https://www.programiz.com/python-programming/modules)
@@ -0,0 +1,9 @@
# Modules
Modules refer to a file containing Python statements and definitions. A file containing Python code, for example: `example.py`, is called a module, and its module name would be example. We use modules to break down large programs into small manageable and organized files. Furthermore, modules provide reusability of code.
Visit the following resources to learn more:
- [Python Modules](https://docs.python.org/3/tutorial/modules.html)
- [Python Modules - Geeks for Geeks](https://www.geeksforgeeks.org/python-modules/)
- [Modules in Python](https://www.programiz.com/python-programming/modules)
@@ -0,0 +1,8 @@
# List Comprehensions
List comprehensions are a concise way to create a list using a single line of code in Python. They are a powerful tool for creating and manipulating lists, and they can be used to simplify and shorten code.
Visit the following resources to learn more:
- [Python - List Comprehension](https://www.w3schools.com/python/python_lists_comprehension.asp)
- [Python List Comprehensions](https://docs.python.org/3/tutorial/datastructures.html#list-comprehensions)
@@ -0,0 +1,12 @@
# Generator Compressions
Generator comprehensions are a concise way to create a generator using a single line of code in Python. They are similar to list comprehensions, but instead of creating a list, they create a generator object that produces the values on-demand, as they are needed.
Generator comprehensions are a useful tool for creating generators that generate a large sequence of values, as they allow you to create the generator without creating the entire sequence in memory at once. This can be more efficient and use less memory, especially for large sequences.
Visit the following resources to learn more:
- [Python Generator Expressions](https://www.pythontutorial.net/advanced-python/python-generator-expressions/)
- [List Comprehensions in Python and Generator Expressions](https://djangostars.com/blog/list-comprehensions-and-generator-expressions/)
- [Python | Generator Expressions](https://www.geeksforgeeks.org/generator-expressions/)
@@ -0,0 +1,15 @@
# Python Paradigms
Python is a multi-paradigm programming language, which means that it supports several programming paradigms. Some of the main paradigms supported by Python are:
- Imperative programming: This paradigm focuses on telling the computer what to do, step by step. Python supports imperative programming with features such as variables, loops, and control structures.
- Object-oriented programming (OOP): This paradigm is based on the idea of objects and their interactions. Python supports OOP with features such as classes, inheritance, and polymorphism.
- Functional programming: This paradigm is based on the idea of functions as first-class citizens, and it emphasizes the use of pure functions and immutable data. Python supports functional programming with features such as higher-order functions, lambda expressions, and generators.
- Aspect-oriented programming: This paradigm is based on the idea of separating cross-cutting concerns from the main functionality of a program. Python does not have built-in support for aspect-oriented programming, but it can be achieved using libraries or language extensions.
Python's support for multiple paradigms makes it a versatile and flexible language, and it allows developers to choose the paradigm that best fits their needs.
Visit the following resources to learn more:
- [Programming Paradigms in Python](https://www.geeksforgeeks.org/programming-paradigms-in-python/)
@@ -0,0 +1,3 @@
# Advanced Topics
Now that you have covered the basics of Python, let's move on to some advanced topics. In this section, you will be learning about things like OOP, Lambdas, Decorators, Iterators, Modules, and more.
@@ -0,0 +1,9 @@
# Git
[Git](https://git-scm.com/) is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
Visit the following resources to learn more:
- [Version Control System Introduction](https://www.youtube.com/watch?v=zbKdDsNNOhg)
- [Git & GitHub Crash Course For Beginners](https://www.youtube.com/watch?v=SWYqp7iY_Tc)
- [Learn Git in 20 Minutes](https://youtu.be/Y9XZQO1n_7c?t=21)
@@ -0,0 +1,9 @@
# Version Control Systems
Version control systems allow you to track changes to your codebase/files over time. They allow you to go back to some previous version of the codebase without any issues. Also, they help in collaborating with people working on the same code – if you’ve ever collaborated with other people on a project, you might already know the frustration of copying and merging the changes from someone else into your codebase; version control systems allow you to get rid of this issue.
Visit the following resources to learn more:
- [Version Control System Introduction](https://www.youtube.com/watch?v=zbKdDsNNOhg)
- [Git & GitHub Crash Course For Beginners](https://www.youtube.com/watch?v=SWYqp7iY_Tc)
- [Learn Git in 20 Minutes](https://youtu.be/Y9XZQO1n_7c?t=21)
@@ -0,0 +1,11 @@
# GitHub
[GitHub](https://github.com) is a provider of internet hosting for software development and version control using Git. It offers the distributed version control and source code management functionality of Git, plus its own features.
Visit the following resources to learn more:
- [GitHub: Quickstart](https://docs.github.com/en/get-started/quickstart/hello-world)
- [What is GitHub?](https://www.youtube.com/watch?v=w3jLJU7DT5E)
- [Git vs. GitHub: Whats the difference?](https://www.youtube.com/watch?v=wpISo9TNjfU)
- [Git and GitHub for Beginners](https://www.youtube.com/watch?v=RGOj5yH7evk)
- [Git and GitHub - CS50 Beyond 2019](https://www.youtube.com/watch?v=eulnSXkhE7I)
@@ -0,0 +1,8 @@
# GitLab
[GitLab](https://gitlab.com) is a provider of internet hosting for software development and version control using Git. It offers the distributed version control and source code management functionality of Git, plus its own features.
Visit the following resources to learn more:
- [GitLab Website](https://gitlab.com/)
- [GitLab Documentation](https://docs.gitlab.com/)
@@ -0,0 +1,8 @@
# BitBucket
[BitBucket](https://bitbucket.com) is a provider of internet hosting for software development and version control using Git. It offers the distributed version control and source code management functionality of Git, plus its own features.
Visit the following resources to learn more:
- [BitBucket Website](https://bitbucket.com/)
- [How to use BitBucket?](https://bitbucket.org/product/guides)
@@ -0,0 +1,9 @@
# Repo Hosting Services
There are different repository hosting services with the most famous one being GitHub, GitLab and BitBucket. I would recommend creating an account on GitHub because that is where most of the OpenSource work is done and most of the developers are.
Visit the following resources to learn more:
- [GitHub: Where the world builds software](https://github.com)
- [GitLab: Iterate faster, innovate together](https://gitlab.com)
- [BitBucket: The Git solution for professional teams](https://bitbucket.com)
@@ -0,0 +1,10 @@
# PyPI
PyPI, typically pronounced pie-pee-eye, is a repository containing several hundred thousand packages. These range from trivial Hello, World implementations to advanced deep learning libraries.
Visit the following resources to learn more:
- [PyPI Official Website](https://pypi.org/)
- [Getting Started with Pip and PyPI in Python](https://www.youtube.com/watch?v=bPSfNKvhooA)
- [How to Publish an Open-Source Python Package to PyPI](https://realpython.com/pypi-publish-python-package/)
@@ -0,0 +1,9 @@
# Pip
The standard package manager for Python is pip. It allows you to install and manage packages that aren’t part of the Python standard library.
Visit the following resources to learn more:
- [Using Pythons pip to Manage Your Projects Dependencies](https://realpython.com/what-is-pip/)
- [Python PIP Introduction](https://www.w3schools.com/python/python_pip.asp)
@@ -0,0 +1,10 @@
# Conda
Conda is an open source package management system and environment management system that runs on Windows, macOS, and Linux. Conda quickly installs, runs and updates packages and their dependencies. Conda easily creates, saves, loads and switches between environments on your local computer. It was created for Python programs, but it can package and distribute software for any language.
Conda as a package manager helps you find and install packages. If you need a package that requires a different version of Python, you do not need to switch to a different environment manager, because conda is also an environment manager. With just a few commands, you can set up a totally separate environment to run that different version of Python, while continuing to run your usual version of Python in your normal environment.
Visit the following resources to learn more:
- [Conda Docs](https://docs.conda.io/en/latest/)
@@ -0,0 +1,8 @@
# Package Managers
Package managers allow you to manage the dependencies (external code written by you or someone else) that your project needs to work correctly.
`PyPI` and `Pip` are the most common contenders but here are some other options available as well:
- [**Poetry**](https://python-poetry.org/) : Manages dependencies via isolation
- [**PIPX**](https://github.com/pypa/pipx) : Isolation-based app deployment, so you don't have to affect the system or user PIP libraries. It enables you to try individual python CLI tools without affecting other dependencies.
@@ -0,0 +1,10 @@
# Django
Django is a free and open-source, Python-based web framework that follows the model–template–views architectural pattern. It is maintained by the Django Software Foundation, an independent organization established in the US as a 501 non-profit
Visit the following resources to learn more:
- [Django Official Website](https://www.djangoproject.com/)
- [Official Getting Started Guide](https://www.djangoproject.com/start/)
- [Python Django Tutorial for Beginners](https://www.youtube.com/watch?v=rHux0gMZ3Eg)
- [Is Django synchronous or asynchronous?](https://stackoverflow.com/questions/58548089/django-is-synchronous-or-asynchronous)
@@ -0,0 +1,8 @@
# Flask
Flask is a micro web framework written in Python. It is classified as a microframework because it does not require particular tools or libraries. It has no database abstraction layer, form validation, or any other components where pre-existing third-party libraries provide common functions.
Visit the following resources to learn more:
- [Flask - Official Website](https://flask.palletsprojects.com/)
- [Flask - Official Tutorial](https://flask.palletsprojects.com/en/2.2.x/tutorial/)
@@ -0,0 +1,10 @@
# Pyramid
Pyramid is a general, open source, web application development framework built in python. It allows python developer to create web applications with ease. Pyramid is backed by the enterprise knowledge Management System KARL (a George Soros project).
Visit the following resources to learn more:
- [Pyramid - Official Website](https://trypyramid.com/)
- [Pyramid Documentation](https://docs.pyramid.com/en/latest/)
- [Pyramid Framework Introduction](https://www.tutorialspoint.com/python_web_development_libraries/python_web_development_libraries_pyramid_framework.htm)
@@ -0,0 +1,7 @@
# Synchronous Frameworks
Synchronous frameworks in python handle the flow of data in a synchronous manner. On a s̲y̲n̲c̲h̲r̲o̲n̲o̲u̲s̲ request, you make the request and stop executing your program until you get a response from the HTTP server (or an error if the server can't be reached, or a timeout if the sever is taking way, way too long to reply) The interpreter is blocked until the request is completed (until you got a definitive answer of what happened with the request: did it go well? was there an error? a timeout?... ).
Visit the following resources to learn more:
- [Sync vs. Async Python: What is the Difference?](https://blog.miguelgrinberg.com/post/sync-vs-async-python-what-is-the-difference)
@@ -0,0 +1,10 @@
# gevent
gevent is a Python library that provides a high-level interface to the event loop.
It is based on non-blocking IO (libevent/libev) and lightweight greenlets. Non-blocking IO means requests waiting for network IO won't block other requests; greenlets mean we can continue to write code in synchronous style.
Visit the following resources to learn more:
- [gevent — Official Website](http://www.gevent.org/)
- [GitHub Repository](https://github.com/gevent/gevent)
- [gevent For the Working Python Developer](https://sdiehl.github.io/gevent-tutorial/)
@@ -0,0 +1,12 @@
# AIOHTTP
aiohttp is a Python 3.5+ library that provides a simple and powerful asynchronous HTTP client and server implementation.
Visit the following resources to learn more:
- [Official Docs](https://docs.aiohttp.org/en/stable/)
- [Python Asyncio, Requests, Aiohttp | Make faster API Calls](https://www.youtube.com/watch?v=nFn4_nA_yk8)
- [Creating a RESTful API with Python and aiohttp](https://tutorialedge.net/python/create-rest-api-python-aiohttp/)
@@ -0,0 +1,11 @@
# Tornado
Tornado is a scalable, non-blocking web server and web application framework written in Python. It was developed for use by FriendFeed; the company was acquired by Facebook in 2009 and Tornado was open-sourced soon after.
Visit the following resources to learn more:
- [Tornado — Official Website](https://www.tornadoweb.org/)
- [A Step-by-Step Tutorial on Python Tornado](https://phrase.com/blog/posts/tornado-web-framework-i18n/)
- [Tornado Python Framework](https://www.youtube.com/watch?v=-gJ21qzpieA)
@@ -0,0 +1,9 @@
# Sanic
Sanic is a Python 3.7+ web server and web framework that's written to go fast. It allows the usage of the async/await syntax added in Python 3.5, which makes your code non-blocking and speedy.
Visit the following resources to learn more:
- [Sanic Official Website](https://sanic.dev/en/)
- [Introduction to Sanic Web Framework – Python](https://www.geeksforgeeks.org/introduction-to-sanic-web-framework-python/)
@@ -0,0 +1,7 @@
# Asynchronous
Asynchronous programming is a type of parallel programming in which a unit of work is allowed to run separately from the primary application thread. When the work is complete, it notifies the main thread about completion or failure of the worker thread.
This style is mostly concerned with the asynchronous execution of tasks. Python has several asynchronous frameworks that are used to implement asynchronous programming.
Visit the following resources to learn more:
- [Top 5 Asynchronous Web Frameworks for Python](https://geekflare.com/python-asynchronous-web-frameworks/)
@@ -0,0 +1,2 @@
# FastAPI
@@ -0,0 +1,8 @@
# Python Frameworks
Frameworks automate the common implementation of common solutions which gives the flexibility to the users to focus on the application logic instead of the basic routine processes.
Frameworks make the life of web developers easier by giving them a structure for app development. They provide common patterns in a web application that are fast, reliable and easily maintainable.
Visit the following resources to learn more:
- [Pyscript: A Browser-Based Python Framework for the 99%](https://thenewstack.io/pyscript-a-browser-based-python-framework/)
@@ -0,0 +1,9 @@
# PyUnit / Unittest
PyUnit is an easy way to create unit testing programs and UnitTests with Python. (Note that docs.python.org uses the name "unittest", which is also the module name.)
Visit the following resources to learn more:
- [How To Use unittest to Write a Test Case for a Function in Python](https://www.digitalocean.com/community/tutorials/how-to-use-unittest-to-write-a-test-case-for-a-function-in-python)
- [PyUnit Docs](https://wiki.python.org/moin/PyUnit%C2%A0)
- [A Gentle Introduction to Unit Testing in Python](https://machinelearningmastery.com/a-gentle-introduction-to-unit-testing-in-python/)
@@ -0,0 +1,10 @@
# pytest
pytest is a mature full-featured Python testing tool that helps you write better programs.
Visit the following resources to learn more:
- [Official Docs](https://docs.pytest.org/)
- [Pytest Tutorial](https://www.tutorialspoint.com/pytest/index.htm)
@@ -0,0 +1,8 @@
# Doctest
Python’s standard library comes equipped with a test framework module called doctest. The doctest module programmatically searches Python code for pieces of text within comments that look like interactive Python sessions. Then, the module executes those sessions to confirm that the code referenced by a doctest runs as expected.
Visit the following resources to learn more:
- [Doctest module reference](https://docs.python.org/3/library/doctest.html)
- [How To Write Doctests in Python](https://www.digitalocean.com/community/tutorials/how-to-write-doctests-in-python)
@@ -0,0 +1,8 @@
# Nose
Nose is another opensource testing framework that extends `unittest` to provide a more flexible testing framework.
Visit the following resources to learn more:
- [Introduction to Nose](https://nose.readthedocs.io/en/latest/)
- [Getting Started With Nose In Python](https://www.lambdatest.com/blog/selenium-python-nose-tutorial/)
@@ -0,0 +1,9 @@
# Testing
A key to building software that meets requirements without defects is testing. Software testing helps developers know they are building the right software. When tests are run as part of the development process (often with continuous integration tools), they build confidence and prevent regressions in the code.
Visit the following resources to learn more:
- [What is Software Testing?](https://www.guru99.com/software-testing-introduction-importance.html)
- [Testing Pyramid](https://www.browserstack.com/guide/testing-pyramid-for-test-automation)
- [Automate Quality, Security Checks for Python Library Dependencies](https://thenewstack.io/automate-quality-security-checks-for-python-library-dependencies/)
View File
+49
View File
@@ -0,0 +1,49 @@
---
jsonUrl: "/jsons/roadmaps/python.json"
pdfUrl: "/pdfs/roadmaps/python.pdf"
order: 7
briefTitle: "Python"
briefDescription: "Step by step guide to becoming a Python Developer in 2023"
title: "Python Developer"
description: "Step by step guide to becoming a Python developer in 2023"
hasTopics: true
dimensions:
width: 992
height: 1259.03
schema:
headline: "Python Roadmap"
description: "Learn Python with this interactive step by step guide in 2023. We also have resources and short descriptions attached to the roadmap items so you can get everything you want to learn in one place."
imageUrl: "https://roadmap.sh/roadmaps/python.png"
datePublished: "2023-01-05"
dateModified: "2023-01-20"
seo:
title: "Learn to become a modern Python developer"
description: "Community driven, articles, resources, guides, interview questions, quizzes for python development. Learn to become a modern Python developer by following the steps, skills, resources and guides listed in this roadmap."
keywords:
- "guide to becoming an python developer"
- "python developer roadmap"
- "python roadmap"
- "become python developer"
- "python developer skills"
- "python skills test"
- "skills for python development"
- "learn python development"
- "what is python"
- "python quiz"
- "python interview questions"
relatedRoadmaps:
- "backend"
- "devops"
- "golang"
- "java"
- "javascript"
- "nodejs"
sitemap:
priority: 1
changefreq: "monthly"
tags:
- "roadmap"
- "main-sitemap"
- "skill-roadmap"
---