Ok, I mysef found all the best(FREE) resources to learn python .
Here you go :
BEST COURSE FOR BEGINNERS :- https://www.w3schools.com/python/
FREE MIT PYTHON COURSE :
Readings : https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/readings/
Video Lectures : https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/video-lectures/
Join https://t.me/pythonfreee on telegram to keep getting free resources,tips and tricks on Python.
Free Python E-book : https://drive.google.com/file/d/170EhMUkJf_XdQh7nMpYu8cJ9HD236_JV/view?usp=sharing
Practice python here : https://www.hackerrank.com/domains/python
Hindi Videos of Python(Tutorials) (if interested) : https://codewithharry.com/videos/python-tutorial-easy-for-beginners
More resources to stduy python :
https://docs.python.org/3/
https://www.w3schools.com/python/
https://www.tutorialspoint.com/python/index.htm
https://www.sitesbay.com/python/index
VIDEO
VIDEO
https://www.guru99.com/python-tutorials.html
Best ever book on python : https://amzn.to/3pmctOW
RoadMap to learn python from scratch :
1. Learn Syntax and Basics
Firstly start with the installation of Python in your system. Just visit on Python’s official site, download the latest version and you are good to go. Once the installation has completed, you may use IDLE to write and run Python code. Now we are going to list out some topics to start with learning Python. It will take almost 1 – 1.5 weeks to cover all the basic stuff still it depends on your learning process.
The Python shell, basic arithmetic.
Control structures.
Accepting user input, Strings & Typecasting.
Looping in Python: For & While loops.
Exception handling.
Functions, modules & Imports.
2. OOPs Concepts, Built-in Data Structures, and Other Stuff
This section will be a bit tough especially if you don’t know about object-oriented programming concepts. Take the help of some resources which we have mentioned and with some practice, you will be able to understand the concepts. These concepts will be widely used in making complex applications so understand these topics very well. It may take 1 – 1.5 weeks to learn.
Object oriented programming in Python
Lists & List functions
Regular Expressions
List comprehension
List slicing
String formatting
Lambdas
List, Dictionaries & Tuples
Once you mastered the above topics and practiced enough every topic it’s time to build something out of it. Python has a good collection of modules, packages, libraries and frameworks which you may use for various applications. So instead of building everything from scratch use frameworks & libraries available in this language. It will be easier for you to build something using these frameworks and libraries. Pick up the framework or libraries as per your end goal (Web development, desktop-based applications, etc.)
3. Frameworks for Web Development
There are so many frameworks for web applications in Python some of them are Django, Flask, Bottle, Tornado, and Pyramid.
Django: A high level web framework mostly used in startups and enterprise for web development. It follows the MVC pattern and you can use multiple databases such as PostgreSQL, MySQL, SQLite, and Oracle. If you are a complete beginner and not aware of the terminology authentication, URL routing, API and models then you will feel a lot of pain while learning Django but take your time, have patience, go through some more resources and understand each line of code. Slowly and gradually you will understand everything. Learning Django may take 2 – 2.5 weeks.
Flask: Flask is one of the easiest microframework to learn in Python. If you wish to develop a simple and lightweight web application then Flask is suitable for that. It is not as powerful and extensive as Django still provides features such as support for unit testing and building REST APIs. Learning Flask will take 1 – 1.5 weeks.
4. For Building Desktop Applications
Tkinter, PyQT, Kivy, WxPython or PyGUI libraries are very good for building desktop-based applications.
Tkinter: Tkinter is open source library and it allows you to build desktop GUI applications using Python. Learning Tkinter is simple and provides a graphical interface. It will take around 1 week to learn Tkinter.
PyQT: PyQt is one of the most powerful cross-platform GUI library owned by Nokia. It combines Python programming and the Qt library. It can be used to design graphical user interfaces for a desktop application.
Kivy: It can be used to create desktop applications also it supports platforms like Android, iOS, Linux & Raspberry Pi.
5. For Data Analysis
Numpy, Pandas, Seaborn, Bokeh, SciPy, Matplotlib these libraries are good for data analysis. These libraries are helpful for those who want to become data analysts/ data scientists. Learning Numpy or Pandas will take around 1 week.
Numpy: It is an array-processing package and provides high-performance array object. It is widely used for scientific computing with Python and provides essential features.
Pandas: Pandas is also a very good open-source library that is used for data analysis. It provides high-level data structures (such as DataFrame) and a vast variety of tools for analysis. It also can translate complex operations in a few commands. Using this library, data manipulation becomes a much easier task.
6. For Machine Learning:
TensorFlow: Most popular deep learning library developed by Google. It is a computational framework used to express algorithms that involve numerous Tensor operations.
Scikit-Learn: A machine learning library for Python, designed to work with numerical libraries such as SciPy & NumPy.
PyTorch: It can handle dynamic computation graphs on the go. It also provides easy to use API.
Build Projects
Till now we have covered almost everything in Python now the final stage is building projects. All the learning in Python only makes sense if you can build some projects. Remember that the best way to test your programming skills is by working on a complex project which solves a problem. Building a complex project is not an easy task for beginners so start something small. Make a simple project first and then gradually move along. If you want to build a complex project start with a small and simple module then keep adding features into it. You will see your progress along with your project and you will understand how programmers solve real-world complex problems.
Projects are really helpful in sharpening your skills. While working on a project you will face frustration, multiple hurdles, challenges, and difficulties. When you work on these challenges and difficulties you gain a good amount of skills. Solving these challenges gives you enough experience in problem-solving using Python.
Now there are multiple projects you can make using Python. Simple interest/ EMI calculator, Weather application, Simple Crawler these all are simple projects which you can make. If we talk about some complex project then you can make a fully functional E-commerce site, Web-based crawler which dynamically crawls a specific webpage, Online CV generator which generates CV in PDF format from raw text.
Tips:
Have patience, it’s not just in case of learning Python but also it’s in the case of learning another language. Learning a first language always requires more effort and time so understand that it will take time to sink everything.
Stick with your goal and language. Don’t just learn the syntax and jump to a new programming language.
Frustration and pain is a part of the learning process, embrace it instead of avoiding it.
Due to some complex terms, errors, and issues you will feel like to give up. Don’t do that, it happens with everyone in programming. Give some time to yourself and understand the topic using some other resource and with a focused mind.
Be consistent, if you are not consistent in learning it will take a lot more time and effort.
Building project is always helpful in building confidence so don’t ignore it’s importance.