Any decent programmer knows the importance of using multiple resources to learn Python (or any programming language really). It’s not enough to just read a book and call it a day. Even if that book is a highly reputed, 500 Page+ book. If the total amount of Python documentation (Including Python libraries) was compiled and put it into a book format, there would be enough books to make yourself a mini library. It’s just not possible to fit everything within a single book, or even multiple books.
So what are the best resources that a Python programmer should be using? If you’re here reading this article, you’re already using the internet as a supporting resource. Guides like these are one of the many useful things you can find on the internet to help you. Besides this you have answer forums like Stack Overflow and a large number of websites offering Python tutorials etc. And of course, Books are a great source of learning as well.
Books
If you’re a fan of book reading, this is hands down the best option. No course or tutorial is ever going to be as detailed and in depth as a good Book is going to be. Courses and Tutorial sites are more decorative and fancy, but omit certain information in order to appear readable.
You won’t feel this difference immediately, especially on a basic level. Some of the best Python books out there explain python to you from ground zero. Explaining it’s inner workings, how it was designed to function and most important why it was created. On the other hand, the average tutorial/course will skip ahead and directly start teaching you how to code.
While there are many reputable books you can find out there, I’ll be recommending one that I read in the beginning of my python journey, called Automate the boring stuff with Python. What’s so special about this book? The aim of this book is to teach you how to actually begin using python in your everyday life. Too many programmers never actually apply what they learn, which is just a massive waste of potential.
Of course, this book also takes you through the basics. It’s divided into two parts. The first part teaches the core python concepts, so even people with zero python knowledge can read this book. The second part walks you through a dozen different libraries teaching you how to use them effectively.
The only downside to this book is that in order to remain beginner friendly, it omits Object oriented programming. So if you read this book, make sure to pick up on Object Oriented programming later on.
Other reputable books:
1. Python for Everybody (Free)
2. Python Crash Course
3. Head First into Python
Tutorial Sites
One of the most popular ways of learning programming through the use of online tutorial sites, like this site you’re reading through right now. I can’t really say that using these sites is superior to a full length course or book, but they certainly have their advantage.
For instance, if you encountered a function you’ve never heard of before and want to learn it. You aren’t going to flip through a 500 page book or go through several hours worth of videos till you find it. You’re going to come to one of these sites where you will find it explained alongside several examples. The biggest advantage of online tutorial sites is their ease of use and being freely available.
Some Tutorial sites will also include bonus materials such as Quizzes for you to test your knowledge and some may even offer full length courses with a certificate by the end of it.
If you’ve already begun your programming journey chances are you’ve used some of these sites such as w3schools, geeksforgeeks, realpython etc. Of course, you can learn Python on our very own site as well, CodersLegacy.
Courses
In the last decade, there has been a massive rise in the demand for interactive and more user friendly ways of learning. As a side effect, there has been a drop in people reading books (quite unfortunately). One of the next best things you can do is take an online course. Online Courses can vary significantly from site to site, but the general purpose and style remains the same.
The benefits of online courses are that they are taught by people who have mastered their respective fields. They know everything about the subject, and thus are perfectly qualified to be teaching it. While not as in depth as books, having a human actually explaining these things (albeit through a screen) helps you understand much faster.
Other benefits with these courses (usually) include quizzes and tests which continuously test the subject material you just learnt. You might find that there is online forum where you can discuss the course material with others taking the course. Finally, some (paid) courses will also offer you a certificate of completion which will help boost your professional profile.
The biggest downside to courses is that alot of them are paid only. If money is issue, don’t worry too much. There are still many online courses out there which are free, though they may lack some of the features of paid courses.
Our recommended site for courses is Coursera. You can find both free and paid courses here on almost every topic imaginable.
Recommended Course: Python for Everybody with Professor Chuck
Tip: The courses are quite expensive, so Coursera offers financial assistance to those need it. Even going as far as to offer a paid course for free. If you are eligible, I recommend you apply for financial assistance.
Another equally as good option is Udemy, where you can also find a large number of reputable courses.
Forums
A rather unusual resource to be mentioning here for Python, but it’s important enough to be called one of the best resources. There are billions of different problems that can occur while programming and chances are that not all of them are well documented. This is where the use of coding forums such as Stack Overflow comes in.
To give you an idea of how popular Stack Overflow is, an average of 10 questions are asked per minute there. However this wide spread popularity comes at a slight cost. Due to the massive number of questions incoming, people on the forums do not take kindly to duplicate questions or problems which would take only a few mins of searching to find. They have a whole code of conduct for asking questions so refrain from asking silly/simple questions.
As long as you’re following the code of conduct (Clearly explained question, your code, expected output etc) you are free to ask any question. This applies to all coding forums, not just Stack Overflow.
There are also other coding forums out there in places such as reddit and facebook where you be part of the programming community. Such communities typically have programmers sharing their work and projects and sometimes even with the code. You can learn alot just by watching more senior developers. You could even find yourself study partners or maybe even business opportunities (if you have the skill). The possibilities are endless. It’s up to to make the most of it.
Coding communities aren’t just for Newbies either. You can join them as a veteran and help teach and spread what you know. You’ll be surprised to find out just how much you can learn by taking up the role of the teacher.
Coding Competitions
This is another resource that is extremely neglected by most programmers, not just those for Python, but for everyone programming language. Fair warning though, this is not for beginners. You need to have a solid grasp over the Basics and core concepts of your preferred language before you even try.
Coding Competitions such as Hackathons are not about advanced concepts such as GUI’s, Graphics and AI. Rather they test your creativity and force you to solve problems using basic functions and code in the shortest time possible. It’s common to use extremely unorthodox methods that would normally never be used in a real life situation. So what are the benefits?
- Improves your problem solving skills. Faced with new and unique problems, you get in a lot of practice and easily breeze through similar problems that you have to solve in real life.
- Improves your coding speed. Having to solve a given number of questions in a limited time forces you think faster.
- Reputation. Having a high rank in major coding competitions earns you a lot of rep points in the coding community.
- Interviews. When applying for programming related jobs, you’ll most definitely be asked to solve a few problems during your interview in a given time. Needless to say, those who have had prior experience will breeze through this.
Some of the most well known coding competitions are sites like Topcoder, HackerRank and CodeForces.
TopCoder is one of oldest such sites, and is very well recognized in it’s industry. A great place for experienced programmers to hone their skills.
HackerRank also doubles as a hiring platform, so if you’re looking to get hired in the near future, this might be the place for you.
CodeForces is another good site with a great coding community. It has a very user friendly and interactive feel to it that some other sites lack.
Conclusion
In the end, there is no single “Best” Python Resource. This is something that varies from person to person depending on their preference. Regardless of preference however, you should always be using multiple resources to learn Python. You can’t just do a course and call yourself a Python programmer. You have to keep learning more and more, as well as actually implementing and practicing what you learn.
If you’re serious about programming, you should dedicate at least 2 hours a day to it. There is no shortcut to success, remember that.
This marks the end of the Best Python Resources for Beginners Article. Suggestions or contributions for CodersLegacy are more than welcome. Any questions can be asked in the comments section below.
This post contains affiliate links. These links come at no additional cost to you.