Python is one of our favorite languages at code(love). Versatile, and yet easy to grasp, it’s one of the best languages at expressing the logic behind code with a simplicity that is sometimes breathtaking in its elegance.

If you happen to be more practical, Python always ranks among one of the programming languages that draws the highest median annual salaries, hovering around the magic $100,000 USD mark.

Despite how simple it is, Python is also surprisingly powerful. It can help introduce you to the basics of machine learning, it can slice and dice relatively big datasets for you, and it can even help you build entire web platforms. Pinterest often uses Python to serve millions of images around the world.

The language itself grows ever more versatile with its community. If you want to join this healthy, vibrant network of builders and learn how to do awesome things with Python, you’ve come to the right place. Here are eleven places you should start.

Learn Python the Hard Way was my first introduction to Python and several programming concepts. Author Zed A. Shaw made the book accessible online for free, but he has a special place in his heart and inbox for people who pay the small sum of $29.95. The practical exercises within are well worth going through. Make sure you write out as much of the code as possible: it’s only through mastery of the basics that you can become an expert.

If you’re more of a visual learner, you can learn about the fundamentals of using Python for the web with this excellent free Udacity course. Of course, there’s more where that came from, with a variety of courses from everything to data fundamentals in Python to machine learning. I went through the series myself, and though it’s a bit long (and there are a lot of exercises that I didn’t think added that much value), the end result was that I came out of the tutorial with a deeper understanding of how data moves across the web.

You can also catch plenty of Python videos on Coursera, Treehouse and Udemy.

This might be a little bit meta, but I love lists of resources. One of the hidden secrets to finding those great resources are going through Github repositories. Github is the Google Docs of code, a great collection of “repositories” where coders can “commit” their code to a shared codebase. It’s also a place where people love compiling great collections of programming resources.

This particular link above is a favorite collection of mine. I hope you enjoy it as much as I do.

Anaconda and iPython Notebook are what I commonly refer to as the “Excel” of Python. It can be hard to work with the Python interpreter (the command line prompt where you enter Python code if you install it from Python.org) as is. You can’t really refer back to the work that you’ve done before very easily without saving a whole variety of Python files, and it can be pretty hard to share your code with the web at large in HTML form, especially with different charts and graphs and a structured flow you want to convey that goes beyond just one Python script.

iPython Notebooks allow you to write your code in Notebook form.

Anaconda and iPython Notebook make it intuitive and visually appealing to organize different Python software modules, and bring them together so that you can work and show your results as easily as possible with nbviewer, which generates a HTML version of your Notebooks that you can share on Github. A lot of popular modules we talk about like Pandas are pre-installed, saving you some time. When you click on the next link, you’ll see exactly what it looks like using iPython Notebook.

Built on the aforementioned iPython Notebook, Julia Evans has created a “cookbook” for the Pandas module, a collection of Python code that can help you handle relatively large data sets with ease.

Python can only help you process what you can fit in memory on your computer, but that’s more than enough for most of your data needs. Pandas will help you efficiently process that data: you’ll be able to read from very large CSVs and clean them up so you can find great data insights and visualize them (more on that in point #10!)

Flask is what is termed as a micro-framework, a set of code that you can lean on to build small web projects. It has a bunch of reuseable components that help you build interactive websites that can both receive and transmit data. Give it a try: in a few lines of codes, you can get something interactive going on the web!

If you’re tired of the word micro, and want to go with a full web framework, build something with Django! Django is used to this day to build very large websites including Pinterest, and Instagram.

We had a list of learning resources before on Github, now we can explore a list of the things that make Python awesome! I especially love using Python to play with Application Programming Interfaces or APIs. APIs are a set of rules for servers to communicate data with one another: what this means is that with Python, you can scrape your personal fitness information from your Fitbit or work with Google Sheets automation easily. You can do anything that involves getting data from a server willing to give it to you.

You’ll find a list of really cool APIs above that will allow you to play with all sorts of cool data!

Have you heard of machine learning? It’s all the rage today and the reason why is because it allows you to do more with less. By having machines learn patterns in your data and by being able to infer conclusions from smaller data sets to larger populations with their insights, machine learning lets you know more about the world around you with less data points.

This Github repository offers a fantastic dive into the fundamentals of machine learning, and gets you to practically embark on your machine learning adventure with sample code sets.

Data doesn’t mean anything unless you can storytell with it. You can throw all the numbers in the world at people but it won’t mean they’re any closer to understanding your point. You really have to break down your data into meaningful chunks for it to go anywhere.

Thankfully, Plot.ly can help with that. With a few lines of Python, you’ll be well on your way to doing bar graphs, charts, and figures of all kinds.

Now that you’re done learning all of the fun stuff in Python, it’s time to put yourself up to the test! Use HackerRank challenges to test your skills: you could even get a job out of it!

HackerRank allows you to complete problems in the coding language of your choice and allows you to demonstrate your skill with clean code that solves problems in a short amount of time.

Python is a wonderful language for programming beginners, and powerful enough to explore multiple areas of data, machine learning, artificial intelligence and other advanced computer science concepts. It’s the perfect mix for anybody who is getting into programming or who wants to develop their skills further. With these resources you’ll be able to learn and work with Python!

Share this list of resources if it can help somebody–and let me know what else could be added to this list in the comments 🙂

Source for featured image: http://www.slideshare.net/audreyr/python-tricks-that-you-cant-live-without