I began learning python not
that long ago myself, and can say it has been immensely beneficial to nearly ever aspect of my life. I approached with the desire to scrape websites for content (that has changed a lot not), but was also looking to simply build a better understanding of programmatic approaches to problem solving. Check out the website edx.org, it's an online course kind of site, but they have a lot of great free courses. Probably the most-engaging online course I've ever seen is the Harvard CS50 course available on that site. (it's also on Youtube, but it's much more organized on the edx.org site.) It's an intro to CS course, so it's not all Python. There are a lot of other purely-python courses on there as well though.
My best advice to you however, is to approach your learning from the perspective of trying to solve a problem. You want to build bots? Define that with more clarity. Boil it down to something like; "I want to create a bot that automatically creates a meme, overlays a quote from a text file, then posts to my Twitter and Facebook pages." Having a clearly-defined problem will help guide you through periods of deep frustration. By taking as task-oriented approach, you will effectively be powering through the difficult stages in which you learn basic programming concepts.
When I started out, I had been running a few autoblog-type sites through the use of a series of plugins. I could get what I wanted, but it was a balancing act that broke every time something got updated. So, I decided learning web-scraping with python would be a great idea. Well, it was weeks before I could even figure out how to get python to work well on a Windows machine (encoding issues with the terminal) and could have likely given up if I thought I was just 'learning python.' However, I knew I was learning python to help me do something specific, and was able to ask very specific questions on sites like Stack Exchange, and see videos on YouTube showing people doing exactly what I was trying to do.
Some less qualitative advice:
Don't use Visual Studio, Use
PyCharm Community (If you're on a Windows Machine)
Use
Anaconda as your default Python install starting out
Get on
Stackoverflow, and don't be afraid to ask a question.
Check out publications from
O'Reilly, and before you buy anything google "whatever O'reilly book you want" + free ebook or pdf. I've found most to be posted for free.
I will say that many books and tutorials give you great advice on how to do tasks that those authors felt to be most relevant to the masses. If you are on this site, chances are you aren't among the majority of any segment. Use anything you can get your hands on to learn, but consciously allow your imagination to run with things. Learning how to break out of a loop in Python once you've reached a certain value is a great fundamental piece of logic. If you are thinking of how that would help make searching for certain hastags on Twitter more efficient, rather than how much Python knowledge you're learning—you'll see much more benefit. That's a good example of the contrast between a task-oriented approach and a general approach to learning python.