10 Best Resources for Learning Python
One of the most widely used programming languages coming in at #4 according to the TIOBE Index. Following after Java (#1), C (#2), and C++ (#3). Those three being on top isn’t really surprising as they are the OG object-oriented and low-level languages.
However, in the world of Data Science and Data Engineering Python is the reigning King (or Queen…). This is for a multitude of reasons;
- Easy to learn and read; this is due to its intuitive coding style, and dynamically written syntax.
- Less complex, however, still powerful
- Large community base
- Multitude of use cases
Whether you are wanting to get into web development (Django), game development (PyGames), Scientific programming (SciPy, or as a student in on of my college courses read it “Spicy”), Machine Learning (Sci-kit Learn, PyTorch, Tensorflow) or just simply automating mundane tasks, Python has it all.
In Data Engineering, from my experience, Python is mostly used for the E part of ETL (for those of you new to Data Engineering this is the basic, high level steps to a data pipeline. Extract relation data, Transform the data for reporting, Load the data into a warehouse). We use Python to write scripts to retrieve data from a multitude of sources, for me that has mainly been via APIs. Currently, I do also use Python just as my general go-to programming language for handling datasets, and analyzing data.
So, without further delay. Here is my 10 Best Resources for Learning Python: Data Engineering Edition. I will layout Best places to learn the basics from personal experience, to tools that we use in Data Engineering. Now, these are not in any kind of order, but I will provide my rating on each resource.
I. The Modern Python 3 Bootcamp
This is a bootcamp style data dump for learning Python, on Udemy.com . It is taught by Colt Steele, who seems to be a Web Developer and so some of the later exercises focus around that. However, he does a very good job of covering all the basics in good detail and you can usually get the class for around $9.99. Which considering it is 30+ hours of video content and over 200+ exercises it is totally worth the money. In his course he goes over:
Installing Python 3 and using the REPL as well as Sublime Text
How to run
.pyfiles in Command Line and TerminalThe Fundamentals of Python 3
Data Types
- Numbers, Operators, and Comments
- Variables and Strings
- Booleans
Conditional Logic
Loops (For and While)
Lists, Dictionaries, Sets, and Tuples
Defining Functions and Lambda (or Anonymous) functions
Debugging and Error Handling
Installing, using, and creating Modules/Libraries
Object-Oriented Programming with Python 3
Iterators & Generators
Decorators
File IO
- Working with CSVs and Pickling
APIs
Web Scraping
Regular Expressions
and Python + SQL
All in all, it is a pretty comprehensive course, and you can finish it in a weekend! At the end of the course he has a section just full of challenges/exercises to practice with.
He is a bit odd, but fun to listen to and does a pretty good job of keeping you engaged!
Rating: 7.5/10
II: Python for Data Science and Machine Learning Bootcamp
Yep another Udemy.com course. This time with Jose Portilla, if you have looked into Data Science you have probably heard of Jose Portilla or Pierian Data International. As a teacher, I am not all that fond of him. However, his content is typically spot on. In his course you will go over some specific libraries and technologies you can use with Python. It is definitely recommended that you take a beginner course on the basics first like the one listed above or one of the others listed below.
In his course he goes over, in pretty good detail;
NumPy for numerical data
Pandas for data analysis
Seaborn for statistical plots
Matplotlib for Python plotting
Plotly for interactive dynamic visualizations
Scikit-Learn
Tensorflow
Spark for Big Data Analysis
Machine Learning Algorithms (This section isn’t very detailed it is mostly on implementation
- Logistic Regression
- Random Forests and Decision Trees
- K-Means Clustering
- Linear Regression
- Natural Language Processing/ Spam Filters
Support Vector Machines
and Neural Networks
Like I said, he does do a pretty good job of getting your feet wet and fostering a desire to look into these topics some more with some direction.
Rating: 7/10
III. Learn Python the Hard Way
So this is a book/website written by Zed Shaw. I am honestly not a fan of it at all just because in his book he is rather condescending. But, it is a really good resource and is great for those who really like to read in order to learn and like things that are broken down pretty simply.
The “claim to fame” for Shaw’s books is that he teaches by projects. Basically, rather than just giving you an overly detailed and difficult to understand explanation of the language that you could easily get from just going to Python.org and reading the documentation, he instead has you do what you will inevitably be doing after learning Python, design programs. Now, they range in difficulty from the traditional “Hello World” to more advanced class-based text games.
The biggest con’s for Learn Python the Hard Way is, like i said before, he is pretty condescending so if that will deter you from learning steer clear. There are also some parts where you will go through like one or two examples with a new subject and the be able to understand all the nuances of that subject and implement it into a full-fledged program.
I would say the best use case for this is as a supplement to another learning resource so as to have ways to practice what you learn.
Rating 6/10
IV. CS50: Introduction to Computer Science by Harvard University
Don’t be scared away by the “Harvard University” part. This course is absolutely amazing for those of you out there who are completely new to programming as you will start with just the basics of computer programming in general. The course is taught in Python, however it is not actually a Python specific course. So, don’t go in expecting to come out the other side “A Python Blackbelt” as Zed Shaw would say.
It is a pretty demanding course, I would definitely recommend making sure that before you start you have all the time that it asks of you because if you aren’t a fast learner the listed time commitment of “10-20 hours” a week is extremely accurate. It is also 11 weeks long. However, since it is hosted on edX you can move at your own pace. The course is free, with the option of paying for a certificate of completion, not that it does you much good so I wouldn’t bother.
Rating 9/10 as a general introduction to Computer Science; 8/10 as a Python course
V. W3Schools Python Course
I know there are a lot of mixed reviews out there on w3schools being rather terrible, but honestly for what they are trying to accomplish they do a pretty good job. W3Schools is a huge web developer site with a lot of great references revolving around, well, web development.
For their language courses, you will go over all the basics of the language, it has exercises to test your knowledge and lots of examples. There are other sections in the Python course if you want the extra material but if you just go through everything covered in their Exercises portion you will be good, unless one of the later sections is specific to you. I did the SQL portion as I work with databases obviously.
Rating: 6/10
VI. Python Fundamentals
This one is another online lecture course by Pluralsight. I have not personally taken it but it has great reviews throughout the community and is from what I have read pretty comprehensive.
Like the Udemy courses, Python Fundamentals taught by Austin Bingham and Robert Smallshire, takes you through Python from the very beginning. Starting with installing Python on your machine, using the REPL (Read-Eval-Print-Loop), what whitespace is, the culture of the Python community, Importing built-in libraries, scalars (data types), operators, conditional logic, loops, OOP (object-oriented programming), iterables, collections (Lists, Sets, Tuples, Dictionaries), error handling, classes, and working with files and resources.
I cannot rightly rate this course only because I havent taken it. But it is free for a 10-day trial then it is $29 a month, or $299 for an annual subscription if you know there are other courses you want to take through them.
VII. HackerRank
This one is a free interactive challenges website to test your knowledge of solving problems programmatically. I is a good way to showcase your skills at solving problems just based on a description of what the outcome should be. They also have a huge database of past interview questions from large companies like Google.
Rating: 10/10
VIII. CheckIO
This is a fun interactive website for learning Python and Javascript that partners with Jetbrains. You can do the “missions” either on their website, which has a pretty cool scifi video game feel to it, or through PyCharm (A popular Python IDE). Honestly, I had a load of fun on this website. As someone who love video games this is a super intriguing way to learn Python. They go through all the basics in the “Elementary Island”, and you can progress through loads of different levels to get a high score and all the while learning Python along the way. The best part is being able to see other users submissions to the levels to see how other people may have solved the problem and submitting your solutions with different categories like “Fast” or “Easy to Read”.
Rating: 9/10
These last two aren’t really resources for teaching you how to program with Python, more of good resources for if you get stuck and for instant results on your code.
IX. Anaconda
Anaconda is a Python suite so to say. It includes Python 3.x, as well as a full set of commonly used libraries and an additional community through CondaCloud/Conda Forge. It comes with the Spyder IDE which is pretty similar to R Studio if you have used that before, Jupyter Notebooks and Lab, which for me has been one of my favorite tools for writing in really any language.
Jupyter lab comes stock with a cell based REPL for Python and Markdown and you can use both in the same notebook for taking notes on the code you are writing or learning. However, on Github.com you can find loads of different kernels for programming in all kinds of languages. I currently use BeakerX for Java, SQL, and Scala, a MatLab and SaS kernel and the default for Python. But that is nowhere close to all of the kernels available.
X. Github/StackOverflow
Github and Stackoverflow are going to be great resources for posting your code, getting feedback, finding projects like Open-Source to work on, and just generally communicating with the community.
If you don’t already have an account, I would highly recommend getting one for Github to start building your portfolio to showcase projects you are working on to potential employers.
Again, if you aren’t already a part of the StackOverflow community I would suggest joining up. There is no better resource out there for getting assistance when you will inevitably get stuck on a problem, or don’t fully understand how something works. StackOverflow also houses a pretty comprehensive job listing as well, and recruiters are constantly looking for talent through Stack activity.
Neither is exclusively for Python, but for developers in general.
Conclusion
Well, those are all the resources that I used while learning Python along with a course or two I took at my University.
If there is a resource that you really like for learning Python, or just general Python development, leave a comment below and let me know!
This is in no way a fully comprehensive list of Python learning resources just the ones that I really liked.
Remember, Google is your friend. If you can’t find the answer to something Google can help. 8/10 time I would say that your first result will probably be StackOverflow but not always.
If you made it this far, CONGRATULATIONS! Thank you for hanging out for a little while. I will be releasing a similar guide for Scala, Java, and SQL in upcoming posts, so subscribe to my blog so you can be notified when those come out!









