# Python Programming

Every programming language essentially has two parts to it: **Syntactic** and **Algorithms** or in simple words, programming languages are instructions to the computer, how we give instructions is defined by syntactic part, and what are all the instructions, the logical part can be put in the category of algorithm part.

Only Syntactic parts vary, in general, from one programming language to other, at least from the implementation point of view. The algorithmic part almost remains the same for any programming language (at least for all object-oriented programming languages)

## About Different Sections

Prior knowledge of computer science terminology is expected, or if you have worked on any of the programming languages then it would be the best. Here, the focus is not to explain the basic and nitty-gritty, but to explain all concepts through real-life applications.

Use cases that have value,  or tangible aspects of coding helps more in the learning process, at least in my opinion. Therefore, this series has been created keeping in view, how should one proceed step by step to develop a full-scale website, just based on Python Programming Language.&#x20;

If you don't understand or find it difficult to understand the use cases, better to go through few quick python courses, as mentioned in the next reference section

I will be referring to [System Design](https://ankit-apdc.gitbook.io/system-design/) (still updating, you can see the outline at least) for practical use cases whenever required

If there is anything particular you would like to discuss or understand, feel free to contact:

**`Ankit Choudhary`**   |   `ankit.apdc@gmail.com`   |   [`Linkedin`](https://www.linkedin.com/in/choudharyankit/)

## References for Python Basics

{% hint style="info" %}
If don't have exposure to any programming language, then better to go through some well-organized content from the theory point of view.&#x20;

[Mosh Hamedani 6.25 hours long tutorial](https://www.youtube.com/watch?v=_uQrJ0TkZlc)

[freeCodeCamp.org 4.5 hours long Youtube Lecture](https://www.youtube.com/watch?v=rfscVS0vtbw\&vl=en)

[Edureka: 12 hours Youtube Video](https://www.youtube.com/watch?v=WGJJIrtnfpk)

[Programiz is good for a quick recap](https://www.programiz.com/python-programming)
{% endhint %}

## Quick Points About Python

{% hint style="success" %}
**Many well-known firms are now using Python in their technology stacks**

* **Instagram**. Instagram, the world's biggest online photo-sharing app, uses Python on its backend.
* **Google**. Google is the most widely used search engine in the world with over 75% of the market share.&#x20;
* **Spotify, Netflix**, **Uber**, **Dropbox**, **Pinterest**
  {% endhint %}

> - Python is completely object oriented, and not “statically typed” (search difference between object oriented and functional programming, it's ok if you don't know the difference)
> - No not need to declare variables before using them, or declare their type
> - Every variable in Python is an object
> - Indentation is required, no need to add line ending symbol (Example ; in Javascript etc)
> - Python 2.x and 3.x are available, I would recommend to use python version > 3 (try above 3.6)
> - Creating virtual environment and working in that virtual environment is the best (if not working in a container, if not already aware with **Docker** and would like to read: [here is the link](https://ankit-apdc.gitbook.io/system-design/deployment-and-installation))
> - Python is an **interpreted** language. Meaning, unlike languages like *C* and its variants, Python does not need to be compiled before it is run. Other interpreted languages include *PHP* and *Ruby*.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ankit-apdc.gitbook.io/python-1/master.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
