I believe the best way to learn something is by doing it (while listening to some good music obviously), but in modern world video is becoming more and more influential source to get new information. And a lot of people forget that text still exists. Video is great, a lot of times teachers in their tutorials explain the topic really well and we think we get it totally.. and skip the exercise part of the video-course. Because we are sure we already know that stuff! And a lot of times it is not true. This is why I prepared a list of 5 courses to learn Python by reading, doing exercises and listening to nice music on the background (the last one is optional ;))
Another advantage of text tutorial is search – you can always go back to the topic, type keywords in page-search and find a piece of code you need, instead of looking for a correct timestamp.
1. Python Docs Tutorial
To be honest this should be the only one way to learn Python or any other programming language – going through documentation. But we all understand that reading all the docs of the language is boring. This is why this tutorial does not attempt to explain each and every characteristic of Python, but lightly introduces you to the most noteworthy features and gives you a taste of language and its style.
It is quite an easy read, with a lot of practical examples and code snippets you can try and run in your own environment. Guide to install Python is included.
One thing worth mentioning is that navigation in the course is a bit odd as links to the previous/next chapters are in the top left corner and when you finish a full paragraph you have to scroll back to top in order to continue to the next topic.
Although despite that little inconvenience the course is really great, it covers the most important topics like data types, conditions, loops, data structures, error handling, classes, modules, OOP and all that with practical examples.
You can find the tutorial here.
Also, for this tutorial I will recommend to put music from “The Witcher 3: Wild Hunt (Original Game Soundtrack)” – really helps to focus ;). Actually, just find any playlist with game soundtracks and there is high probability it will serve you well in your learning journey.
2. Learn Python the Hard Way
This book/course is really great if you are just starting with programming. It walks you slowly through the most basic things like installing Python and IDE, using Terminal and running your first simple programs on different OSs. Explained in an easy to understand language, with jokes and practical exercises. Each paragraph/page has a theoretical background, practical exercise, some study drills to try things on your own and little FAQ with common students’ doubts. The course is developing sequentially, so you go from most basic concepts to more advanced ones and plot thickens with every paragraph while your programs become more and more complex.
Also, I really loved a “warning for smarties” in the preface where author recommends those “smarties” that feel insulted by “basicness” of the book/course to try to learn Lisp XD as this book/course is for complete nubies of the field.
You can find the course here. Also, after learning Python you can also give a try to other languages and learn them the hard way too. The links you will find in the header of the resource.
As the soundtrack for this “learning the hard way” I will recommend Jardín de la Croix – it’s a Spanish Instrumental band that plays Math Metal – and that’s an end argument here.
3. Practical Python Programming
This one is used in instructor-led training, but author decided to make it available for free under Creative Commons License. The course is designed for people that are already familiar with programming and it is not designed for those that have 0 clue in code and have never written even “Hello World” program in Python or any other languages. As you can see it is a bit different from the one that was described previously. You will have better explanation of all whats and whys in the “Welcome” page of the course.
The material is full of practical exercises and theoretical explanations and, as author states, when taught in-person requires 3-4 full days of work (approximately 25-30 hours) and contains 130 hands-on code challenges.
I, personally, liked the course for its laconic contents and lots of practical examples – without beautiful descriptions, directly to the core.
Course itself can be found here.
For this one I would put some Toundra in the background, but only first 3 albums (I, II and III), it is another Spanish Instrumental metal band and those riffs really help to focus.
4. W3Schools Python Tutorial
Anyway, I suspect you have already came across the W3Schools Python Tutorial (or maybe you’ve seen their other courses, especially in regards to web development – I used that a lot few years back). The course is straightforward, covers all the basics and has an interactive window where you can try running your code – so no need to install anything. Could be a good option if you’re using tablet or smartphone to freshen your knowledge.
Another advantage of this resource is that it goes beyond just Python basics and adds info on data science modules like sci-py, numpy and pandas, covers data visualization with matplotlib, gives an intro to machine learning and walks you through Python for databases (relational – MySql and non-relational – MongoDB)
Course can be found here.
As in regards to music background for this one I would go with the classics and put Mozart: Sonata for Two Pianos in D Major, K.448 (available on Spotify)
5. Intro to Python for Data Science Tutorial
This course also covers the basics of Python language, but emphasizes even more on data science modules. It is greatly supported by DataCamp, interactive, available in different languages and dark theme! I actually included this course in the list just because of dark theme XD. But after further investigation I realized it is really a great place to learn Python – especially if your English isn’t good enough yet.
Course can be found here.
For this one, in the dark mode, I would recommend to put “Insomnium – Winter’s Gate” album – should set up the mood.
Also, as the bonus take a look at ProgramViz’s Learn Python Tutorial – it seems like having a good UI, exercises, code samples and apparently some videos on YouTube, but I am not sure how free it is as I see a banner with a “last offer, ending soon promotion, only now etc” even though it doesn’t block a navigation through sections of the tutorial.
Hope this list was useful for you and you learned something from those free resources. In today’s world, where there is such a huge amount of free knowledge it’s a dumb decision to not use it and wait (and pay) for a teacher or some fake guru to explain you the basic things.