Python
Python a high-level, general-purpose programming language. It is one of the most popular programming languages used by software developers and a powerful programming skill to have. This roadmap details the steps and knowledge that anyone interested in learning about Python should be aware of to begin their programming journey.
Bash-Linux Commands
Mark as done
Done
Understanding basic command lines for Bash-Linux command processors should be the starting point. Bash is a command processor that typically runs in a text window where the user types commands that cause actions. Learn more about this using the resources below.
GitHub Fundamentals and Git Basics
Mark as done
Done
Learn how to use Git and GitHub efficiently to manage your personal and professional software development projects.
History, Versions and Features of Python
Mark as done
Done
Learn about the history, versions and features of the python programming language. These resources cover all background information you would need to understand why python is one of the most popular and effective programming languages to date.
Python Interpreters, Code Editors or IDEs
Mark as done
Done
Python interpreters take an interactive command and execute ( read = interpret) it to the language which computer hardware or system can understand. Python code editors or IDEs Integrated Development Environment) are designed for the developers to code and debug programs easily. Learn more with the resources below.
Basic Syntax in Python
Mark as done
Done
Syntax is one of the basic requirements that you must know to code in any language. Just like a natural language, computer programming language comprises a set of predefined words which are called keywords. In Python, you have to know the rules of writing the programming language and using these keywords properly and in what contexts.
Conditional Statement
Mark as done
Done
Conditional statements are also called decision-making statements. In Python, the program evaluates the code to see if it meets the specific condition. The conditions are evaluated and processed as true or false. If this is found to be true, the program is run as needed. Learn more with the resources below.
Strings and String Manipulation
Mark as done
Done
Python strings are "immutable". This means they cannot be changed after they are created. Therefore, string manipulation is the process where new strings are created to represent computed values because of their immutable property. Learn more with the resources below.
Python Operators
Mark as done
Done
Python Operators are special symbols in Python programming that carry out arithmetic or logical computation. The value that the operator acts on is referred to as an operand. Here are some resource links where you can learn more about Operators in Python.
Data Types
Mark as done
Done
Data Types in Python are the classification or categorization of data items. Every value in Python has a datatype. Therefore, Data Types represents the kind of value that tells what operations can be performed on a particular data. Learn more about Data Types with the following resources.
Loops
Mark as done
Done
Basically, statements in Python programming are executed sequentially: i.e. the first statement in a function is executed first, followed by the second, etc. However, there may be a situation when you need to execute a block of code several times and this is where a loop statement comes in. A loop statement allows us to execute a statement or group of statements multiple times. Learn more about loops and the types of loops statements with these resources.
Functions
Mark as done
Done
In Python, a function is a block of organized, reusable code that is used to perform a single, related action. Python gives you many built-in functions like print(), etc. but it is also possible to create your own functions. Learn more about functions in python using these resources.
Arrays and Linked Lists
Mark as done
Done
In Python, an Array is a container which can hold a fixed number of items and these items should be of the same type. The idea is to store multiple items of the same type together using these containers. A linked list is a linear data structure that includes a series of connected nodes. In some way, one can say a linked list is an ordered collection of nodes, where each node stores the data and the address of the next node.
Tuples and Dictionaries
Mark as done
Done
A Tuple is a collection of Python objects separated by commas. It is similar to a list with the only difference being that the elements in a tuple cannot be changed once it has been assigned. In other words, elements in a tuple are immutable. A dictionary is an unordered collection that contains "key: value" pairs separated by commas inside curly brackets. The values of a dictionary can be of any type, but the keys must be of an immutable data type such as strings, numbers, or tuples.
Stacks and Queues
Mark as done
Done
Stacks and queues are similar. They’re both linear collections of items and the difference lies in the order that items are accessed. With a queue you remove the item least recently added (first-in, first-out or FIFO); and with a stack you remove the item most recently added (last-in, first-out or LIFO).
Divide and Conquer Algorithm
Mark as done
Done
Divide and Conquer algorithm is a strategy of solving a large problem by dividing the problem into smaller subproblems and then solving each problem independently.
Sets and Slicing
Mark as done
Done
A Set is an unordered collection data type that is iterable, mutable and has no duplicate elements. Slicing in Python is a feature that enables accessing parts of sequences like strings, tuples, and lists. You can also use them to modify or delete the items of mutable sequences such as lists and sets. Learn more about these using these resources.
Hashing, Hash Tables, Graph Traversing
Mark as done
Done
Hashing in Python means using some function or algorithm to map object data to some representative integer value. Hash tables store key-value pairs but the key is generated through a hashing function. Graph traversal is a technique used to search for a vertex in a graph. A graph traversal finds the edges to be used in the search process without creating loops. Learn more about these concepts from the resources below.
Sorting algorithms
Mark as done
Done
Sorting Algorithms in Python are a set of instructions that take an array or list as an input and arrange the items into a particular order. Learn more about sorting algorithms with these resources.
Decorators
Mark as done
Done
Decorators are powerful tools in Python that allow programmers to modify the behavior of function or class. Decorators add functionality to an existing code, without permanently modifying it. Learn more about Python Decorators with these resources.
APIs (Application Programming Interfaces)
Mark as done
Done
An API (Application Programming Interface) is a set of programming instructions and standards for accessing web based software applications. Learn more about using APIs with python with these resources.
Recursion
Mark as done
Done
Recursion is the process of defining something in terms of itself. itself. In simple words, it is a process in which a function calls itself directly or indirectly. A function that calls itself is a recursive function. Learn more about Recursion with these resources.
Dynamic Programming
Mark as done
Done
Dynamic Programming, not to be confused in definition as "Divide and Conquer" is a problem-solving technique for resolving complex problems by recursively breaking them up into sub-problems, which are then each solved individually. Learn more about Dynamic Programming with these resources.
Binary Search Trees
Mark as done
Done
A Binary Search Tree (BST) is a tree that satisfies the following conditions: 1. The left subtree of a node has a key less than or equal to its parent node's key. 2. The right subtree of a node has a key greater than to its parent node's key. Learn more with these resources.
Functional Programming
Mark as done
Done
Functional Programming is a coding style that focuses on defining what to do, instead of performing some action. Python has many constructs that enable a programmer to dabble in functional programming. You can learn more about this with the resources below.
Classes and Objects
Mark as done
Done
A class in Python is a code template for creating objects. Classes are essentially a template to create your objects. An object in Python is created using the constructor of the class. Objects get their variables and functions from classes. Learn more about Classes and Objects with the resources below.
Object Oriented Programming
Mark as done
Done
Python is an object-oriented language as such, Object-Oriented Programming (OOPs) in Python is a programming paradigm that uses objects and classes in programming. Learn more about this using the resources below.
Built-in Functions
Mark as done
Done
Python built-in functions are defined as the functions whose functionality is pre-defined in Python. In other words, these functions are readily available for use. Learn more about Built-in functions in Python using these resources.
Regular Expressions
Mark as done
Done
A regular expression (regex) is a special sequence of characters that helps you match or find other strings or sets of strings, using a specialized syntax held in a pattern. In other words, we can match and extract any string pattern from the text with the help of regular expressions. Learn more about this using the resources below.
Methods in Python
Mark as done
Done
Methods are another kind of function that reside in classes. You create and work with methods in Python in precisely the same way that you do functions, except that methods are always associated with a class. Learn more about Methods and also the difference between Methods and Functions in Python, using the resources below.
Dunder (Magic) Methods
Mark as done
Done
Dunder methods or magic methods can help override functionality for built-in functions for custom classes. They are easy to identify as they are preceded and succeeded by double underscores. Learn more about Dunder Methods using the resources below.
Lambda Functions
Mark as done
Done
Python Mathematical Modules
Mark as done
Done
Python math module is defined as the most famous mathematical functions, which includes trigonometric functions, representation functions, logarithmic functions, etc. Learn more about this using these resources.
DefaultDict and OrderedDict modules
Mark as done
Done
Defaultdict is a sub-class of the dictionary class that returns a dictionary-like object. Ordered dictionaries are just like regular dictionaries, however, they possess some extra functionalities relating to ordering operations. Learn more about this using the resources below.
Pip and PyPi Packaging
Mark as done
Done
Pip is a Python Package manager and PyPI (Python Package Index) is where all the official modules for Python are stored by the Python community. Learn more about these using the resources below.
Counter, Sys modules
Mark as done
Done
Python Counter is a subclass of ‘dict’. It keeps a count of the number of occurrences of any value in the container. The sys module provides a number of functions and variables which can be used to manipulate different parts of the Python runtime environment. Learn more about these using the resources below.
Random Modules
Mark as done
Done
Python Random module is an in-built module you can use to generate random numbers. Nevertheless, the random numbers generated are considered pseudo-random numbers, which means they are not truly random. Learn more about this using the resources below.
Datetime and calendar modules
Mark as done
Done
Python datetime module helps coders manage the complexities of date and time computation in Python. The calendar module inbuilt module that handles operations related to the calendar. Learn more about these topics using the resources below.
Read/Write Files in Python
Rename/Copy/managing files
Mark as done
Done
Learn how to perform some basic file operations in python using these resources.
OS module
Mark as done
Done
Python OS module provides the facility to establish the interaction between the user and the operating system. It lets coders work with files and directories. Learn more about this using the resources below.
Zipping Files and Directories
Mark as done
Done
Learn more about zipping files and python directories using the resources below.
API Types
Mark as done
Done
An API, or Application Programming Interface, is a server that you can use to retrieve and send data using code. The majority of API communications is synchronous and uses a request-response pattern. Learn about the various types of APIs and how they function using the resources below.
API Protocols and Architectures
Mark as done
Done
API Protocols are basically rules that govern the use and application of APIs. API architecture is the process of developing a software interface that exposes backend data and application functionality for use in new applications. Learn more about API Protocols and Architectures using the resources below.
Important Python Libraries
Mark as done
Done
Learn more with the resources below, about some of the important libraries in Python that every coder should know and be familiar with.
Unit testing
Mark as done
Done
A Unit Test in Python is a small test that checks that a single component in your application operates in the right way. Learn more about Unit Test using the resources below.
PyTest
Mark as done
Done
PyTest is a testing framework that allows users to write test codes using Python programming language. PyTest is mainly used for writing tests for APIs. Learn more about PyTest using the resources below.
Doctest
Mark as done
Done
Doctest in Python lets you test your code by running examples embedded in the documentation and verifying that they produce the expected results. Learn more about Doctest using the resources below.
Pandas
Mark as done
Done
Pandas is a fast and flexible open-source data analysis and manipulation tool, built on top of the Python programming language. Learn more about this from the resources below.
Numpy
Mark as done
Done
NumPy is a library for Python Programming Language used for working with arrays. It is also used for working in the domain of linear algebra, fourier transform, and matrices. Learn more about this from the resources below.
Web Scraping
Mark as done
Done
Web Scraping (also called web data mining or web harvesting) can be defined as the process of extracting data from the internet automatically with specific programming tools. Learn more about this from the resources below.
Web Scraping Tool - Scrapy
Mark as done
Done
Scrapy is an open-source framework written in Python language and used for extracting the data a user needs from websites. Learn more about this tool from the resources below.
Web Scraping Tool - Selenium
Mark as done
Done
Selenium is a powerful open-source web-based tool for controlling web browsers through programs and performing browser automation. Learn more about this tool from the resources below.
Matplotlib
Mark as done
Done
Matplotlib is a comprehensive library for creating static, animated, and interactive visualizations in Python. Learn more about this from the resources below.