Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. - The Zen of Python, by Tim Peters

I am not writing this post to tell you what is Python? You can find what it is just by doing a simple Google search on "What is Python?"

An StackOverflow post The Incredible Growth of Python quotes "Python has a solid claim to being the fastest-growing major programming language" and it is absolutely true. This blog post also claims that "Python was the most visited tag on Stack Overflow within high-income nations". And these are not just a random quotes by a random blogger. This facts is based on year long data dump in StackOverflow website.

Just look at this graph which tells the future trend of Python programming language. Isn't is beautiful?

source:https://stackoverflow.blog/2017/09/06/incredible-growth-python/

Now, let me tell something about myself. I am a self taught Python programmer. I started learning Python in 2015 when I was a third semester student. I've not taken any formal course on programming in Python except that one time when our college conducted four classes on Python programming language with one class being of approximately 2-3 hours. But, I had already completed the Python basics before so, it wasn't fruitfull for me. But, I kept on taking the class because "ATTENDANCE" was a must.

So, inorder to gain more knowledge in Python, I started learning from online resources. And over the course of time, I think I've gained enough (but, not enough) knowledge in Python. So, Here's the MOOC you can follow (which I followed) to be a self taught Python programmer.

Here is my GitHub repository which I've prepared while teaching Python programming language in Deerwalk. This covers basic Python course if you are interested. Please give a star if you like this and contributers are welcome.

Make a habit of reading and understanding the core python documentation. Python3 Docs

If you get stuck, do not hesitate to ask questions in StackOverflow with tag #Python3 . But, be formal while asking questions in StackOverflow. Follow this guide How do I ask a good question?

After completing basics, try learning advance stuffs. You can do this by following some of the python blogs: https://talkpython.fm/ https://realpython.com/ https://www.fullstackpython.com/blog.html More here: https://pythontips.com/2013/07/31/10-python-blogs-worth-following/ PS. This are some of the blogs that I follow. Or else, I simply do a Google search.

Don't be afraid to do Google search if you get stuck while solving a problem or while trying to learn some concepts like decorators, generators, design patterns, etc.

Pro Tip: Try solving any problem by yourself first. That's the only way to learn it. If you can't, then ask questions.

While writing code, always follow the protocols of good coding styles in Python. Learn about python coding ethics here: http://pep8.org/

Make maximum use of code editors and IDE like: PyCharm, VsCode, SublimeText

Projects, Projects, Projects (Obviously)

There's no need to do advance commercial projects, but make sure you implement the basic python core concepts.

Try to implememt core libraries that comes within the Python package like json, csv, urllib3, etc. And also try to use third package libraries.

If you are searching for project topics and ideas, here is a good resource to follow: https://knightlab.northwestern.edu/2014/06/05/five-mini-programming-projects-for-the-python-beginner/ http://www.practicepython.org/

Create your GitHub account. Push the projects you've done to your GitHub repository. If you don't know how to use Git and GitHub learn it http://try.github.io/. And trust me, you won't regret of learning how to use Git and Github.

Trust me, GitHub is your new resume now a days

Follow Python groups in Facebook. I am saying the real groups with huge number of members. You can find them just by searching. Why follow these groups? because there are some good fellow members that share awesome blog posts and projects that they've done.

Practice Practice Practice

Follow, star the open source projects in Github. Here's the curated list of Open source python projects. https://awesome-python.com/

Learn about tools: Virtual Environment PIP Package Manager

Now, you are confident in basics, try learning to use libraries and web frameworks like: Django Flask Data Science Libraries



Links to each libraries can be found here: https://awesome-python.com/