Be a self taught Python programmer in 2018.
Posted on March 11, 2018 in blog
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.
-
Start with Python3. Because, Python2 is retiring and Python3 is the future. However, back in 2015 I started with Python 2.7 (Irony). Now, I code almost everything in Python 3.6.3.
-
Learn the basics. Some resources where you can start are:
- If you want to learn interactively and online. You may want to try Codecademy Python
-
If you are a learner through video tutorials, follow these online courses:
-
Youtube is also also an enormous library of video tutorials. Here are some channels and playlist where you can learn Python from the basics.
-
If you are learner by reading books, then are are few books that I recommend and are also free.
-
Here is the huge collection of online of books: https://pythonbooks.revolunet.com/. However, the ones I like are:
Pro Tip: Follow just one book. Don't ramble.
-
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:
-
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:
-
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/
-
Do small projects with the framework and libraries that you've learned and push your code to GitHub.
-
Learn new topic everyday. P.S. I learned about Python enums today :)
-
After this you can try applying for Python dev jobs. Here is an interesting Toptal article about what recruiters expect in Python dev.