A fun way to directly dive into Python is Automate the Boring Stuff with Python. The projects are small and fun. I personally tried some of them and some of my own. They are available on my Github page. I found Codeacademy to be very useful and usually went with the free plan.

Nowadays, knowing Python has become a necessary skill. Be it front-end, back-end development as well as data science. Be it for internships or your very own research project, almost everyone whom I have encountered, either uses only Python or Python is their primary. So many well-crafted packages, active open-source contribution community and minimalist coding style, makes it much easy to learn, grasp as well as maintain, as your codebase scales both in size as well as in complexity.

Follow the official documentation to setup your Python environment. I will cover the list of important packages that you will need in another blog.

A strongly advised solution to avoid hassles of installing packages and addressing broken dependencies, specially for someone who wants to try ML for the first time in practice, is Anaconda. Follow the official documentation and you should not have any problem.

In terms of IDE, you can choose wither Pycharm, Spyder or a Plugin in Eclipse. I personally prefer Pycharm IDE(Community Edition) from JetBrains. It is free and it is awesome.