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 command that cause actions. Learn more about this using the resources below.
GitHub Fundamentals and Git Basics
Mark as done
Done
GitHub is the largest online software development platform used for storing, tracking, and collaborating on software projects. Git on the other hand, is a free and open-source version control system and DevOps tool used for source code management. Learn how to use Git and GitHub efficiently to manage your personal and professional software development projects.
History, Versions and Features
Mark as done
Done
Python is a high-level general-purpose programming language. 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.
Interpreters, Code Editors or IDEs
Mark as done
Done
Python interpreters are exactly what the name implies. They 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 from the resources.
Basic Syntax
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.
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.
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. A variable is a reserved memory location to store values. Learn more about Data Types and variables 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
A 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.
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 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 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 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
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 using the resources below.
Dunder 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 Function
Mark as done
Done
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.
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, like the other three containers we mentioned above, 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
Rename/Copy/managing files
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
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.
REST API
Mark as done
Done
REST stands for REpresentational State Transfer. It is an architectural style that defines a set of rules in order to create Web Services. Learn more from the resources below.
SOAP API
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.
TensorFlow
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.
PyTorch
Mark as done
Done
SciPy
Theano
Mark as done
Done
Theano is a Python library that allows you to define, optimize, and evaluate mathematical operations involving multi-dimensional arrays efficiently. Learn more from the resources below.
Keras
Scikit-learn
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.
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
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.
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.
Matplotlib
Django
Mark as done
Done
Django is considered a high-level Python web framework and the most popular. It is an open-source full-stack web framework that enables rapid development of secure and maintainable websites. Learn more from the resources below.
Web2py
Mark as done
Done
Web2py is a free, open-source full-stack web application framework. It is written in the Python programming language and allows web developers to program dynamic web content. Learn more from the resources below.
Flask
Mark as done
Done
Flask is a microframework for building web applications. It is written in Python and is classified as microframework because it does not require particular tools or libraries. Learn more from the resources below.
CherryPy
TurboGears
Mark as done
Done
SQLite
MySQL
Oracle
Mark as done
Done
Oracle Database is a multi-model database management system. It is an object-relational database management system often used by global enterprises. Learn more from the resources below.
PostgreSQL
Linear Regression
Mark as done
Done
Linear regression performs the task to predict a dependent variable value (y) based on a given independent variable (x). Learn more from the resources below.
Logistic Regression
Mark as done
Done
Logistic Regression is a Machine Learning classification algorithm that is used to predict the probability of a categorical dependent variable. Learn more from the resources below.
Decision Tree Classification
Mark as done
Done
Decision trees are a way of modeling decisions and outcomes, mapping decisions in a branching structure. Learn more from the resources below.
KNN Algorithms
Mark as done
Done
K-Nearest Neighbors, or KNN for short, is one of the simplest machine learning algorithms. It is based on the notion that you can predict the features of a data point based on the features of its neighbors. Learn more about this from the resources below.
Random Forest
Mark as done
Done
Random forest is a Machine Learning Classification Algorithm that is used in Regression problems. It consists of many Decision Trees, hence the name - random forest. Learn more about this from the resources below.
Support Vector Machine (SVM)
Mark as done
Done
TensorFlow
PyTorch
Mark as done
Done
Theano
Mark as done
Done
Keras
Unit test
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.