If I could, THIS is how I will learn Python again 🐍
Tags: python, beginners, tutorial, learning
Published: 2023-11-26 11:09:45

**tldr;** [official python docs](https://docs.python.org/3/tutorial/index.html)

> Unlocking the door to knowledge requires the right keys: curiosity, persistence, and a sprinkle of passion. Learning isn't a task, it's an adventure waiting to be embraced.


Python being one of the most used language in programming is surprisingly one of the easiest to learn as well.


Before we start, we need to set you up with your Python interpreter as well as the IDE you will be using.

## Installation
### Windows Users
Go to https://www.python.org/downloads/ and find the version that fits you (or is required for your project/company). If you are looking for the latest version then the **Download Python 3.12.0** is all you need to get started.
![Screenshot of python.org page](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qhl67qbc6pxbaknhuy8q.png)

After downloading the setup you need to install it on your PC. 
I recommend checking the checkbox that asks you to add python to PATH variable.

### Linux Users
Python is already installed in Linux but usually it's the Python2 instead of the new Python3
Although, you can use the terminal to install the latest version as well. on Ubuntu it is.
```cmd
sudo apt-get update
sudo apt-get install python3.12
```

### MAC Users
In general, the Mac OS x systems have already installed a version of python, which can be used.
Use this official website to download python.
{% embed https://www.python.org/downloads/macos/ %}

If you want another, you can use brew.
```
brew install pyenv
pyenv install 3.12.0
```

**NOTE:** Most of the time you don't really need to use the terminal to install python and you can get away with it using the python.org website itself.


<hr>


## Which IDE?
IDK Just use whatever you like...
Personally, I use [VSCode](https://code.visualstudio.com/). Don't ask why. I just use it.
If you really are serious about Python then maybe it's better to choose a good IDE from the start and use that and learn its shortcuts since shortcuts help you speed up your productivity a lot than what you think it does.
Following are some of the IDEs out there.
* Visual Studio Code
{% embed https://code.visualstudio.com/ %}
* Pycharm
{% embed https://www.jetbrains.com/pycharm/ %}
* Spyder
{% embed https://www.spyder-ide.org/ %}
* Thonny
{% embed https://thonny.org/ %}


<hr>


## Reading Material
### Official Python Documentation
Nothing is as good as the **documentation of python** itself. It is **slow paced** and teaches everything there is in python properly.
{% embed https://docs.python.org/3/tutorial/index.html %}



### Python Playground
Maybe  you are not into just plain text reading and you want some practice while you learn. For that you can use the following link. It has a **playground** feature where you can practice with an online interpreter as well.
https://www.learnpython.org/
{% embed https://www.learnpython.org %}


<hr>

## Lecture Material
### YouTube
YouTube is filled with multiple videos that teaches you python, Some being [12 hours](https://www.youtube.com/watch?v=XKHEtdqhLK8) long while some takes only [100 seconds](https://www.youtube.com/watch?v=x7X9w_GIm1s). Personally i recommend looking into **[this](https://www.youtube.com/watch?v=XKHEtdqhLK8)**
{% embed https://www.youtube.com/watch?v=XKHEtdqhLK8 %}

### Paid Courses
One of the best paid **python Specialization** out there.
{% embed https://www.coursera.org/specializations/python %}


<hr>


## Further Advancing in Python
Python is all about its library so learning how to use in-built libraries is a plus. I will recommend you to learn libraries like asyncio, math, datetime, time, hashlib, itertools, functools and unittest can greatly help you with your Competitive Programming or open source career.

Refer to the following link for official documentation on **in-built libraries**.
{% embed https://docs.python.org/3/py-modindex.html %}

Learn how to **install external libraries using pip** from here.
{% embed https://docs.python.org/3/installing/index.html %}

Something quite important when it comes to programming is learning how about **Data Structures and Algorithm**. Although, I won’t recommend python for CP.
{% embed https://www.youtube.com/watch?v=pkYVOmU3MgA %}


<hr>


## Practice Practice Practice...
Without practice you won’t be able to remember what you learnt. You can look into GitHub for open-source projects to contribute into to improve your documentation and unit testing skills or you can look into the following websites to practice via problem questions.

**Codewars:** Good for both **beginners as well as professionals**. The website is filled with many questions and you can practice and get better in python using the website.
{% embed https://www.codewars.com %}

**CodeBat:** Code practice website. Quite basic but gets the job done.
{% embed https://codingbat.com/python %}

I personally don’t recommend **leetcode** or **hackerrank** until you have completed **DSA**.


<hr>


After all this, the journey in python isn’t still completed. There is a lot to learn even now. Mainly domain specific libraries.


I am a python developer with over 4 years of experience. You can find me [here](https://linktr.ee/krishsharma0413)