Profile photo for Saurav Sharma

In this answer I will layout the entire roadmap for becoming a Python developer.

I have been using Python since the past 9 years now and would love to share my wisdom with you.

Let’s begin.

Have a goal in your mind.

Why exactly do you want to learn Python?

Do you want to automate mundane tasks or do you want to make commercial web applications using Python?

The most common mistake newbie programmers make is they start learning a programming language just for the sake of learning it without having a goal in mind.

Remember, there is a tremendous difference between learning a language and building something helpful from what you have learned.

Your motto as a programmer should be to be able to build stuff and not just to learn a language.

I want you to think for a while and jot down on a paper about what exactly do you want to build.

Learning resources:

I am assuming that you are a beginner and hence will suggest the resources accordingly.

  1. If you like learning from documentation then just visit Welcome to Python.org and get started with learning the basics.
  2. In case you find reading the documentation to be a bit boring then you may learn via this comprehensive Python course The Complete Python Masterclass: Learn Python From Scratch

Important topics in Python:

The above two resources would cover all the important topics for Python but I will still mention them over here.

Basics:

  1. The Python shell, basic arithmetic.
  2. Control structures.
  3. Accepting user input, Strings & Typecasting.
  4. Looping in Python: For & While loops.
  5. Exception handling.
  6. Functions, modules & Imports.

Important topics:

  1. Object oriented programming in Python.
  2. Lists & List functions.
  3. Regular Expressions.
  4. List comprehension.
  5. List slicing.
  6. String formatting.
  7. Lambdas.
  8. List, dictionaries & tuples.

What next ?

Now once you master the above topics, it’s now time to build something out of it.

Instead of building everything from scratch you can use a multitude of frameworks & libraries available in Python.

Here is the classification of the major Python framework & libraries which are available.

I have further classified the frameworks as per your goals, i.e for web development, desktop application development, data analysis & machine learning.

You may pick as per your career goals.

Full stack & non-full stack frameworks for web development:

  1. Django: To build complex web applications in an easier way. Follows the MVC pattern and hence most popular amongst startups and enterprise.Provides support for multiple databases such as PostgreSQL, MySQL, SQLite, and Oracle.
  2. Flask: A micro framework, mainly used to build simple websites. Although not as powerful and extensive as Django still provides features such as support for unit testing and building REST APIs
  3. Bottle: Again a micro-framework similar to flask used to build simpler and smaller web applications. Maintains a single source file for entire project.
  4. Tornado: When it comes to performance, no Python framework can beat Tornado. It is used to build highly performant web applications as it has a non-blocking I/O which can support upto 10,000 connections at a time.

For building desktop based applications:

  1. Tkinter: Open source, can be used to build desktop applications. One of the most popular choices as it is simple and provides a graphical interface.
  2. Kivy: Can not only be used to create desktop applications but also supports platforms like Android, iOS, Linux & Raspberry PI
  3. PyQT: Cross platform framework owned by Nokia, supports Unix/Linux, Windows, Mac OS X & comes with a commercial licence. Meaning you would have to pay a fee if you wish to sell your software.
  4. WxPython: Open source, can be used for creating native applications for Windows, Mac & Unix.
  5. PyGUI: Graphical application cross-platform framework for Unix, Macintosh and Windows. Compared to some other GUI frameworks, PyGUI is by far the simplest and lightweight of them all, as the API is purely in sync with Python.

For data analysis:

  1. Numpy: Used for processing large multidimensional arrays and matrices.
  2. Pandas: Provides high-level data structures and a vast variety of tools for analysis. Has the ability to translate complex operations in few commands.
  3. Seaborn: Used for data visualisation. It is based on the Matplotlib library.
  4. Bokeh: Allows us to create interactive visualisations inside of a browser using JavaScript widgets. Has multiple ways to visualise data.
  5. SciPy: Used for scientific computational purposes and extends the capabilities of NumPy as it is based on it. Contains tools that help with solving linear algebra, probability theory, integral calculus
  6. Matplotlib: Low level library used for creating 2-dimensional diagrams. Can be used to create charts, from histograms and scatterplots to non-Cartesian coordinates graphs.

For machine learning:

  1. TensorFlow: Most popular deep learning library developed by Google. It is a computational framework used for the purpose of expressing algorithms that involve numerous Tensor operations.
  2. Scikit-Learn: A machine learning library for Python, designed to work with numerical libraries such as SciPy & NumPy.
  3. PyTorch: It can handle dynamic computation graphs on the go. Has an easy to use API.

Now comes the fun part, i.e building projects.

Once you learn the above mentioned things, you can now start building something out of the things which you have learned.

You don’t need to start with a complex project, but start with simple ones first and then gradually move along.

Here is a list of projects you can work with, I have arranged them in the ascending order of complexity:

Desktop applications:

Simple interest/ EMI calculator: A desktop application which gives you the expected EMI amount for a specific principle amount accepted by a user, it also outputs the total interest paid by the user over a period of years.

Expense manager: A program which allows user to keep track of his expenses, categorise his monthly expenses across various activities such as personal, medical, entertainment & health. It also displays the percent amount spent on each category.

Weather application: A desktop widget/ application which fetches live weather data from external API and displays current weather conditions. The application should have a functionality to display weather condition of multiple locations at once.

Desktop Calculator: A GUI based calculator which performs all the basis arithmetic operations.

ATM simulator: An application which simulates deposit & withdrawal of cash by accepting users password. The password hash must be saved into the system and the entered password should be compared to the hash.

Dice simulator: Build an app which simulates rolling of a dice & gives out a random output for every instance.

Time table generator: This is a complex one and needs a bit of logical thinking. A program that accepts teachers and class data and generates a time table allocating teaching slots for each teacher in a way that the slots don’t overlap.

Take a break: An alarm clock for programmers which reminds them of stretching their legs after every 45 minutes of working on a computer.

Bookmark saver: A desktop applications which saves all your links at once place and categorises them.

PDF generator: An application which converts a file in text format into a PDF.

Password container: An application which saves all your important passwords at once place by encrypting them.

Maths:

Sum of digits: Write a Python program to calculate the sum of all digits of the base to the specified power.

Sum of divisors: Write a Python program to returns sum of all divisors of a number.

String permutations: A program to print all permutations of a given string (including duplicates).

Smallest palindrome: A python program to find the next smallest palindrome of a specified number.

Comma separator: A Python program to print number with commas as thousands separators.

Distance between points: A Python program to calculate the distance between two points using latitude and longitude.

Area of a polygon: A Python program to calculate the area of regular polygon

Quadratic roots: A Python program to find the roots of a quadratic function.

Complex number arithmetic: A Python program to add, subtract, multiply and division of two complex numbers.

Maximum & Minimum: A Python program to find the maximum and minimum numbers from the specified decimal numbers.

Exponent of a decimal: A Python program to get the square root and exponential of a given decimal number.

Web applications:

Book sharing portal: A portal which allows readers in a common city to share books with each other on a monthly basis. Gather user location data and match a user to his nearest lender.

Personal chat room: Crete your own personal chat room which allows you and your friends to join, post text messages and share image, audio and video files.

Social media scheduler: A web application which allows you to schedule and pre-plan the posts and post them on a time specified.

E-commerce inventory manager: Build a web applications for e-commerce business owners which helps them track their inventory of available products. have a functionality to alert owners if a particular product is out of stock.

HR payroll application: An application which keeps track of employee salaries for the month and generates salary reports accordingly. Add the features of adding employee, incrementing/ decrementing the salary of individual employee and a functionality to pay bonus and deduct taxes.

School attendance system: A system which can record attendance for every individual student across all the classes at a particular educational institute, sort out the students as punctual, regular and irregular.

Hospital locator: A web application which allows patients to find hospitals according to the symptoms/ illness they have.

Online document bank: A cloud based storage applications for users which allows them to store all their important documents at once place and allows them to access when and where required.

Reminder: A online application which sends out notifications via email/ text message about monthly unpaid bills and EMIs

Implementing sorting algorithms in Python:

Merge sort: Merge together two pre-sorted arrays such that the resulting array is also sorted.

Insertion sort: Iterate through an input array and removes one element per iteration, find the place the element belongs in the array, and then place it there.

Bubble sort: compare each pair of elements in an array and swap them if they are out of order until the entire array is sorted.

Heapsort: divide input into a sorted and an unsorted region, and iteratively shrink the unsorted region by extracting the largest element and moving that to the sorted region.

Counting sort : For each element in the list, determine the number of elements that are less than it.

Web Crawlers:

Property tracker: A web crawler which crawls all the property websites and finds the closest matching property to users needs.

Stock tracker: A web crawler which keeps track of a give stock over a period of time and alerts user when the price of the stock falls below/ goes above a certain price.

Social media crawler: A crawler which crawls a persons social media feed who is not your friend and updates you if he/she has posted a status and notifies you accordingly.

Search engine rank checker: A tool which allows you to check rankings of your webpages by crawling search engine results pages for a specific keyword.

Auto downloader: A crawler which crawls webpages to check for new links and downloads documents if it finds any new one.

Price drop alert application: A crawler which keeps tracking the current price of item and alerts you when the price drops below a certain point.

Anti piracy app: An app which tracks links which are pirating your content and automatically alerts you / files a DMCA report when it detects your pirated content.

Job tracker: A web crawler which crawls all the job listing portals and finds the job which meet your criteria.

Hope this helps!

View 100+ other answers to this question
About · Careers · Privacy · Terms · Contact · Languages · Your Ad Choices · Press ·
© Quora, Inc. 2025