I often see students asking question in online forums and on facebook pages: 'How to start with python programming?'. In this article I am trying to share my experience and how I started and learned python programming and web development using Django.
There are two ways of learning python (or any language) programming.
1. You read multiple tutorials or books and learn lots of theory and then implement it by building some app.
2. You learn enough python just to start with it. Some kind of crash course. It is not necessery that you remember or implement everything. Purpose is just to get the idea. Now you start working on some project and learn the required features/modules/functionality on the go while developing.
I prefer second method. First method is boring and you may end up learning things which you may not be using in your project. Second method is interesting as you get to work on project earlier and learn things which are required.
So below are the steps which in my opinion if followed will make you a good python programm.
Step 1: Crash Course
Complete a crash course on python programming language to get an idea about basic syntax of variables, loops, conditional statements, lists, dictionary etc. A good source for that would be below link.
You may join some basic freely available courses on Udemy.
Step 2: Practice
Once you are familiar with basic features of python, try to use them by writing some programs.
You can practice writing python programs starting with simple onces to complex programs. For this hackerrank is good platform.
This will also help you prepare for competitive programming. If you are stuck somewhere you can try searching on google or refer the official documentation of python.
Step 3: Mini Project
Once you are confident enough that you can write simple python programs without any errors, its time to start working on some mini project. You can choose any project from the list. I would recommend basic calculator or text based adventure game.
Also start using git. Keep your code on github. This will help you manage and share you code with other and will also improve your profile.
Step 4: Taking help
At this point of time you will require some help from experts and peers. For that create stackoverflow account if not created already. Join some good facebook groups and pages. Some of them are listed below.
Remember to read group guidelines and follow them before posting anything.
Step 5: Books (Optional)
You may want to purchase some book now. If yes below are my recommendations.
Learn Python, 5th edition by Mark Lutz
Learn Python the hard way
You can refer this list of top 5 python books on Amazon by user ratings.
Step 6: Web framework
Start learning any of the web framework. You can start with flask. I prefer Django.
Django's official documentation and tutorial is the perfect resource to learn it. After completing basic tutorial, build you own project. I would recommend library management system.
Step 7: Interest
Now based on your area of interest you may choose your path. Do you want to go into Data science or in Machine learning or in Web development?
You may choose some advance courses on Udemy.
Step 8: Continous Learning
Remember learning should never stop. No once is perfect. So keep learning new things. Keep practicing. Subscribe to some newsletters. Few good newsletter providers are listed below.
1. Python Tricks and Automating the boring stuff are good books.
2. Few good sites for Django developers are:
3. Follow people on Github. See what good programmers are building new.
4. Before asking for help on facebook, search google and ask questions on stackoverflow.
5. Learn how to ask technical question online for faster response and solution. Always share your code in some paste service. Share complete error stacktrace.
6. You can host your Django app for free on pythonanywhere server.
Feel free to comment if you need any help. Your suggestions are always welcome.